yiping1011 发表于 2005-10-28 15:53

程序出错了,帮我看看,最好能提供最类似的例子??

<P>我用传递矩阵法计算转子系统的固有频率,其中固有频率n是用二分法搜索求解,程序运行时出现了一些我不能解决的错误,大家帮我看看,给点修改意见????</P>
<P>function =chd(l,m,k,j)          %输入长度l,质量m,刚度k,转动惯量j,求系统的传递矩阵jzh和固有频率n.<br>fcc=0;<br>while fcc&lt;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&lt;0                        <br>      a=n-1;<br>      b=n;<br>      if abs(b-a)&lt;E               %不满足精度要求<br>            flag=1;<br>      end<br>      while flag&lt;1<br>            n=(a+b)/2;<br>            if SB*S&lt;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编辑过]

suffer 发表于 2005-10-30 10:02

回复:(yiping1011)程序出错了,帮我看看,最好能提...

最好把错误也贴一下,或者主调用程序也行
页: [1]
查看完整版本: 程序出错了,帮我看看,最好能提供最类似的例子??