如何用Matlab求线性方程组的通解
1个回答
2017-09-27
展开全部
如何用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=A\b;
else
disp('方程有无穷多解,特解为x,其齐次方程组的基础解系为y');
x=A\b;
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
这个是线性齐次方程组的
先写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=A\b;
else
disp('方程有无穷多解,特解为x,其齐次方程组的基础解系为y');
x=A\b;
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询