简单迭代法matlab例题程序_Java|写一个用迭代法解方程的Java程序

本文介绍了迭代法的概念及其在解决大型稀疏矩阵方程组中的应用。重点讲解了牛顿迭代法,通过举例说明如何用这种方法在给定区间内求解非线性方程,如f(x)=x^5-x^2+x-30=0和X^3-2x-5=0,并提供了计算过程。

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

3a4a2ac6e6e3947b3775e0bb87e02ad8.png

问题描述

迭代法也称辗转法,是一种逐次逼近方法,在使用迭代法解方程组时,其系数矩阵在计算过程中始终不变。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对 一组指令 ( 或一定步骤 )进行重复执行,在每次执行这组指令(或步骤) 时,都从变量的原值推出它的一个新值。

迭代法具有循环的计算方法,方法简单,适宜解大型稀疏矩阵方程组,在用计算机计算时只需存储 A 的非零元素 (或可按一定公式形成系数,这样A就不需要存储)。

(1) 对于给定的方程组 X =Bx+f ,用式子 逐 步代入求近似解的方法称为迭代法( 或称为一阶定常迭代法 ,这里与B 和 k 无关 )

(2) 如果 limx (k) , x→∞ 存在 ( 记作 x* ), 称此迭代法收敛,显然 x就是方程组的解,否则称此迭代法发散。

38ecdac69b2decd2b3fa51f73e0ca346.png

解决方案

解法介绍

牛顿迭代法是一种线性化方法,其基本思想是将非线性方程 f(x)= 0逐步归结-为某种线性方程来求解.设已知方程f(x)=0有近似根X ( 假定 f’(x k )≠ 0), 将函数 f(x) 在点 x k 展开,有:

f(x)≈f(x k )+f’(x k )(x-x k ) 于是方程 f(x)=0 可近似地表示为 f(x)+ f’(x k )(x-x k )=0( 是个线性方程 ) ,记其根为 x k+1, 则 x k+1 的计算公式为 x k+1= x k -f(x k ) :heavy_division_sign: f’(x k ) ( k=0,1,2…… )

例题讲解

例: 用牛顿迭代法三次求方程f(x)=x 5 -x 2 +x-30=0, 在区间 [1,3] 中的近似值请详细解答

解:

f (1)=-29

f(3)=207 所以 [1,3] 之间一定有零点。而且明显更靠近 x=3 。

f (2) =-2

f(2. 5)=63.9

f(2.2)=19.2

f(2.1)=8.53

f(2. 01)=0.78

f(2 001)=0.08

所以 f(2. 0001)=0.008 应该满足要求了。所以 x=2.0001

例:使用牛顿迭代法求方程的解, X 3 -2x-5=0 ,在区间 [2 , 3]上的根。

package 
Lab_02.Test_01;

public class 
Test_01 {

public static void 
main(String[] args) {

double  x= 2
;

for ( int  i= 0 ;i< 20
;i++)  {

x=- f (x)/ f1 (x)+x;

}

out .println(x+ ""
);

}

static double  f( double  
x) {

double  ans;
ans=Math. pow (x,  3 )- 2 *x- 5
;

return  ans;
}

static double  f1( double  
x) {

double  ans;
ans= 3 *Math. pow (x,   2 )- 2
;

return  ans;
}

}

1ff12e5ac0b4c3709a4c7d6c88af3a7c.png
Java|写一个用迭代法解方程的Java程序​mp.weixin.qq.com
5235f331a2151a6e96a6c4f62dc05e17.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值