二分法、牛顿迭代法、割线法、史蒂芬森迭代法解方程MATLAB实现


目录

1.理论铺垫

1.1 二分法

1.2 牛顿迭代法

1.3 牛顿割线法

1.4 史蒂芬森迭代法

1.5 确定有根区间

2.MATLAB代码

2.1 主函数

2.2 二分法函数

2.3 牛顿迭代法函数

2.4 牛顿割线法函数

2.5 史蒂芬森迭代法函数

2.6 所求方程原函数及一阶导形式

3.运行结果(Matlab R2017b)


案例:给定方程 f(x)=x^{3}-3x-1=0,用二分法、 牛顿迭代法、 牛顿割线法、史蒂芬森迭代法求该方程的根。


1.理论铺垫

(说明:由于本文公式偏多,在线编辑效率不高,所以理论部分以截图形式呈现,并附以word资源)

1.1 二分法

1.2 牛顿迭代法

1.3 牛顿割线法

1.4 史蒂芬森迭代法

1.5 确定有根区间

2.MATLAB代码

2.1 主函数

% @brief  用二分法、牛顿迭代法、割线法、史蒂芬森迭代法解方程f(x)=x^3-3*x-1=0
% @author SLF 2019/12/25
% @notice 若要使用此代码,请注明来源!

EPS = 1e-10;   % 精度
N_MAX = 14;    % 最大迭代次数
X = [0,0,0];   % 存储三个实根
dy0x1 = -1.0;  % 原函数一阶导为0时的自变量取值  左
dy0x2 = 1.0;   % 右
a = 0.0;       % 有根区间左端点
b = 0.0;       % 有根区间右端点

% 用牛顿迭代法求 x 在 -1.1、0和1.1 附近的实根
sec = NewtonIterAlgorithm(dy0x1-0.1,EPS,N_MAX);
X(1) = sec(sec(1)+1); % 左边实根
sec = NewtonIterAlgorithm((dy0x1+dy0x2)/2,EPS,N_MAX);
X(2) = sec(sec(1)+1); % 中间实根
sec = NewtonIter
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值