coneybaby 发表于 2005-11-18 16:04

[求助]大家好,能帮我解决一个matlab的问题吗?

<P><FONT style="BACKGROUND-COLOR: #a2945e">我建一个m-file文件如下:</FONT><BR>function y=TT(m,n)<BR>a=0;<BR>b=1;<BR>f=inline('exp(x)','x');<BR>if m==1;<BR>    if n==1;<BR>      y=1;<BR>    else <BR>      T1=TT(1,n-1);<BR>      s=0;<BR>      for i=1:2n-3<BR>            s=s+f((2*i-1)*(b-a)/(2^(n-1)));<BR>      end<BR>      y=(T1+(b-a)*s/(2^(n-2)))/2;<BR>    end<BR>else <BR>    T11=TT(m-1,n-1);<BR>    T12=TT(m-1,n-2);<BR>    y=((4^(m-1))*T11-T12)/(4^(m-1)-1);<BR>end<BR><FONT style="BACKGROUND-COLOR: #bba344">我想问大家<BR>为什么不能算出y=TT(5,5)的值?<BR><BR>拜托了!谢谢</FONT></P>

tammy 发表于 2005-11-18 16:31

回复:(coneybaby)[求助]大家好,能帮我解决一个mat...

自己调用自己?

coneybaby 发表于 2005-11-19 11:43

这是迭代呀,自己调用自己是可以的

adminftp 发表于 2005-11-19 15:59

回复:(coneybaby)[求助]大家好,能帮我解决一个mat...

<P>取 TT(5,5)的时候,也就是说程序需要4次迭代<BR>    T11=TT(m-1,n-1);<BR>    T12=TT(m-1,n-2);<BR>    y=((4^(m-1))*T11-T12)/(4^(m-1)-1);<BR>才能使得调用<BR>    if n==1;<BR>      y=1;<BR>    else <BR>      T1=TT(1,n-1);<BR>      s=0;<BR>      for i=1:2n-3<BR>            s=s+f((2*i-1)*(b-a)/(2^(n-1)));<BR>      end<BR>      y=(T1+(b-a)*s/(2^(n-2)))/2;<BR>    end<BR><BR>而在此时n实际上已经小于1<BR>所以程序只能不断的迭代运算<BR>      T1=TT(1,n-1);<BR>      s=0;<BR>      for i=1:2n-3<BR>            s=s+f((2*i-1)*(b-a)/(2^(n-1)));<BR>      end<BR>      y=(T1+(b-a)*s/(2^(n-2)))/2;<BR>而这个时候你是不可能取到TT(1,1)的情况的<BR>所以程序只能无限循环下去,最后跳出</P>

coneybaby 发表于 2005-11-21 15:15

回复:(clafe000)回复:(coneybaby)[求助]大家好,...

你好,我可以有你的qq吗?我还是不明白,我现在正在学这个软件。也许通过qq更容易交流。我的qq是:99303680
页: [1]
查看完整版本: [求助]大家好,能帮我解决一个matlab的问题吗?