zoukankan      html  css  js  c++  java
  • 线性方程组的迭代解法——雅可比迭代法

      1.代码

    %%雅可比迭代法(此迭代法对于病态矩阵的解不理想)
    %%线性方程组M*X = b,M是方阵,X0是初始解向量,epsilon是控制精度
    function JIM = Jacobian_iteration_method(M,b,X0,epsilon)
    [m,n] = size(M);
    d = diag(M);L = zeros(m,n);U = zeros(m,n);D = zeros(m,n);
    delta = 0;ub = 100;X = zeros(m,ub);X(:,1) = X0;X_delta = X;X_end = zeros(m,1);k_end = 0;k = 1;e = floor(abs(log(epsilon)));
    for i = 1:1:m
        for j = 1:1:n
            if i > j
                L(i,j) = -M(i,j);
            elseif i < j
                U(i,j) = -M(i,j);
            elseif i == j
                D(i,j) = d(i);
            end     
        end
    end
    B = inv(D)*(L+U);
    f = inv(D)*b;
    X_real = inv(M)*b;
    for k = 1:1:ub
        X_delta(:,k) = X(:,k)-X_real;
        delta = norm(X_delta(:,k),2);
        if delta < epsilon
             break
        end
        X(:,k+1) = B*X(:,k)+f;
    end
    disp('迭代次数为:');
    k
    disp('迭代解为:');
    JIM=vpa([X(:,k)],e);
    end
    

      2.例子

    clear all
    clc
    for i = 1:8
        for j = 1:8
            if i == j
                M(i,j) = 2.1;
            elseif i - j == 1
                M(i,j) = 1;
            elseif j - i == 1
                M(i,j) = -1;
            else
                M(i,j) = 0;
            end
        end
    end
    b = [1 2 3 4 4 3 2 1]';
    X0 = [1 1 1 1 1 1 1 1]';
    epsilon = 1e-4;
    
    S = Jacobian_iteration_method(M,b,X0,epsilon)
    M
    

      结果为

    迭代次数为:
    k =
        73
    迭代解为:
    S =
      1.07162282
      1.25046562
      1.69755831
      1.81519199
      1.50952631
     0.985363364
      0.57873237
     0.200592913
    ans =
        1.0716
        1.2504
        1.6975
        1.8152
        1.5096
        0.9853
        0.5787
        0.2006
    

      

  • 相关阅读:
    pyecharts包学习笔记
    敏捷测试关键成功因素
    JMeter—常见问题(十四)
    性能测试面试题
    python-Tkinter整理总结
    JMeter—系统性能分析思路(十三)
    JMeter—监听器(十二)
    JMeter—断言(十一)
    yii2.0 的数据的 增
    Windows下安装 使用coreseek
  • 原文地址:https://www.cnblogs.com/guliangt/p/12119352.html
Copyright © 2011-2022 走看看