Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2011-04-30
帖子: 1
声望力: 0 ![]() |
![]()
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); |
![]() |
![]() |