【算法设计zxd】第3章迭代法03 线性代数方程

 
线性代数方程:

设线性代数方程组具有如下特征:

  算法框架

  • (1)设置线性代数方程组的初值X=(x1,…,xn-1 ,xn);
  • (2)构造迭代方程xi=gi (X)   (i=1,…,n-1,n)精度求解方法
  • (3)达到迭代次数或精度结束迭代。

雅克比算法:

k的意义:第k次运算(迭代)

没有利用前一次计算的结果。

就是移项。

 

 更快。

这个评价是在数值分析课程中。

ρ(B)是表示谱半径,也就是矩阵特征向量中的最大值。

是否收敛与谱半径有关:当谱半径<1,或任意一个特征范式<1,

 

 

 

 【例3-8】求下列解线性方程组的解

  计算模型

 

 

算法设计与描述
输入:
输出:

Jacobi (x[],k)

{

        i <- k;

        while (i)        //用次数来算

        {

                x11 <- ( 20+3*x[2]-2*x[3])/8;

                x12 <- ( 33-4*x[1]-x[3])/11;

                x13 <- ( 36-6*x[1]-3*x[2])/12;

                x[1] <- x11; x[2] <- x12 ;x[3] <- x13 ;//算完再更新

                i <- i-1 ;

        }

        output(x[]);

}

时间复杂度分析

由于计算模型已列出,ρ(B)=0.3592,

R(B)=-lnρ(B)=1.02276,于是有

k≥(5ln10)/ 1.02276=11.2567,

则实际k可取12次可达到要求。

Gauss_Seidel (x[],k)

{

        i <- k;

        while ( i )

        {

                x[1] <- ( 20+3*x[2]-2*x[3])/8;        //直接更新

                x[2] <- ( 33-4*x[1]-x[3])/11;

                x[3] <- ( 36-6*x[1]-3*x[2])/12;

                i <- i-1 ;

        }

        output(x[]);

}

运行结果分析

Jacobi算法:

k=12,结果: 2.999988 2.000008 1.000014

k=16,结果: 3.000000 2.000000 1.000000

Gauss_Seidel 算法:

k=12, 结果: 3.000000 2.000000 1.000000

思考题:求下列解线性方程组的解

思考题(1)不收敛

思考题(2)

delta:0.00109925         u: -0.415718    v:-0.516958
x1:-0.932676     x2:(0.466338,0.0876765)         x3:(0.466338,-0.0876765)
k:133
jacobi:
x[1]:-4 x[2]:3  x[3]:2
Gauss_Seidel:
x[1]:-4 x[2]:3  x[3]:2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值