一元多次方程C语言,C语言解决多元多次方程.(19页)-原创力文档

本文介绍了非线性方程的求解问题,特别是探讨了牛顿法在解决此类问题中的核心思想和理论基础。牛顿法是一种迭代方法,通过线性化非线性方程来逼近解。文中详细阐述了牛顿法的迭代公式,雅可比矩阵的计算以及如何求解逆矩阵。此外,还提供了牛顿法的伪代码实现,包括迭代过程和停止条件。这种方法在数值计算领域具有广泛的影响,是解决非线性方程组的重要工具。
摘要由CSDN通过智能技术生成

一 理论背景

我们先考虑线性方程,线性方程组的解便不难得出了。

与线性方程相比,非线性方程问题无论是从理论上还是从计算公

式上,都要复杂得多。对于一般的非线性方程f ( x)0 ,计算方

程的根既无一定章程可寻也无直接法可言。例如,求解高次方程

组 7x6 x3 x 1.5 0 的根,求解含有指数和正弦函数的超越方程 ex cos( x) 0 的零点。解非线性方程或方程组也是计算方法中的一个主题。在解方程方面,牛顿( I . Newton )提出了方程求根的一种迭代方法,被后人称为牛顿算法。三百年来,人们一直用牛顿算法,改善牛顿算法,不断推广算法的应用范围。牛顿算法,可以说是数值计算方面的最有影响的计算方法。

对于言程式f ( x)0 , 如果 f ( x) 是线性函数,则它的求根

是容易的。牛顿法实质上是一种线性化方法,其基本思想是将非

线性方程式 f ( x) 逐步归结为某种线性方程来求解。解非线性方

程组只是非线性方程的一种延伸和扩展。

二 主要理论

考虑方程组

f1 (x1 ,...xn )

0,

.................

1

fn ( x1 ,...xn )

0.

其 中 f1 ,..., fn 均 为 ( x1 ,...xn ) 多 元 函 数 。 若 用 向 量 记 号 记

x( x1 ,... xn )TRn , F( f1 ,..., fn )T , 1就可写成

F ( x) 0.

(2)

当 n

2, , 且 fi (i 1,...,n)

中至少有一个是自变量

xi (i

1,...,n) 的非线性函数时,则称方程组 (1)为非线性方程

组。非线性方程组求根问题是前面介绍的方程即(n1) 求根的

直接推广,实际上只要把单变量函数f ( x) 看成向量函数 F ( x)

则可将单变量方程求根方法推广到方程组(2) 。若已给出方程组

(2) 的一个 近似 根x( k )( x1k ,..., xnk )T ,将函数 F ( x) 的分量

fi ( x)(i1,..., n) 在 x( k) 用多元函数泰勒展开, 并取其线性部分,

则可表示为

F ( x)F (x( k ) )F (x( k ) )( xx( k ) ).

令上式右端为零,得到线性方程组

F ( x( k ) )( x x( k ) )

F (x( k ) ),

(3)

其中

f1 ( x)

f1( x)

f1 ( x)

x1

x2

xn

f2 ( x)

f 2 ( x)

f2 ( x)

x1

x2

xn

F ( x)

(4)

fn ( x)

f n ( x)

fn ( x)

x

x

2

xn

1

称为 F (x) 为雅可比( Jacobi )矩阵。求解线性方程组

(3) ,并

记解为 x(k 1) ,则得

x( k 1)x( k )F ( x( k ) ) 1 F (x(k ) )(k0,1,...).(5)

这就是解非线性方程组(2) 的牛顿法。

三.算法

牛 顿 法 主 要 思 想 是 用 x(k 1)

x(k )

F (x( k ) ) 1 F (x( k ) )

(k 0,1,...). 进行迭代 。因此首先需要算出

F ( x) 的雅可比矩阵

( x) ,再求过 F ( x) 求出它的逆 F ( x) 1 ,当它达到某个精度

(x_k) 时即停止迭代。

具体算法如下:

1.

首先宏定义方程组 F ( x)

,确定步长 x _ 和精度 (x_k) ;

2.

求 F ( x) 的雅可比矩阵 F

( x) ;

可用

fi ( x1 ,..., xj ,..., xn )

f i ( x1,..., x j

x _,..., xn ) f i ( x1,..., x j ,..., xn )

x j

x _

求出雅可比矩阵;

3.

求雅可比矩阵 F ( x) 的逆 F ( x)

1 ;

1

0

将 F ( x) 右乘一个单位矩阵

,通过单位矩阵变

0

1

换实现求 F ( x) 的逆,用指针来存贮。

4.

雅可比矩阵 F ( x) 与其逆 F ( x)

1 的相乘;

5.

用 (5) 来迭代;

6.

当精度 x_k i 大于 x_k 时,重复执行

2—— 5 步,直到精度

小于或等于 x_k 停止迭代, x_ki

就是最后的迭代结果。

其中 x_k

i

( x( i 1)

x(i ) ) 2 ,...,( x( i

1)

x(i ) )2

1

1

n

n

四.代码

#include

#include

#include

#include

#de

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值