打字猴:1.70101126e+09
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
1701011280 同样采用计算机计算上述四元一次方程组:
1701011281
1701011282
1701011283
1701011284
1701011285 编程求解如下:
1701011286
1701011287     clc,clear,close all         %清屏和清除变量    warning off                 %消除警告    format rat;    A = [3 2 -1 4;              %方程系数矩阵        3/8 1 -1/8 1/4;        1 -1 1/2 -1;        1/2 -1 1/3 -1/6];    B1 = [-4,-1,7/2,2]’;        %方程右边b矩阵    x1 = gauss_x(A,B1)
1701011288
1701011289 运行程序输出结果如下:
1701011290
1701011291     x1 =           1          -1           1          -1
1701011292
1701011293 和手工计算是一样的。
1701011294
1701011295 因此可知,采用计算机求解,只需要简单输入方程组的系数,即可很快地求解方程组的根,效率大大提高。21世纪,计算机带给人们求解大规模方程组提供了便利,使得人们对控制器设计更加精准。
1701011296
1701011297 【问题】对于一个非线性方程组,如何求其根呢?
1701011298
1701011299 【分析】
1701011300
1701011301 线性方程组求解,对于我们而言,可以轻易地求解了,但是如果方程组是非线性的呢?方程组不能消元,怎么办?
1701011302
1701011303 对于非线性方程组计算,计算机采用根查询方法,按照方程的下降梯度进行方程根的逼近,使得求解的根尽可能地去逼近每一个方程,从而实现方程组的求解,即采用数值计算方式给出一种合理的方程根,方程的根并不一定精确的满足每一个方程,但是在一定的精度范围内是可以接受的。
1701011304
1701011305 考虑如下非线性系统:
1701011306
1701011307
1701011308
1701011309
[ 上一页 ]  [ :1.70101126e+09 ]  [ 下一页 ]