永发信息网

大学数值计算matlab编程:用复合梯形公式积分,达到精度0.5*10^-8给出所需区间数量。请问程序哪里有问题

答案:1  悬赏:0  手机版
解决时间 2021-04-02 06:43
  • 提问者网友:咪咪
  • 2021-04-01 17:11
大学数值计算matlab编程:用复合梯形公式积分,达到精度0.5*10^-8给出所需区间数量。请问程序哪里有问题
最佳答案
  • 五星知识达人网友:人類模型
  • 2021-04-01 17:18
你这里错在调用自定义函数的时候不需要关键字function,将其去掉则不会有这个错误提示

不过看你的代码依旧存在问题:

f=int(fun,a,b); 这一行要求fun为符号类型的变量,而你给的 fun=@(x)(x./sqrt(x.*x+9)); 却是函数句柄,那么这一句就会报错。
另外,这个代码试图通过int()积分得到精确值,然后比较数值积分的误差是否不超过0.5*10^-8,这就存在一个逻辑错误,如果这个被积函数不可积(这也正是采用数值积分的目的所在),那你就无法得到原函数进行判断了。所以正确的做法是比较两次计算值,如果两次计算值的误差小于0.5*10^-8,表明积分收敛了,这正是其计算精度。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯