• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB线性方程组的迭代求解法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

MATLAB线性方程组的迭代求解法

作者:凯鲁嘎吉 - 博客园
http://www.cnblogs.com/kailugaji/

一、实验目的

1. 借助矩阵按模最大特征值,判断解方程组的Jacobi迭代法所得迭代序列的敛散性。

2. 会在Jacobi迭代法所得迭代序列收敛时,用修改后的Gauss-Seidel迭代法。

3. 会逐次超松驰迭代法。

二、实验原理

三、实验程序

四、实验内容

用上面前二种方法求解4元线性方程组的近似解,所选方程组尽可能可以用多种方法求得收敛解。

注:要注意判断迭代法收敛性,方法之一就是用程序求矩阵的按模最大特征值。

五、解答

1.(程序)

(1)Jacobi迭代法源程序:

function x=jacobi(a,b,x0,n,tol,m)
x=zeros(n,1);
for k=0:m
    for i=1:n
        s=0;
        for j=1:n
            if j~=i
                s=s+a(i,j)*x0(j,1);
            end
        end
        x(i,1)=(b(i,1)-s)/a(i,i);
        if norm(x-x0,inf)<tol
            break;
        end
        x0(i,1)=x(i,1);
    end
end

(2)Gauss-Seidel迭代法源程序:

function x=gauss_seidel(a,b,x0,n,tol,m)
x=zeros(n,1);
for k=0:m
    for i=1:n
        s=0;s2=0;
        for j=1:i-1
            s2=s2+a(i,j)*x(j,1);
        end
        for j=i+1:n
                s=s+a(i,j)*x0(j,1);
        end
        x(i,1)=(b(i,1)-s-s2)/a(i,i);
        if norm(x-x0,inf)<tol
            break;
        end
        x0(i,1)=x(i,1);
    end
end

2.(运算结果)

(1)求解线性方程组

>> a=[8 -3 2;4 11 -1;6 3 12];b=[20 33 36]\';x0=[0 0 0]\';
>> x=jacobi(a,b,x0,3,1e-6,50)

x =

    3.0000
    2.0000
    1.0000

(2)Gauss-Seidel迭代法

>>  a=[8 -3 2;4 11 -1;6 3 12];b=[20 33 36]\';x0=[0 0 0]\';
>> x=gauss_seidel(a,b,x0,3,1e-6,50)

x =

    3.0000
    2.0000
    1.0000

3.(拓展(方法改进、体会等))

逐次超松驰迭代法源程序:

function x=SOR(a,b,x0,n,w,tol,m)
x=zeros(n,1);
for k=0:m
    for i=1:n
        s=0;s2=0;
        for j=1:i-1
            s2=s2+a(i,j)*x(j,1);
        end
        for j=i+1:n
                s=s+a(i,j)*x0(j,1);
        end
        x(i,1)=(1-w)*x0(i,1)+w*(b(i,1)-s-s2)/a(i,i);
        if norm(x-x0,inf)<tol
            break;
        end
        x0(i,1)=x(i,1);
    end
end

运算结果:

>>  a=[-4 1 1 1;1 -4 1 1;1 1 -4 1;1 1 1 -4];b=[1 1 1 1]\';x0=[0 0 0 0]\';
>> x=SOR(a,b,x0,4,1,1e-6,20)

x =

   -1.0000
   -1.0000
   -1.0000
   -1.0000

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap