加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

雅可比、高斯—赛德尔迭代公式的Matlab程序语句的实现

(2016-01-05 22:51:01)
标签:

matlab

雅可比迭代公式

高斯迭代公式

分类: 破解教程
雅可比迭代程序:
A=[5,-2,1;1,5,-3;2,1,-5]; %系数矩阵
b=[4;2;-11];  %线性(全为0)、非线性方程组矩阵
if(any(diag(A))==0)
    error('error,pause')
end
eps=input('误差限eps=');%精度
N=input('迭代次数N=');%迭代次数
D=diag(diag(A));
B=inv(D)*(D-A);
f=inv(D)*b;
K=0;
x0=zeros(size(b));
while 1
    x1=B*x0+f
    K=K+1;
    fprintf('第-次迭代的近似解为',K)
vpa(x1,10)   %p每个结果输出精度为10
disp(x1');
    if norm(x1-x0,inf)
        fprintf('满足精度要求的解为\n')
        
        disp(x1');
        break
    end
    if K>N
        fprintf('迭代超限')
    end
    x0=x1;
end


高斯—赛德尔迭代程序:

A=[5,-2,1;1,5,-3;2,1,-5];
b=[4;2;-11];
if(all(diag(A))==0)
    error('error,pause')
end
eps=input('误差限eps=');
N=input('迭代次数N=');
D=diag(diag(A));
B=inv(D)*(D-A);
f=inv(D)*b;
K=0;
x0=zeros(size(b));
x00=x0;
while 1
    x11=B*x0+f;
    x00(1,1)=x11(1,1);
    x12=B*x00+f;
    x00(2,1)=x12(2,1);
    x13=B*x00+f;
    x00(3,1)=x13(3,1);
    x1=x00
    K=K+1;
    fprintf('第-次迭代的近似解为',K)
vpa(x1,10) 
    disp(x1');
    if norm(x1-x0,inf)
        fprintf('满足精度要求的解为\n')
        disp(x1');
        break
    end
    if K>N
        fprintf('迭代超限')
    end
    x0=x1;
end

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有