Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-10, 16:49   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 MatLab递归错误(初学者)

好。所以我在MatLab中有两个互相调用的函数。

黎曼

function I = Riemann(f, dx, a, b) x = a:dx:b; fx = f(x).*dx; I = sum(fx); 和myfunc.m

function f = myfunc(x) f = sin(1./x); for n=1:100 I = Riemann(@myfunc, 0.001, 1/n, 1); end plot(I) 问题是要使其运行。我如何调用myfunc来获得任何收益。我尝试过的所有内容最终都陷入了无尽的递归调用堆栈中(这很有意义)。


回答:
您的问题在于函数的定义:要能够使用递归定义,您必须至少能够计算两个函数中的一个而不包含另一个,至少对于某些值。您还必须确保每个计算最终将依靠这些结果可以获取不递归。

对于您的特定问题,我觉得您想集成函数f(x)= sin(1./x)。如果是这样,第二个函数的代码应显示为:

function f = myfunc(x) fct = @(x) sin(1./x); f = fct(x); for n=1:100 I = Riemann(fct, 0.001, 1/n, 1); end plot(I)

更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:46


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.