本文介绍: 割线法比起牛顿迭代法不需要计算导数。二分法是线性收敛的,如果指定精度。为加速后的不动点迭代格式。需要知道两个的函数初始值,,则最多需要迭代步数。matlab编程实现。算是一种不动点迭代。

+11.618

matlab编程实现

%%  割线法例子
f = @(x) x-sin(x)-0.5;
[x,e,i] = cutSolve(f,1.4, 1.6, 0.01, 100)

%% 双点割线法
% 输入函数,根所在的区间下限上限,精度,最大迭代次数
% 输出根,根的值,迭代次数
function [x,e,i] = cutSolve(f,a,b,eps,max_iter)
    x0 = a;
    x1 = b;
    for i = 1:max_iter
        x = -f(x0)*(x1-x0)/(f(x1)-f(x0))+x0
        if abs(x-x1)<=eps
            e = abs(f(x));
            break;
        end
        x0=x1;
        x1=x;
    end
end

单点割线法
固定初始点,有

x

k

+

1

=

x

k

f

(

x

k

)

x

k

x

0

f

(

x

k

)

f

(

x

0

)

x_{k+1}=x_k-f(x_k) frac{x_k-x_{0}}{f(x_k)-f(x_{0})}

xk+1=xkf(xk)f(xk)f(x0)xkx0
算是一种不动点迭代。

原文地址:https://blog.csdn.net/lafea/article/details/135420574

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_55678.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

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