matlab用lu求逆矩阵,Matlab实现——求矩阵的逆(LU分解) | 学步园
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分解) | 学步园相关推荐
- 求逆矩阵计算机方法,求逆矩阵的快速方法(用于编程).pdf
求逆矩阵的快速方法(用于编程) ? ? 1 2 2 2 Ρ Ρ Ρ Ρ Ρ ? Α Α Α Α Α Α 3 Α Β Β Β 3 Α Β Α Β Α Β Α Β Β Β Β 第 20 卷第 1 期 大 ...
- 简单易懂逆矩阵,终于明白矩阵的逆到底有什么用
本文转载自http://www.sohu.com/a/226465524_224832,讲得非常好 首先,我们先来看看这个数的倒数: ·倒数 其实矩阵的逆矩阵也跟倒数的性质一样,不过只是我们习惯用A- ...
- matlab用lu求逆矩阵,Matlab实现——求矩阵的逆(LU分解)
Program ( :Solve By Factorization with Pivoting ) 思路及原理: 就得到: 程序: function X=Ni(A) %Input - A is an ...
- 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; ...
- 高斯消元法求逆矩阵 matlab,高斯消元法求逆矩阵
有多组测试数据.每组测试数据先输入一个整数n,表示方阵的阶.然后下面输入n阶方阵.输出其逆矩阵.若无逆矩阵,则输出No inverse matrix. #include #include #inclu ...
- 增广矩阵求逆矩阵MATLAB实现
%输入矩阵A,矩阵阶数n,输出矩阵W为A的逆矩阵,注意,该代码需要保证矩阵A的各阶主子式都可逆 function W = matrixinv(A,n) WW=zeros(n,2*n) ...
- opencv求矩阵的逆_OpenCV 矩阵操作 加减乘除 求逆 行列式值 | 学步园
GEMM 通用矩阵乘法 void cvGEMM( const CvArr* src1, const CvArr* src2, double alpha, const CvArr* src3, doub ...
- matlab群延时函数,群延迟函数(group delay function)群延迟滤波器 | 学步园
最近看了许多介绍Group delay function的论文,文章中大篇幅提到Group delay,group delay of digital filters,对这个方面的知识好像还挺有用的,所 ...
- 部分选主元matlab,部分选主元的Doolittle分解 | 学步园
步骤: 假设用紧凑格式的Doolittle法已经完成了第 r-1 (1<=r<=n) 步分解,第 r 步分解,首先在数组 A 的第 r 列主对角元以下(含主对角元) 选主元,具体步骤: 1 ...
最新文章
- 学习笔记 ACCESS 延迟注入
- 会计期间在ERP开发中的设计思路
- nginx负载均衡的session共享问题的解决方法
- flutter能开发游戏吗_游戏开发者都擅长“打自己的游戏”吗?
- 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置
- 如何解决使用JSON.stringify时遇到的循环引用问题
- matplotlib 画多条折线图且x轴下标非数值
- BUAA - Team Review Score
- socket阻塞与非阻塞,同步与异步
- Python map() ==>根据提供的函数对指定序列做映射
- pm模型matlab算法,18基于遗传算法(粒子群算法、人工鱼群算法等)的投影寻踪模型MATLAB源代码...
- SecureCRT日志上添加时间戳
- nmap隐藏自己扫描
- i java 字节码_用java字节码解释i++和++i
- 如何选择一个合适的大数据可视化工具
- 使用Jenkins实现自动化构建!
- 注册vmvare账号验证码问题
- window申请ios证书步骤
- 加来道雄 基因编辑 纳米机器人_潜力巨大:纳米材料结合CRISPR基因编辑,成功改善阿尔茨海默病症状...
- JQuery弹幕发送