Program  (

:Solve By Factorization with Pivoting )

思路及原理:

就得到:

程序:

function X=Ni(A)

%Input - A is an N x N matrix

%Output - I is an N x N inverse matrix of A

%and I(j,:)containing the solution to AX(:,j) =E(:,j).

%Initialize X, Y,the temporary storage matrix C, and the row

% permutation information matrix R

[N,N]=size(A);

B=eye(N); %B is an N x N identity matrix

X=zeros(N,N);

Y=zeros(N,N);

C=zeros(1,N);

R=1:N;

%the next steps is to find the factorization(factorize for only once)

for p=1:N-1

%Find the pivot row for column p

[max1, j]=max(abs(A(p:N,p)));

%Interchange row p and j

C=A(p,:);

A(p,:)=A(j+p-1,:);

A(j+p-1,:)=C;

d=R(p);

R(p)=R(j+p-1);

R(j+p-1)=d;

if A(p,p)==0

'A is singular. No unique solution'

break

end

%Calculate multiplier and place in subdiagonal portion of A

for k=p+1:N

mult=A(k,p)/A(p,p);

A(k,p) = mult;

A(k,p+1:N)=A(k,p+1:N)-mult*A(p,p+1:N);

end

end

for j=1:N

%when j is fixed then the method is similar to the Program 3.3

%Solve for Y(:,j)

Y(1,j) = B(R(1),j);

for k=2:N

Y(k,j)= B(R(k),j)-A(k,1:k-1)*Y(1:k-1,j);

end

%Solve for X(:,j)

X(N,j)=Y(N,j)/A(N,N);

for k=N-1:-1:1

X(k,j)=(Y(k,j)-A(k,k+1:N)*X(k+1:N,j))/A(k,k);

end

end

如果运行程序可以看到:Ni(A)和inv(A)运算得到的逆矩阵是相同的

而且 A*Ni(A)=E 所以结果是令人满意的

此方法中LU非直接三角分解只用了一次,通过增加一个j的循环,实现方程组的逐个求解,将得到的N个解向量C(:,j)合到X中得到最终结果。

个人感觉此方法的稳定性不错,暂时不需要改进了吧。

设计这个程序的时候并没遇到什么困难,思路已经想好了:

求解N个方程AXj=Ej;只要通过两个矩阵的对应列向量来存储Xj和Ej以及增加一个j循环,然后利用原来的Program就能达到预期的目的。

matlab用lu求逆矩阵,Matlab实现——求矩阵的逆(LU分解) | 学步园相关推荐

  1. 求逆矩阵计算机方法,求逆矩阵的快速方法(用于编程).pdf

    求逆矩阵的快速方法(用于编程) ? ? 1 2 2 2 Ρ Ρ Ρ Ρ Ρ ? Α Α Α Α Α Α 3 Α Β Β Β 3 Α Β Α Β Α Β Α Β Β Β Β 第 20 卷第 1 期 大 ...

  2. 简单易懂逆矩阵,终于明白矩阵的逆到底有什么用

    本文转载自http://www.sohu.com/a/226465524_224832,讲得非常好 首先,我们先来看看这个数的倒数: ·倒数 其实矩阵的逆矩阵也跟倒数的性质一样,不过只是我们习惯用A- ...

  3. matlab用lu求逆矩阵,Matlab实现——求矩阵的逆(LU分解)

    Program  ( :Solve By Factorization with Pivoting ) 思路及原理: 就得到: 程序: function X=Ni(A) %Input - A is an ...

  4. matlab求逆矩阵以及行列式,求矩阵行列式和逆,手写的MATLAB程序

    行列式: %Aij = (-1)^(i+j)*Mij %D = a11*A11 + a12*A12 + a13*A13 + ... + a1n*A1n %H = [1 2 3;7 9 7;5 6 1; ...

  5. 高斯消元法求逆矩阵 matlab,高斯消元法求逆矩阵

    有多组测试数据.每组测试数据先输入一个整数n,表示方阵的阶.然后下面输入n阶方阵.输出其逆矩阵.若无逆矩阵,则输出No inverse matrix. #include #include #inclu ...

  6. 增广矩阵求逆矩阵MATLAB实现

    %输入矩阵A,矩阵阶数n,输出矩阵W为A的逆矩阵,注意,该代码需要保证矩阵A的各阶主子式都可逆 function W = matrixinv(A,n)          WW=zeros(n,2*n) ...

  7. opencv求矩阵的逆_OpenCV 矩阵操作 加减乘除 求逆 行列式值 | 学步园

    GEMM 通用矩阵乘法 void cvGEMM( const CvArr* src1, const CvArr* src2, double alpha, const CvArr* src3, doub ...

  8. matlab群延时函数,群延迟函数(group delay function)群延迟滤波器 | 学步园

    最近看了许多介绍Group delay function的论文,文章中大篇幅提到Group delay,group delay of digital filters,对这个方面的知识好像还挺有用的,所 ...

  9. 部分选主元matlab,部分选主元的Doolittle分解 | 学步园

    步骤: 假设用紧凑格式的Doolittle法已经完成了第 r-1 (1<=r<=n) 步分解,第 r 步分解,首先在数组 A 的第 r 列主对角元以下(含主对角元) 选主元,具体步骤: 1 ...

最新文章

  1. 学习笔记 ACCESS 延迟注入
  2. 会计期间在ERP开发中的设计思路
  3. nginx负载均衡的session共享问题的解决方法
  4. flutter能开发游戏吗_游戏开发者都擅长“打自己的游戏”吗?
  5. 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置
  6. 如何解决使用JSON.stringify时遇到的循环引用问题
  7. matplotlib 画多条折线图且x轴下标非数值
  8. BUAA - Team Review Score
  9. socket阻塞与非阻塞,同步与异步
  10. Python map() ==>根据提供的函数对指定序列做映射
  11. pm模型matlab算法,18基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码...
  12. SecureCRT日志上添加时间戳
  13. nmap隐藏自己扫描
  14. i java 字节码_用java字节码解释i++和++i
  15. 如何选择一个合适的大数据可视化工具
  16. 使用Jenkins实现自动化构建!
  17. 注册vmvare账号验证码问题
  18. window申请ios证书步骤
  19. 加来道雄 基因编辑 纳米机器人_潜力巨大:纳米材料结合CRISPR基因编辑,成功改善阿尔茨海默病症状...
  20. JQuery弹幕发送

热门文章

  1. 堕入魔道:花式slider轮播
  2. JAVA十进制与十六进制相互转换
  3. ssm网上购物系统 毕业设计源码123361
  4. 计算机专业英语的阅读理解,计算机专业英语阅读
  5. NLP自然语言处理的文本数据增强——回译(内含python工具包)
  6. 旅行不知道特色美食有什么?这个小程序助力美食攻略新风向。
  7. 美国总统特朗普签署网络安全行政令
  8. sql中的列变行、行变列操作
  9. 利用爬虫对《青春有你2》选手信息爬取
  10. 是什么促成了虹膜的颜色不同?