matlab求解非线性方程 fzero问题
function y=mySolveDeterminant(x,a,b)L=0.570;E=206000000000;B=0.012;H=0.02;
% a=r/h;
% b=l/L;
fa=0.6384-1.035*a+3.7201*a^2-5.1773*a^3+7.553*a^4-7.332*a^5+6.779*a^6-6.9956*a^7+20.094*a^8-22.1145*a^9+6.9303*a^10+16.115*a^12;
k=E*B*H^2/(72*pi*a^2*fa);
I=B*H^3/12;
K=k*L/(E*I);
A=[1,0,1,0,0,0,0,0;
0,1,0,1,0,0,0,0;
cosh(x*b),sinh(x*b),cos(x*b),sin(x*b),-cosh(x*b),-sinh(x*b),-cos(x*b),-sin(x*b);
cosh(x*b),sinh(x*b),-cos(x*b),-sin(x*b),-cosh(x*b),-sinh(x*b),cos(x*b),sin(x*b);
0,0,0,0,cosh(x),sinh(x),-cos(x),-sin(x);
0,0,0,0,sinh(x),cosh(x),sin(x),cos(x);
sinh(x*b),cosh(x*b),sin(x*b),-cos(x*b),-sinh(x*b),-cosh(x*b),-sin(x*b),cos(x*b);
K/x*sinh(x*b)+cosh(x*b),K/x*cosh(x*b)+sinh(x*b),-K/x*sin(x*b)-cos(x*b),K/x*cos(x*b)-sin(x*b),-K/x*sinh(x*b),K/x*cosh(x*b),K/x*sin(x*b),-K/x*cos(x*b)];
y=det(A);
for a=0.05:0.1:0.95
for b=0.05:0.1:0.95
x(a,b)=fzero(@(x) mySolveDeterminant(x,a,b),1);
end
end
plot3(0.05:0.95,0.05:0.95,x)
运行老出现??? Subscript indices must either be real positive integers or logicals.
Error in ==> xfzero at 3
x(a,b)=fzero(@(x) mySolveDeterminant(x,a,b),1);该怎么办 数组下标应为整数,而你的a, b都是小数。另外,你的函数调用格式也不对。还是好好找一本Matlab基础知识书看看吧。
页:
[1]