matlab怎麼求解齊次方程
- 心理
- 關注:2.2W次
先寫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位有效數字
- 文章版權屬於文章作者所有,轉載請註明 https://rmnxw.com/zh-hant/lvse/xinli/0p4472.html