当前位置:婀娜女性网>美好生活>心理>

matlab怎么求解齐次方程

心理 阅读(2.4W)
matlab怎么求解齐次方程

先写m文件

function

[x,y]=line_solution(A,b)

[m,n]=size(A)

y=[]

if

norm(b)>0

if

rank(A)==rank([A,b])

if

rank(A)==n

disp('方程有唯一解x')

x=Ab

else

disp('方程有无穷多解,特解为x,其齐次方程组的基础解系为y')

x=Ab

y=null(A,'r')%null是用来求齐次线性方程组的基础解系的,加上'r'则求出的是一组最小正整数解,如果不加,则求出的是解空间的规范正交基。

end

else

disp('方程无解')

x=[]

end

else

disp('原方程组有唯一零解x')

x=zeros(n,1)

if

rank(A)<n

disp('方程组有无穷个解,基础解系为y')

y=null(A,'r')

end

end

----------------------------------------------------------------------

举例调用:

format

rat

%以有理数形式输出

A=[1,1,-3,-13,-1,-3,41,5,-9,-8]

b=[140]

[x,y]=line_solution(A,b)

x,y

format

short

%保留4位有效数字