matlab调用函数出错,[MATLAB基础] matlab 调用函数老是出错怎么回事??高手请指点一下...

MATLAB二分法函数调用错误解析及解决
在MATLAB中遇到调用erfen函数时出现错误,主要问题出现在'f(a)'未被正确赋值。在erfen函数第12行,y1=f(a)的计算可能导致输出参数'y'未被分配。检查f函数是否能正确返回值,以及输入参数是否符合函数要求。修正后,确保所有输出参数在函数调用过程中都有值。

icon1.gif matlab 调用函数老是出错怎么回事??高手请指点一下

function main()

for w2=1:1:100 %生成一个区间

p1=w2;

p2=p1+1;

eps=1.0e-4;

y=erfen(p1,p2,eps);

end

end

function y=erfen(a,b,eps) %二分法 a,b为区间端点,eps为精度

y1=f(a);

y2=f(b);

if y1*y2<0

n=1;

c=(a+b)/2;

mf=f(c);

while c>eps

if y1*mf<0

b=c;

c=(a+b)/2;

elseif mf*y2<0

a=c;

c=(a+b)/2;

else y=c; %eps=10000;

end

n=n+1;

end

y=c;

elseif f(a)==0

y=a;

elseif f(b)==0

y=b;

else

end

end

function f=f(w) %f函数

k1=1;

k=0.15;m2=7.8;b=0.1;h=0.1;m3=0.78;x3=1;

EI3=166.67;b1=b/2; b2=h/2; cc1=0; cc2=h/2;

J2=m2*(b*b+4*h*h)/12; r=(m3*w*w/(EI3))^(1/4);

U1=[1 0 0 0 0 0;0 1 0 0 0 -1/(k1);0 0 1 1/k 0 0 ;0 0 ...

0 1 0 1;0 0 0 0 1 0;0 0 0 0 0 1];

U2=[1 0 -b2 0 0 0;0 1 b1 0 0 0;0 0 1 0 0 0;-m2*w*w*(b2-cc2) ...

m2*w*w*(b1-cc1) -w*w*(J2-m2*(b2*cc2+b1*cc1)) 1 -b2 b1; ...

m2*w*w 0 -m2*w*w*cc2 0 1 0;0 m2*w*w m2*w*w*cc1 0 0 1];

U3=[1 0 0 0 0 0;0 S(r*x3) T(r*x3)/r U(r*x3)/(EI3*r*r) 0 ...

V(r*x3)/(EI3*r*r*r);0 r*V(r*x3) S(r*x3) T(r*x3)/(EI3*r) 0 ...

U(r*x3)/(EI3*r*r); 0 EI3*r*r*U(r*x3) EI3*r*V(r*x3) S(r*x3) 0 ...

T(r*x3)/r; m3*w*w*x3 0 0 0 1 0;0 EI3*r^3*T(r*x3) EI3*r*r*U(r*x3) ...

r*V(r*x3) 0 S(r*x3)];

Z=U3*U2*U1;

ZZ=Z(4:6,(4:6));

f=det(ZZ);

end

function T=T(x)

T=(sinh(x)+sin(x))/2;

end

function U=U(x)

U=(cosh(x)-cos(x))/2;

end

function S=S(x)

S=(cosh(x)+cos(x))/2;

end

function V=V(x)

V=(sinh(x)-sin(x))/2;

end

运行后错误提示信息

Error in ==> main>erfen at 12

y1=f(a);

??? Output argument "y" (and maybe others) not assigned during call to

"C:\Users\刘宗魁\Documents\MATLAB\新建文件夹\main.m>erfen".

Error in ==> main at 6

y=erfen(p1,p2,eps);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值