作业帮 > 数学 > 作业

牛顿迭代法求矩阵逆的公式怎么来的

来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/04/29 17:38:15
牛顿迭代法求矩阵逆的公式怎么来的
我是问那公式怎么来的啊,不是问用那公式怎么迭代啊,兄弟姐妹们
牛顿迭代法求矩阵逆的公式怎么来的
牛顿迭代法计算矩阵近似逆
一 问题
设A为主对角占优矩阵,用牛顿迭代法求矩阵A的近似逆.
二 实验目的:
熟悉MATLAB的编程环境,掌握MATLAB的程序设计方法,会运用数值分析课程中的牛顿迭代法求解矩阵的近似逆.

三 实验原理:
迭代公式为:Xn+1 = Xn(2I – AXn ),迭代计算的收敛要求为:||I –AX0|| < 1.本次实验中的对角占优矩阵A= ,根据迭代收敛的条件,取A的对角元组成的矩阵X0=diag([1/10,1/20,1/30,1/40,1/50]),可以保证迭代收敛.采用循环语句实现迭代过程.
四 MATLAB程序及注释:
A=[10,1,2,0,1;2,20,1,0,1;1,3,30,2,0;2,3,0,40,1;5,6,1,0,50];%输入 主对角占优的五阶矩阵
X0=diag([1/10,1/20,1/30,1/40,1/50]); %用对角元构造近似逆
E=eye(5); %生成5*5阶单位矩阵
format short e; %五位浮点数表示
for k=1:6
Xn=X0*(2*E-A*X0);
er=norm(E-A*X0,inf)
X0=Xn; %牛顿迭代计算
end
format %五位定点数表示
Xn %显示A的近似逆
Y=inv(A) %显示A的逆矩阵
五 实验数据结果及分析:
程序运行后,显示如下:
er =
0.8333
er =
0.1543
er =
0.0104
er =
3.9879e-005
er =
5.8016e-010
er =
2.2833e-016
Xn =
0.1023 -0.0036 -0.0066 0.0003 -0.0020
-0.0097 0.0509 -0.0010 0.0001 -0.0008
-0.0022 -0.0047 0.0336 -0.0017 0.0002
-0.0042 -0.0035 0.0004 0.0250 -0.0003
-0.0090 -0.0057 0.0001 -0.0000 0.0203
Y =
0.1023 -0.0036 -0.0066 0.0003 -0.0020
-0.0097 0.0509 -0.0010 0.0001 -0.0008
-0.0022 -0.0047 0.0336 -0.0017 0.0002
-0.0042 -0.0035 0.0004 0.0250 -0.0003
-0.0090 -0.0057 0.0001 -0.0000 0.0203
观察实验数据,A矩阵的近似逆在经过六次的迭代后求得的近似逆与MATLAB中的inv(A)所求得的逆矩阵在四位有效数字时完全一致.
六 实验结论:
实验数据的有效数位增长很快,经过六次迭代误差的数量级就达到10-16,收敛速度很快,第四次与第五次迭代符合二阶收敛速度.本实验中计算出的矩阵近似逆与与MATLAB中的inv(A)所求得的逆矩阵在四位有效数字时完全相同的原因估计是①A矩阵是严格主对角占优矩阵;②MATLAB中inv(A)就是运用的牛顿迭代法.
七 标记:
①迭代解法用于解大型稀疏(此矩阵中0元素较多)方程组或矩阵.②A矩阵主对角元均不为0,且主对角元的值大于该行其他所有元素的绝对值之和.
牛顿迭代法计算矩阵近似逆
一 问题
设A为主对角占优矩阵,用牛顿迭代法求矩阵A的近似逆.
二 实验目的:
熟悉MATLAB的编程环境,掌握MATLAB的程序设计方法,会运用数值分析课程中的牛顿迭代法求解矩阵的近似逆.

三 实验原理:
迭代公式为:Xn+1 = Xn(2I – AXn ),迭代计算的收敛要求为:||I –AX0|| < 1.本次实验中的对角占优矩阵A= ,根据迭代收敛的条件,取A的对角元组成的矩阵X0=diag([1/10,1/20,1/30,1/40,1/50]),可以保证迭代收敛.采用循环语句实现迭代过程.
四 MATLAB程序及注释:
A=[10,1,2,0,1;2,20,1,0,1;1,3,30,2,0;2,3,0,40,1;5,6,1,0,50];%输入 主对角占优的五阶矩阵
X0=diag([1/10,1/20,1/30,1/40,1/50]); %用对角元构造近似逆
E=eye(5); %生成5*5阶单位矩阵
format short e; %五位浮点数表示
for k=1:6
Xn=X0*(2*E-A*X0);
er=norm(E-A*X0,inf)
X0=Xn; %牛顿迭代计算
end
format %五位定点数表示
Xn %显示A的近似逆
Y=inv(A) %显示A的逆矩阵
五 实验数据结果及分析:
程序运行后,显示如下:
er =
0.8333
er =
0.1543
er =
0.0104
er =
3.9879e-005
er =
5.8016e-010
er =
2.2833e-016
Xn =
0.1023 -0.0036 -0.0066 0.0003 -0.0020
-0.0097 0.0509 -0.0010 0.0001 -0.0008
-0.0022 -0.0047 0.0336 -0.0017 0.0002
-0.0042 -0.0035 0.0004 0.0250 -0.0003
-0.0090 -0.0057 0.0001 -0.0000 0.0203
Y =
0.1023 -0.0036 -0.0066 0.0003 -0.0020
-0.0097 0.0509 -0.0010 0.0001 -0.0008
-0.0022 -0.0047 0.0336 -0.0017 0.0002
-0.0042 -0.0035 0.0004 0.0250 -0.0003
-0.0090 -0.0057 0.0001 -0.0000 0.0203
观察实验数据,A矩阵的近似逆在经过六次的迭代后求得的近似逆与MATLAB中的inv(A)所求得的逆矩阵在四位有效数字时完全一致.
六 实验结论:
实验数据的有效数位增长很快,经过六次迭代误差的数量级就达到10-16,收敛速度很快,第四次与第五次迭代符合二阶收敛速度.本实验中计算出的矩阵近似逆与与MATLAB中的inv(A)所求得的逆矩阵在四位有效数字时完全相同的原因估计是①A矩阵是严格主对角占优矩阵;②MATLAB中inv(A)就是运用的牛顿迭代法.
七 标记:
①迭代解法用于解大型稀疏(此矩阵中0元素较多)方程组或矩阵.②A矩阵主对角元均不为0,且主对角元的值大于该行其他所有元素的绝对值之和.
再问: 能告诉我那公式怎么来的么?
再答: 设r是f(x) = 0的根,选取x0作为r初始近似值,过点(x0,f(x0))做曲线y = f(x)的切线L,L的方程为y = f(x0)+f'(x0)(x-x0),求出L与x轴交点的横坐标 x1 = x0-f(x0)/f'(x0),称x1为r的一次近似值。过点(x1,f(x1))做曲线y = f(x)的切线,并求该切线与x轴交点的横坐标 x2 = x1-f(x1)/f'(x1),称x2为r的二次近似值。重复以上过程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),称为r的n+1次近似值,上式称为牛顿迭代公式。   解非线性方程f(x)=0的牛顿法是把非线性方程线性化的一种近似方法。把f(x)在x0点附近展开成泰勒级数 f(x) = f(x0)+(x-x0)f'(x0)+(x-x0)^2*f''(x0)/2! +… 取其线性部分,作为非线性方程f(x) = 0的近似方程,即泰勒展开的前两项,则有f(x0)+f'(x0)(x-x0)-f(x)=0 设f'(x0)≠0则其解为x1=x0-f(x0)/f'(x0) 这样,得到牛顿法的一个迭代序列:x(n+1)=x(n)-f(x(n))/f'(x(n))。    牛顿迭代法示意图 军人在进攻时常采用交替掩护进攻的方式,若在数轴上的点表示A,B两人的位置,规定在前面的数大于后面的数,则是A>B,B>A交替出现。但现在假设军中有一个胆小鬼,同时大家又都很照顾他,每次冲锋都是让他跟在后面,每当前面的人占据一个新的位置,就把位置交给他,然后其他人再往前占领新的位置。也就是A始终在B的前面,A向前迈进,B跟上,A把自己的位置交给B(即执行B = A操作),然后A 再前进占领新的位置,B再跟上……直到占领所有的阵地,前进结束。像这种两个数一前一后逐步向某个位置逼近的方法称之为迭代法。   迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程,跟迭代法相对应的是直接法(或者称为一次解法),即一次性解决问题。迭代算法是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点,让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。   利用迭代算法解决问题,需要做好以下