众所周知,克莱默法则是求解方程组的好工具,那在我们使用matlab求解的时候会因为输入步骤繁杂而放弃这种办法,就像下图一样。
今天小编为了解决这个问题,写了一个函数,以后使用的时候可以直接调用。
比如求解这个问题:
我们只需输入:
a=[2 1 -5 1;1 -3 0 -6;0 2 -1 2;1 4 -7 6];
b=[8 9 -5 0]';
kramer(a,b);
即可得到答案。
可以看到与答案一模一样。
就像这样,非常好用。
代码:
% 写一个函数为了快速使用克莱默法则
function y=kramer(a,b)
%判断矩阵是否为方阵
[rs,cs]=size(a);
if rs~=cs
disp('系数矩阵必须为方阵,不可以使用克莱默法则')
return
end
A={};
DD=det(a);
if DD==0
disp('行列式等于0,无效')
return
end
for n=1:size(a,2)
c=a;
c(:,n)=b;
A{n}=c;
end
y=zeros(1,size(a,2));
D=[];
for m=1:size(a,2)
D(m)=det(A{m});
end
y=D/DD;
disp(['结果为:',num2str(y)])
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删