【数值分析实验】(六)非线性方程的迭代解法(含matlab代码)

1 背景简介

        非线性是实际问题中经常出现的,在科学与工程计算中有着重要的地位。非线性问题的数学模型有无限维的如微分方程,也有有限维的,方程的性质不同,求解方法也有很大的差异

2 案例设计

在这里插入图片描述

3 数学模型

在这里插入图片描述

3.1 牛顿迭代法

3.1.1 算法过程

在这里插入图片描述

3.1.2 代码

function y = f(x)
% 定义非线性向量函数
y=x(1)^3-3*x(1)-1;
end
function y = df(x)
% 定义非线性向量函数的导数形式
y=3*x(1)^2-3;
end

function [xk,k] = Newtoneqs(x0)
xk=x0-f(x0)*inv(df(x0));
k=1;
while (norm(xk-x0)>=1.0e-5)&&(k<=1.0e10)
    x0=xk;
    xk=x0-f(x0)*inv(df(x0));
    k=k+1;
end
end
%% 输入参数
% 在函数f和df中定义非线性方程及其导函数
% 输入初始解
x0 = 2;
%% 采用牛顿迭代法求解非线性方程
[xk,n] = Newtoneqs(x0)

3.1.3 计算结果

        牛顿迭代法迭代到第4步时达到精度要求,原非线性方程的数值解为x=1.879385。

4 分析与讨论

        在迭代法中,牛顿迭代法是求解非线性方程最实用的方法,其优点是收敛速度快,在单根附近具有二阶收敛。主要缺陷一是初始值的选取不恰当时,迭代序列可能发散;二是如果在方程的根处函数的导数接近于0时,它们的收敛速度一般会很慢。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值