打字猴:1.70101123e+09
1701011230 计算机求解多元方程组的根,常用的方法有Gauss消元法、高斯-赛德尔迭代法、追赶法和雅克比迭代法等,在此将详细介绍高斯消元法。
1701011231
1701011232 Gauss消元法的基本思想是:先逐次消去变量,将方程组化成同解的上三角形方程组,此过程称为消元过程。然后按方程相反顺序求解上三角形方程组,得到原方程组的解,此过程称为回代过程。
1701011233
1701011234 对于Gauss消元法,总结一般的求解步骤,如以下n阶方程组。
1701011235
1701011236
1701011237
1701011238
1701011239 则有Gauss消元法最终结果如下:
1701011240
1701011241
1701011242
1701011243
1701011244 使得矩阵左下角值全为0,然后依次求解每个值。
1701011245
1701011246 用Gauss消元法求解下列方程组:
1701011247
1701011248
1701011249
1701011250
1701011251 写成矩阵的形式如下:
1701011252
1701011253
1701011254
1701011255
1701011256 由方程组书写成矩阵得:
1701011257
1701011258
1701011259
1701011260
1701011261 采用gauss_x()函数进行求解,程序如下:
1701011262
1701011263     clc,clear,close all        %清屏和清除变量    warning off                %消除警告    format rat;                %分数显示    A = [6 2 -1;               %方程系数矩阵        1 4 -2;        -3 1 4];    B1 = [-3,2,4]’;            %方程右边b矩阵    x1 = gauss_x(A,B1)
1701011264
1701011265 其中Gauss消元法函数程序如下:
1701011266
1701011267     function x = gauss_x(A,B)    %A为函数系数矩阵;    %B为函数值矩阵;    %x为求得未知量值;    format rat    C = [A,B];    nc = size(C); %求C的行列数    for j = 1 : nc(1,2)-2                                   %列数        for i = j+1 : nc(1,1)                               %行数            C(i,:) = -C(j,j)./C(i,j) .*C(i,:) + C(j,:);     %每行元素进行消元法        end    end    switch nc(1,1)        case 1  %1个未知数求解,1阶方程            x(1) = C(1,end)/C(1,end-1);        case 2  %2个未知数求解,2阶方程            x(2) = C(2,end)/C(2,end-1);            x(1) = ( C(1,end)-C(1,end-1)*x(2) )/ C(1,end-2);            x=[x(1);x(2)];        case 3  %3个未知数求解,3阶方程            x(3) = C(3,end)/C(3,end-1);            x(2) = ( C(2,end)-C(2,end-1)*x(3) )/ C(2,end-2);            x(1) = ( C(1,end)-C(1,end-1)*x(3)- C(1,end-2)*x(2))/ C(1,end-3);            x=[x(1);x(2);x(3)];        case 4  %4个未知数求解,4阶方程            x(4) = C(4,end)/C(4,end-1);            x(3) = ( C(3,end)-C(3,end-1)*x(4) )/ C(3,end-2);            x(2) = ( C(2,end)-C(2,end-1)*x(4)- C(2,end-2)*x(3))/ C(2,end-3);                     x(1) = ( C(1,end)-C(1,end-1)*x(4)- C(1,end-2)*x(3)-C(1,end-3)*             x(2))/ C(1,end-4);              x=[x(1);x(2);x(3);x(4)];        case 5  %5个未知数求解,5阶方程            x(5) = C(5,end)/C(5,end-1);            x(4) = ( C(4,end)-C(4,end-1)*x(5) )/ C(4,end-2);            x(3) = ( C(3,end)-C(3,end-1)*x(5)- C(3,end-2)*x(4))/ C(3,end-3);            x(2) = ( C(2,end)-C(2,end-1)*x(5)- C(2,end-2)*x(4)-C(2,end-3)*             x(3))/ C(2,end-4);              x(1) = ( C(1,end)-C(1,end-1)*x(5)- C(1,end-2)*x(4)-C(1,end-3)*             x(3)-C(1,end-4)*x(2))/ C(1,end-5);             x=[x(1);x(2);x(3);x(4);x(5)];    end    end
1701011268
1701011269 运行程序输出结果如下:
1701011270
1701011271     x1 =              -8/11          80/99          25/99
1701011272
1701011273 整理易得到:
1701011274
1701011275
1701011276
1701011277
1701011278 和手工计算是一样的。
1701011279
[ 上一页 ]  [ :1.70101123e+09 ]  [ 下一页 ]