
1、双击matlab软件图标,打开matlab软件,可以看到matlab软件的界面。
3、使用函数chol(A)对矩阵A进行Cholesky分解。
4、使用函数表达式[B,C]=lu(A)对矩阵进行LU分解,也成为高斯消去法。其中B是下三角矩阵,C是上三角矩阵。
5、使用函数magic(4)创建一个4x4的矩阵A。使用函数表达式[Q,R]=qr(A),对矩阵A进行QR分解,其中Q是正交矩阵。
matlab有多种LU分解程序下面算一种:function [L,U]=myLU(A)
%实现对矩阵A的LU分解,L为下三角矩阵
A
[n,n]=size(A)
L=zeros(n,n)
U=zeros(n,n)
for i=1:n
L(i,i)=1
end
for k=1:n
for j=k:n
U(k,j)=A(k,j)-sum(L(k,1:k-1).*U(1:k-1,j)')
end
for i=k+1:n
L(i,k)=(A(i,k)-sum(L(i,1:k-1).*U(1:k-1,k)'))/U(k,k)
end
end
用法,在控制台输入
A=[1 2 3 -4-3 -4 -12 132 10 0 -34 14 9 -13]
网上很多高手编的程序,随便找找就是。找了一个,你看看。
1.lu分解程序
function
[l,u,detA]
=
mylu(
a
)
%
该程式主是对系数矩阵a进行LU分解,具体算法可参见数值分析.
n=size(a,2)
u=zeros(size(a))
l=eye(size(a))
u(1,:)=a(1,:)
l(2:end,1)=a(2:end,1)/a(1,1)
for
r=2:n
for
j=r:n
u(r,j)=a(r,j)-l(r,1:r-1)*u(1:r-1,j)
end
for
i=r+1:n
l(i,r)=(a(i,r)-l(i,1:r-1)*u(1:r-1,r))/u(r,r)
end
end
detA=det(a)
2.调用
>>
A=magic(4)
>>
[L,U,detA]=mylu(A)
L
=
1.0000
0
0
0
0.3125
1.0000
0
0
0.5625
0.5663
1.0000
0
0.2500
1.3012
-3.0000
1.0000
U
=
16.0000
2.0000
3.0000
13.0000
0
10.3750
9.0625
3.9375
0
0
-0.8193
2.4578
0
0
0
0
detA
=
0
>>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)