matlab中求解线性方程组,数值分析中求解线性方程组的MATLAB程序(6种)

数值分析中求解线性方程组的全部MATLAB程序

数值分析中求解线性方程组的MATLAB程序(6种)

1.回溯法(系数矩阵为上三角)

function X=uptrbk(A,B)

%求解方程组,首先化为上三角,再调用函数求解

[N,N]=size(A);

X=zeros(N,1);

C=zeros(1,N+1);

Aug=[A B];

for p=1:N-1

[Y,j]=max(abs(Aug(p:N,p)));

C=Aug(p,:);

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

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

if Aug(p,p)==0

'A was singular.No unique solution.'

break;

end

for k=p+1:N

m=Aug(k,p)/Aug(p,p);

Aug(k,p:N+1)=Aug(k,p:N+1)-m*Aug(p,p:N+1);

end

end

D=Aug;

X=backsub(Aug(1:N,1:N),Aug(1:N,N+1));

2.系数矩阵为下三角

function x=matrix_down(A,b)

%求解系数矩阵是下三角的方程组

n=length(b);

x=zeros(n,1);

x(1)=b(1)/A(1,1);

for k=2:1:n

x(k)=(b(k)-A(k,1:k-1)*x(1:k-1))/A(k,k);

end

3.普通系数矩阵(先化为上三角,在用回溯法)

function X=uptrbk(A,B)

%求解方程组,首先化为上三角,再调用函数求解

[N,N]=size(A);

X=zeros(N,1);

C=zeros(1,N+1);

Aug=[A B];

for p=1:N-1

你可能感兴趣的:(matlab中求解线性方程组)