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 ]
[
下一页 ]