
1条回答 默认 最新
joel_1993 2021-10-24 16:07关注你好,你的表达式最后一个else后面的一直都是myLegendre(n,x)也就是说n不会变化,最后就是无线循环,正确的应该是
y=((2*n-1)*x-myLegendre(n-1, x)-(n-1)*myLegendre(n-2, x))/n,看里面应该是n-1和n-2,这样整数n递归才会到0或1.
同时你的递归调用每行代码后面加个分号,防止大量输出function y = myLegendre(n, x) if(n==0) y = 1; elseif(n==1) y = x; else y = ((2*n-1)*x-myLegendre(n-1, x)-(n-1)*myLegendre(n-2, x))/n; end end将这个代码保存为myLegendre.m文件,然后在命令行调用即可:
>> myLegendre(2,3) ans = 2.5000或者在mlx文件里面:

有帮助望采纳呢
本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 1无用