程序出错了,帮我看看,最好能提供最类似的例子??
<P>我用传递矩阵法计算转子系统的固有频率,其中固有频率n是用二分法搜索求解,程序运行时出现了一些我不能解决的错误,大家帮我看看,给点修改意见????</P><P>function =chd(l,m,k,j) %输入长度l,质量m,刚度k,转动惯量j,求系统的传递矩阵jzh和固有频率n.<br>fcc=0;<br>while fcc<1 %读取文件中保存的数据长度l,质量m,刚度k,转动惯量j.<br> filename='D:\moshu\参数.txt';<br> =fopen(filename,'r');<br> if fcc==-1<br> disp(message)<br> end<br>end<br>cc0=fscanf(fcc,'%g');<br>status=fclose(fcc);<br>canshu=cc0';<br>s=length(canshu)/4;</P>
<P>for i=1:s %分别指定长度、质量、刚度和转动惯量数组<br> l(i)=canshu(i*4-3);<br> m(i)=canshu(i*4-2);<br> k(i)=canshu(i*4-1);<br> jd(i)=canshu(i*4);<br>end<br>S=0; %求传递矩阵S,公式"S=*;<br> u2=;<br> u3=;<br> u4=;<br> S=(u1*S+u2)*inv(u3*S+u4);<br>end</P>
<P>n=0;<br>nfinal=10; %搜索在0—10范围内的固有频率,步长为1,精度不低于0.01,利用二分法求使行列式S为零近似解<br>E=0.01;<br>SB=S;<br>flag=0;<br>for kk=1:10<br> n=n0+kk;<br> if SB*S<0 <br> a=n-1;<br> b=n;<br> if abs(b-a)<E %不满足精度要求<br> flag=1;<br> end<br> while flag<1<br> n=(a+b)/2;<br> if SB*S<0<br> b=nl;<br> else a=nl<br> end<br> end <br> else SB=S;<br> end<br>end</P>
[此贴子已经被作者于2005-10-28 23:43:33编辑过]
回复:(yiping1011)程序出错了,帮我看看,最好能提...
最好把错误也贴一下,或者主调用程序也行
页:
[1]