當前位置:聚美館>智慧生活>心理>

matlab怎麼求解齊次方程

心理 閱讀(2.28W)
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位有效數字