【源码】二分法的matlab实现「建议收藏」

二分法的matlab算法实现本篇是在课程学习中自己编程实现的二分法计算非线性方程或者超越方程近似根的算法,写一下,后边便于复习和期末课程设计引用。%二分法求根的matlab算法function[x0,n]=dichotomy(a,b,err,f_x)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%输入参数a为根的区间左端点%%输入参数b为根的区间右端点

大家好,又见面了,我是你们的朋友全栈君。

二分法的matlab算法实现

本篇是在课程学习中自己编程实现的二分法计算非线性方程或者超越方程近似根的算法,写一下,后边便于复习和期末课程设计引用。

% 二分法求根的matlab算法
function [x0,n]=dichotomy(a,b,err,f_x)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%输入参数a为根的区间左端点                         %
%输入参数b为根的区间右端点                         %
%输入参数err为误差精度                             %
% 输入参数f_x为待求根函数                          %
%输出参数x0为满足精度要求的根                      %
% 输出参数n为迭代的次数                            %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
n=ceil((log((b-a)./err)./log(2)-1));%求迭代次数
while(sign(f_x(a))==0)%如果a的函数值为0停止迭代输出x0为a的值,迭代次数为0
    x0=a;
    n=0;
    return;
end
while(sign(f_x(b))==0)%如果b的函数值为0停止迭代输出x0为b的值,迭代次数为0
    x0=b;
    n=0;
    return;
end
while(sign(f_x(a))~=sign(f_x(b)))%a、b符号不同进行区间二分
 x0=a/2+b/2;                     %区间中点
 if(sign(f_x(a))~=sign(f_x(x0)))%判断区间中点函数值与区间端点符号
     b=x0;                      %将中点赋值给符号相同的端点
      if(b-a<=err||abs(f_x(x0))<=err)%判断是否满足精度要求
     x0=a/2+b/2;                     
     return;
      else                          %不满足精度循环调用二分法
       dichotomy(a,b,err,f_x);
      end
 else
     a=x0;                          %将中点赋值给符号相同的端点
      if(b-a<=err||abs(f_x(x0))<=err)%判断是否满足精度要求
     x0=a/2+b/2;
     return;
      else                            %不满足精度循环调用二分法
       dichotomy(a,b,err,f_x);
      end
 end
end
    

引用实列:求解函数f(x)=x^3-x-1在区间[1,1.5]上的一个零点,误差不超过0.005
f=@(x)x^3-x-1
[x0,n]=dichotomy(1,1.5,0.005,f)
结果在这里插入图片描述

转载请注明出处!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128074.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 表白代码Python_自制表白神器

    表白代码Python_自制表白神器文章目录前言演示网站制作部署网站二维码制作总结前言跟着我做,不要跳着看,否则你会失败。第一步是制作二维码;第二步是制作网站。演示具体成果地址:https://yanghanwen.xyz/ai/网站制作首先你需要下载我的这个完整项目:链接:https://pan.baidu.com/s/1EmRehx_gRnT5hLjJvKuAIg提取码:pz1y–来自百度网盘超级会员V2的分享下载好后文件目录如下:然后你需要注意的是我把img里面的图片删了,涉及隐私,大家自己替换自己追

    2022年8月23日
  • idea2022 3.4激活码【2022免费激活】[通俗易懂]

    (idea2022 3.4激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html40ZKSWCX8G-eyJsaWNlbnNlSW…

    2022年4月2日
  • ubuntu浏览器卡死机_QQ崩溃了怎么办

    ubuntu浏览器卡死机_QQ崩溃了怎么办问题:在Deepin应用商店更新最新的QQ版本后,出现崩溃,卡死现象解决:目录下~/.deepinwine,查找的应用Deepin-QQ路径/drive_c/windows/Fonts下查看是否有字体,笔者发现没有任何字体,把/usr/share/fonts/Fonts_Win下字体复制到这里,也可以在别的地方的fonts问价夹下,拷贝.ttf字体文件到这里,重新启动QQ,问题解决…

    2022年9月3日
  • inputstreamreader类是用于将_readstring

    inputstreamreader类是用于将_readstring一、InputStreamReader类InputStreamReader将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。构造方法:InputStreamReaderisr=newInputStreamReader(InputStreamin);//构造一个默认编码集的InputStr

    2022年9月26日
  • 怎么git 自己建的服务器_如何搭建自己的git服务器「建议收藏」

    怎么git 自己建的服务器_如何搭建自己的git服务器「建议收藏」前几天在服务器亲自搭建git服务器,之前只是我自学了git的知识,在网上找了很多资料,重装了很多次,都不知道怎么使用,最后自己研究了好几遍,终于把git服务器搭建起来了。但是不知道我这种方法对不对,分享出来,希望大家指正。安装git$yuminstallcurl-develexpat-develgettext-developenssl-develzlib-develperl-dev…

    2022年9月28日
  • Android之ViewPager的简单使用[通俗易懂]

    Android之ViewPager的简单使用[通俗易懂]AndroidViewPager的简单使用Android3.0后引入的一个UI控件——ViewPager(视图滑动切换工具)功能:通过手势滑动可以完成View的切换,一般是用来做APP的引导页或者实现图片轮播,因为是3.0后引入的,如果想在低版本下使用,就需要引入v4兼容包ViewPager就是一个简单的页面切换组件,我们可以往里面填充多个View,然后我们可以左右滑动,从而切换不同的View,我们可以通过setPageTransformer()方法为我们的ViewPager设置切换时

    2022年7月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号