满意答案
个inhjn
2013.04.23
采纳率:49% 等级:12
已帮助:15459人
程序如下function x=gauss(A,b) %高斯求解方程组%x=gauss(A,b)n=length(A);a=[A,b];for k=1:n-1 maxa=max(abs(a(k:n,k))); if maxa==0 return; end for i=k:n if abs(a(i,k))==maxa y=a(i,k:n+1);a(i,k:n+1)=a(k,k:n+1);a(k,k:n+1)=y; break; end end for i=k+1:n l(i,k)=a(i,k)/a(k,k); a(i,k+1:n+1)=a(i,k+1:n+1)-l(i,k).*a(k,k+1:n+1); endend%回代if a(n,n)==0 returnendx(n)=a(n,n+1)/a(n,n);for i=n-1:-1:1 x(i)=(a(i,n+1)-sum(a(i,i+1:n).*x(i+1:n)))/a(i,i);end 调用示例如下:>> A=[2,-1,3;4,2,5;1,2,0];
>> b=[1;4;7];
>> x=gauss(A,b)x = 9 -1 -6
25分享举报