c语言jacobi迭代法,迭代法解方程:牛顿迭代法、Jacobi迭代法

本文详细介绍了如何利用迭代算法处理数学问题,特别是通过牛顿迭代公式和Jacobi迭代法来求解方程的根。文章提供了一个具体的例子,展示了如何用迭代法求解给定三次方程在不同初始值附近的实根,强调了确定迭代变量、建立迭代关系式和控制迭代过程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

利用迭代算法处理问题,需要做好以下三个方面的工做:

一、确定迭代变量。在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。

二、建立迭代关系式。所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。

三、对迭代过程进行控制。

牛顿迭代公式

设已知方程f(x)=0的近似根x0

,则在x0附近f(x)可用一阶泰勒多项式

a4c26d1e5885305701be709a3d33442f.png近似代替.因此,

方程f(x)=0可近似地表示为p(x)=0。用x1表示p(x)=0的根,它与f(x)=0的根差异不大.

设 a4c26d1e5885305701be709a3d33442f.png,由于x1满足

a4c26d1e5885305701be709a3d33442f.png解得

a4c26d1e5885305701be709a3d33442f.png

重复这一过程,得到迭代公式:

a4c26d1e5885305701be709a3d33442f.png

这就是著名的牛顿迭代公式,它相应的不动点方程为

a4c26d1e5885305701be709a3d33442f.png

Jacobi迭代公式解线性方程组

线性方程组基本解法:

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png方程组可同解变形为

a4c26d1e5885305701be709a3d33442f.png

Jacobi迭代法的计算公式:

a4c26d1e5885305701be709a3d33442f.png

即 a4c26d1e5885305701be709a3d33442f.png

举个用牛顿法的例子:

题目:用迭代法解方程 63x^3-114x^2-95x+42=0在-1.0, 0.4和1.2三值附近的三个实根。

#include

#include

double f(double x)

{

return ((63*x-114)*x-95)*x+42;

}

double fp(double x)

{

double k = (63*3*x-114*2)*x-95;

double y = f(x);

return x - y/k;

}

int main()

{

int i;

double temp;

double base[3] = {-1, 0.4, 1.2};

for(i=0;i<3;i++)

{

temp = base[i];

while(fabs(f(temp))>1e-7)

{

temp = fp(temp);

}

printf("%g 附近的根是 %g\n",base[i],temp);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值