维基呀- 2021-10-18 10:54 采纳率: 100%
浏览 53
已结题

Matlab弦截法计算为什么总是输出端点值

img

img

关于h(x)的函数没有放上去
利用这个程序算出的结果始终是右端点值(无论怎么改变右端点值都是直接输出)
请问这样是端点取值的问题还是函数有问题

  • 写回答

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
    

    现在你可以计算啦,
    有帮助还请题主给个采纳支持一下答主哦,非常感谢

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月26日
  • 已采纳回答 10月18日
  • 创建了问题 10月18日

悬赏问题

  • ¥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 库的使用