关于h(x)的函数没有放上去
利用这个程序算出的结果始终是右端点值(无论怎么改变右端点值都是直接输出)
请问这样是端点取值的问题还是函数有问题
Matlab弦截法计算为什么总是输出端点值
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 技术专家团-Joel 2021-10-18 11:28关注
你好,弦截法需要每次判断根洛在哪个区间,你这里没有判断,我给你加上了,然后b这个参数我给你去掉了,因为没必要:
function y=xjf(h, x1, x2, eps, n) x(1)=x1; x(2)=x2; i=2; while (abs (h(x(i)))>eps && i<n) %这里要换成h(x(i)),b是定值不方便,这里直接把b去掉了 x(i+1)=x(i)-h(x(i))*(x(i)-x(i-1))/(h(x(i))-h(x(i-1))); %这里要有个判断,因为有了x(i+1), % 把原先的区间分成了两部分即[x(i-1),x(i+1)]和[x(i+1), x(i)],根在哪个部分要根据 % h(x(i-1))、h(x(i+1))、h(x(i))之间的符号来判断 if(h(x(i+1))*h(x(i))>0)%如果根不在[x(i+1), x(i)]区间 x(i) = x(i-1);% 那么肯定在[x(i-1),x(i+1)]区间,不妨令x(i)=x(i-1),那么还是保证了根在[x(i+1), x(i)]区间 end i=i+1; end y=x(i); end
现在你可以计算啦,
有帮助还请题主给个采纳支持一下答主哦,非常感谢本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用