精华内容
下载资源
问答
  • 这是数值计算第二章的第六个程序---平方根法解线性方程组。
  • 利用对称正定矩阵的乔累斯基分解求解对称正定方程组的方法称为平方根法 对称正定矩阵A的对角元为正 实对称矩阵A正定的充要条件是A的所有特征值为正 对称正定矩阵非奇异,其逆...平方根法解线性方程组,输出L矩阵和根 %.
    • 利用对称正定矩阵的乔累斯基分解求解对称正定方程组的方法称为平方根法
    • 对称正定矩阵A的对角元为正
    • 实对称矩阵A正定的充要条件是A的所有特征值为正
    • 对称正定矩阵非奇异,其逆亦为对称正定矩阵
    • 实对称矩阵A正定的充要条件是A的所有顺序主子式为正
    • 正定矩阵的顺序主子阵是正定的
    • Cholesky分解较一般的LU分解乘除法计算量小得多。它所需要的乘除次数约为(n^3)/6数量级,差不多比LU分解节省一半的工作量,但要进行n次开方运算
    • (比高斯法更稳定,不需要选主元)
    %% 0.平方根法解线性方程组,输出L矩阵和根
    %% 1.对称正定矩阵的Cholesky分解
    %对称正定矩阵A存在唯一的对角元素均为正数的下三角矩阵L,使得A=L*L(转置)
    %这种分解叫做Cholesky分解
    A=[3,3,5;3,5,9;5,9,17];
    b=[0;-2;-4];
    %判断矩阵A是否对称正定,对称+所有顺序主子式为正
    L=zeros(3);
    %求下三角矩阵L
    L(1,1)=sqrt(A(1,1));%L11
    L(2,1)=A(2,1)/L(1,1);%L21
    L(3,1)=A(3,1)/L(1,1);%L31
    L(2,2)=sqrt(A(2,2)-L(2,1)*L(2,1));%L22
    L(3,2)=(A(3,2)-L(3,1)*L(2,1))/L(2,2);%L32
    L(3,3)=sqrt(A(3,3)-L(3,1)*L(3,1)-L(3,2)*L(3,2));%L33
    L%输出L矩阵
    %% 2.由Ly=b得到y
    y=L\b;
    %% 3.由L_转置*x=y得到方程组的解x
    x=L'\y%输出线性方程组的根
    

    运行结果:
    在这里插入图片描述
    其中y矩阵:
    在这里插入图片描述
    利用MATLAB内置函数chol

    %% 0.平方根法解线性方程组,输出L矩阵和根
    %% 1.对称正定矩阵的Cholesky分解
    %对称正定矩阵A存在唯一的对角元素均为正数的下三角矩阵L,使得A=L*L'
    %这种分解叫做Cholesky分解
    A=[3,3,5;3,5,9;5,9,17];
    b=[0;-2;-4];
    %L=chol(A,'lower')基于矩阵A的对角线和下三角形生成下三角矩阵L,满足方程L*L'=A
    L=chol(A,'lower')
    %% 2.由Ly=b得到y
    y=L\b;
    %% 3.由L_转置*x=y得到方程组的解x
    x=L'\y%输出线性方程组的根
    

    如果矩阵A不是对称的,则 chol 使用上三角的(复共轭)转置作为下三角。

    展开全文
  • 数值分析老师留的程序作业 用平方根法求解方程组 代码简单 很好的实现了平方根法 求解难题
  • G %--------用A=GG’分解求解方程组Ax=b(平方根法)---- %Gy=b,G'x=y; x=zeros(n,1);%未知向量 y=zeros(n,1);%中间向量 y(1)=b(1)/G(1,1); for i=2:n y(i)=(b(i)-sum(G(i,1:i-1)'.*y(1:i-1)))/G(i,i); end y %-----...

    %定理2.2.3:对阵正定矩阵的楚列斯基(Cholesky)分解

    %设A为n阶对阵正定矩阵,则存在一个可逆的下三角矩阵G,使得

    %A=GG’,当限定G的对角元为正时,这种分解是唯一的

    %--------A=GG’的分解算法-------

    %参考教材:《数值分析》李乃成,梅立泉,科学出版社

    clear;clc;

    A=[9,18,9,-27;

    18,45,0,-45;

    9,0,126,9;

    -27,-45,9,135];

    b=[1 2 16 8]';

    n=length(b);%方程个数n

    G=zeros(n,n);

    G(1,1)=sqrt(A(1,1));

    G(2:n,1)=A(2:n,1)/G(1,1);

    for j=2:n-1

    G(j,j)=sqrt(A(j,j)-sum(G(j,1:j-1).^2));

    for i=j+1:n

    G(i,j)=(A(i,j)-sum(G(i,1:j-1).*G(j,1:j-1)))/G(j,j);

    end

    end

    G(n,n)=sqrt(A(n,n)-sum((G(n,1:n-1)).^2));

    G

    %--------用A=GG’分解求解方程组Ax=b(平方根法)----

    %Gy=b,G'x=y;

    x=zeros(n,1);%未知向量

    y=zeros(n,1);%中间向量

    y(1)=b(1)/G(1,1);

    for i=2:n

    y(i)=(b(i)-sum(G(i,1:i-1)'.*y(1:i-1)))/G(i,i);

    end

    y

    %---------由G'x=y求出x----------

    %方法类似于U由x=y解出x

    G=G';

    x(n)=y(n)/G(n,n);

    for i=n-1:-1:1

    x(i)=(y(i)-sum(G(i,i+1:n)'.*x(i+1)))/G(i,i);

    end

    x

    展开全文
  • 平方根法解如下方程组• 法一:clearclcA=input('输入对称正定矩阵A=')B=input('输入自由项B=')n=length(A(:,1));for k=1:nif (det(A(1:k,1:k))<=0)input('矩阵不是正定矩阵,请重新运行程序')endend%分解A=L*L'...

    平方根法解如下方程组

    • 法一:

    clear

    clc

    A=input('输入对称正定矩阵A=')

    B=input('输入自由项B=')

    n=length(A(:,1));

    for k=1:n

    if (det(A(1:k,1:k))<=0)

    input('矩阵不是正定矩阵,请重新运行程序')

    end

    end

    %分解A=L*L'

    for i=1:n

    t=0;

    for s=1:i-1

    t=t+L(i,s)^2;

    end

    L(i,i)=sqrt(A(i,i)-t);

    for k=i+1:n

    tt=0;

    for s=1:i-1

    tt=tt+L(i,s)*L(k,s);

    end

    L(k,i)=(A(k,i)-tt)/L(i,i);

    end

    end

    %分解AX=B为Ly=B Lx=y

    %求y

    for i=1:n

    ttt=0;

    for k=1:i-1

    ttt=ttt+L(i,k)*y(k);

    end

    y(i)=(B(i)-ttt)/L(i,i);

    end

    %求x

    for i=n:-1:1

    tttt=0;

    for k=i+1:n

    tttt=tttt+L(k,i)*x(k);

    end

    x(i)=(y(i)-tttt)/L(i,i);

    end

    x' %若要成行向量输出此处用x即可

    运行结果:

    • 法二:

    function pngfanggen(n)

    A=[4 2 -4 0 2 4 0 0;

    2 2 -1 -2 1 3 2 0;

    -4 -1 14 1 -8 -3 5 6;

    0 -2 1 6 -1 -4 -3 3;

    2 1 -8 -1 22 4 -10 -3;

    4 3 -3 -4 4 11 1 -4;

    0 2 5 -3 -10 1 14 2;

    0 0 6 3 -3 -4 2 19];

    B = [0 -6 20 23 9 -22 -15 45];

    L=zeros(8,1);

    for j=1:n

    L(j,j)=sqrt(A(j,j)-sum(L(j,:)*L(j,:)'));

    for i=j+1:n

    L(i,j)=(A(i,j)-sum(L(i,:)*L(j,:)'))/L(j,j);

    end

    end

    Y=zeros(1,n);

    for i=1:n

    Y(i)=(B(i)-sum(L(i,:)*Y'))/L(i,i);

    end

    X(n)=Y(n)/L(n, n);

    for i=n-1:-1:1

    X(i)=(Y(i)-sum(L(:,i)'*X'))/L(i,i);

    end

    disp('平方根法求得L=');

    disp(L);

    disp('该线性方程组的解为X=');disp(X');

    end

    运行结果:

    展开全文
  • %--------用A=GG’分解求解方程组Ax=b(平方根法)---- %Gy=b,G'x=y; x=zeros(n,1);%未知向量 y=zeros(n,1);%中间向量 y(1)=b(1)/G(1,1); for i=2:n  y(i)=(b(i)-sum(G(i,1:i-1)'.*y(1:i-1)))/G(i,i);...


    %定理2.2.3:对阵正定矩阵的楚列斯基(Cholesky)分解
    %设A为n阶对阵正定矩阵,则存在一个可逆的下三角矩阵G,使得
    %A=GG’,当限定G的对角元为正时,这种分解是唯一的

    %--------A=GG’的分解算法-------
    %参考教材:《数值分析》李乃成,梅立泉,科学出版社
    clear;clc;
    A=[9,18,9,-27;
      18,45,0,-45;
      9,0,126,9;
      -27,-45,9,135];
    b=[1 2 16 8]';
    n=length(b);%方程个数n
    G=zeros(n,n);
    G(1,1)=sqrt(A(1,1));
    G(2:n,1)=A(2:n,1)/G(1,1);
    for j=2:n-1
        G(j,j)=sqrt(A(j,j)-sum(G(j,1:j-1).^2));
        for i=j+1:n
            G(i,j)=(A(i,j)-sum(G(i,1:j-1).*G(j,1:j-1)))/G(j,j);
        end
    end
    G(n,n)=sqrt(A(n,n)-sum((G(n,1:n-1)).^2));
    G
    %--------用A=GG’分解求解方程组Ax=b(平方根法)----
    %Gy=b,G'x=y;
    x=zeros(n,1);%未知向量
    y=zeros(n,1);%中间向量
    y(1)=b(1)/G(1,1);
    for i=2:n
        y(i)=(b(i)-sum(G(i,1:i-1)'.*y(1:i-1)))/G(i,i);
    end
    y
    %---------由G'x=y求出x----------
    %方法类似于U由x=y解出x
    G=G';
    x(n)=y(n)/G(n,n);
    for i=n-1:-1:1
        x(i)=(y(i)-sum(G(i,i+1:n)'.*x(i+1)))/G(i,i);
    end
    x

     

    展开全文
  • 平方根法解线性方程(c++)

    千次阅读 2010-10-07 10:13:00
    #include #include #include int k;const int n=4;using namespace std;double q_s1(double array[][n],int i,int j);double q_s2(double array[][n],int j);double q_s3(double array[][n],double
  • 若当消去法 Python解线性方程组的直接法(4)————矩阵的LU分解 Python解线性方程组的直接法(5)————平方根法求解线性方程组 Python解线性方程组的直接法(6)————求解三对角方程组的追赶法
  • 改进的平方根法_解线性方程组的直接解法
  • 平方根法(Cholesky分解法)解线性方程组 包括程序代码和结果分析 平方根法需要将矩阵做Cholesky分解,化为两个三角方程组求解。 % 平方根法(Cholesky分解法)解线性方程组Ax=b % A为方程组系数矩阵, b是方程组右端向量...
  • 一:概述本篇文章介绍解线性方程组的平方根法及改进平方根法,适用范围为系数矩阵为正定Hermite矩阵(下称H阵)的线性方程组。这个方法的理论依据我觉得是来自Schur引理的H阵结构定理,从这个角度我们就可以理解课程...
  • 一:概述本篇文章介绍解线性方程组的平方根法及改进平方根法,适用范围为系数矩阵为正定Hermite矩阵(下称H阵)的线性方程组。这个方法的理论依据我觉得是来自Schur引理的H阵结构定理,从这个角度我们就可以理解课程...
  • 本篇文章介绍解线性方程组的平方根法及改进平方根法,适用范围为系数矩阵为正定Hermite矩阵(下称H阵)的线性方程组。这个方法的理论依据我觉得是来自Schur引理的H阵结构定理,从这个角度我们就可以理解课程上教授的...
  • 详细过程见《数值计算方法》 题目: C++题解: #include <iostream> #include <cstdio> #include <queue> #include <cstring> #include <cmath>...double temp[105 * 1
  • 教你如何使用C语言编写用平方根法求解线性方程组的程序。
  • 一:概述本篇文章介绍解线性方程组的平方根法及改进平方根法,适用范围为系数矩阵为正定Hermite矩阵(下称H阵)的线性方程组。这个方法的理论依据我觉得是来自Schur引理的H阵结构定理,从这个角度我们就可以理解课程上...
  • 平方根法 乔累斯基分解Cholesky_解线性方程组的直接解法
  • Cholesky分解法又叫做平方根法,是求解对称正定线性方程组最常用的方法之一。A是一个对称正定的矩阵,则存在一个对角元均为正数的下三角阵L,使得A=LL’,称为Cholesky分解,而后我们可以由下面三步求解: (1)计算A的...
  • 数值分析3-解线性方程组迭代法解线性代数方程组直接法高斯消元,高斯主元素消元矩阵三角分解法,列主元三角分解平方根法追赶法方程组性态和误差分析 解线性代数方程组直接法 高斯消元,高斯主元素消元 矩阵三角分解...
  • 转自改进的平方根法 做了一些注释和修改了函数 function [L,D,x,y]=improvedSqareRoot(A,b) n=length(A(:,1)); %求A矩阵第一列的长度,即矩阵维数 %% 判断输入的矩阵是不是符合要求 for k=1:n if (det(A(1:k,1:k)))...
  • 解线性方程组的直接是用有限次运算求出线性方程组 Ax=b 的解的方法。线性方程组的直接主要有Gauss消元及其变形、LU(如Doolittle、Crout方法等)分解和一些求解特殊线性方程组的方法(如追赶、LDLT等)。...
  • 线性代数中高斯消去2. 应用举例:最小二乘法多项式拟合函数小结 1. 线性代数中高斯消去 2. 应用举例:最小二乘法多项式拟合函数 小结 假设某一个函数可以使用多项式进行描述: f(x)=∑j=0Mwjxjf(x)=\sum_{j=0}^...
  • 在科学和工程计算中,经常需要求解形如 的线性方程组,其中 为 矩阵,称为系数矩阵, 为 维列向量,称为右端向量, 为待求解的 维列向量,称为向量。而科学和工程的实际计算中,经常遇到系数矩阵 为对称正定矩阵的...
  • 在科学和工程计算中,经常需要求解形如 的线性方程组,其中 为 矩阵,称为系数矩阵, 为 维列向量,称为右端向量, 为待求解的 维列向量,称为向量。而科学和工程的实际计算中,经常遇到系数矩阵 为对称正定矩阵的...

空空如也

空空如也

1 2 3 4
收藏数 79
精华内容 31
关键字:

平方根法解线性方程