
方法二:可以使用Matlab软件实现za/2的查表 *** 作,具体步骤是:1. 打开Matlab软件;2. 使用“ztest”函数,输入za/2的值,查询结果即可。
什么样的表啊?MATLAB中只有矩阵和cell
要取出第r行、第c列的矩阵元素用:A(r,c)
要取出第r行、第c列的cell成员用:A{r,c}
到底是要用MATLAB还是Simulink?二者的实现方法是不一样的。
就我所知的范围内,Simulink是没有现成模块的。
如何反查,和你的具体数据有关:
1、如果对于给定的BP1,取BP2的所有值,对table插值得到的结果(比如说,我们记作z)是单调变化的,可以用z作为节点,而把BP2看作函数值,进行一维插值;
2、如果不满足上述单调性条件,那么也就意味着z是BP2的多值函数,无法用一维插值的方法来解决。此时可以用fsolve求解,但是请注意,得到的结果和初值有关。
第1种情况比较简单,下面的例子用以说明第2种情况:
[x,y,z]=peaksxi=0.5zi=5 % 相当于你说的已知BP1和table
clf
a = 0.3
mesh(x,y,z,'FaceAlpha',a,'EdgeAlpha',a)
xlabel('x')
ylabel('y')
zlabel('z')
hold on
yi=fsolve(@(yi)interp2(x,y,z,xi,yi)-zi,0)
plot3(xi,yi,zi,'bo','markerfacecolor','b')
yi=fsolve(@(yi)interp2(x,y,z,xi,yi)-zi,2.9)
plot3(xi,yi,zi,'ro','markerfacecolor','r')
yi=fsolve(@(yi)interp2(x,y,z,xi,yi)-zi,1.5)
plot3(xi,yi,zi,'mo','markerfacecolor','m')
view(60,20)
代码中,取了3个不同的初值,得到的结果各不相同(有两个是正确的,一个未收敛,如图所示)。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)