Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
好。所以我在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) 更多&回答... |
![]() |
![]() |