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无用
悬赏问题
- ¥15 树莓派与pix飞控通信
- ¥15 自动转发微信群信息到另外一个微信群
- ¥15 outlook无法配置成功
- ¥30 这是哪个作者做的宝宝起名网站
- ¥60 版本过低apk如何修改可以兼容新的安卓系统
- ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
- ¥50 有数据,怎么建立模型求影响全要素生产率的因素
- ¥50 有数据,怎么用matlab求全要素生产率
- ¥15 TI的insta-spin例程
- ¥15 完成下列问题完成下列问题