MATLAB用高斯消去法解非线性方程组的代码
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 23:15:23
MATLAB用高斯消去法解非线性方程组的代码
MATLAB用高斯消去法解非线性方程组的代码
MATLAB用高斯消去法解非线性方程组的代码
function x = gauss(A, b)
n = length(b);
for k = 1 : n-1
if A(k,k)==0
fprintf('Error: the %dth pivot element equal to zero!\n',k);
return;
end
index = [k+1:n];
m = -A(index,k)/A(k,k);
A(index,index) = A(index,index) + m*A(k,index);
b(index) = b(index) + m*b(k);
end
x = zeros(n,1);
x(n) = b(n)/A(n,n);
for i = n-1:-1:1
x(i) = ( b(i) - A(i,[i+1:n])*x([i+1:n]) )/A(i,i);
end
在Command Window 输入
>> A=[1 1.355 1.4 2;
3 3.5 0.22 1;
0.5 2 2.1 3;
0.3 0.1 -0.55 2];
>> b=[2.00,1.00,0.55,3.00]'
b =
2.0000
1.0000
0.5500
3.0000
>> gauss(A,b)
ans =
2.5225
-2.2313
0.0177
1.2381
>>