1701011294
1701011295
因此可知,采用计算机求解,只需要简单输入方程组的系数,即可很快地求解方程组的根,效率大大提高。21世纪,计算机带给人们求解大规模方程组提供了便利,使得人们对控制器设计更加精准。
1701011296
1701011297
【问题】对于一个非线性方程组,如何求其根呢?
1701011298
1701011299
【分析】
1701011300
1701011301
线性方程组求解,对于我们而言,可以轻易地求解了,但是如果方程组是非线性的呢?方程组不能消元,怎么办?
1701011302
1701011303
对于非线性方程组计算,计算机采用根查询方法,按照方程的下降梯度进行方程根的逼近,使得求解的根尽可能地去逼近每一个方程,从而实现方程组的求解,即采用数值计算方式给出一种合理的方程根,方程的根并不一定精确的满足每一个方程,但是在一定的精度范围内是可以接受的。
1701011304
1701011305
考虑如下非线性系统:
1701011306
1701011307
1701011308
1701011309
1701011310
将该非线性方程组化为标准形式:
1701011311
1701011312
1701011313
1701011314
1701011315
1701011316
设初值点为。
1701011317
1701011318
先建立方程函数文件,并保存为myfun.m:
1701011319
1701011320
function F = myfun(x) F = [2*x(1) - x(2) - exp(-x(1)); -x(1) + 2*x(2) - exp(-x(2))];
1701011321
1701011322
然后调用优化程序:
1701011323
1701011324
clc,clear,close all %清屏和清除变量 warning off %消除警告 x0 = [-5; -5]; %初始点 options=optimset(‘Display’,‘iter’); %显示输出信息 [x,fval] = fsolve(@myfun,x0,options) %方程求解
1701011325
1701011326
运行程序输出结果如下。
1701011327
1701011328
x = 0.5671 0.5671 fval = 1.0e-008 * -0.5320 -0.5320
1701011329
1701011330
整理结果易得到:
1701011331
1701011332
1701011333
1701011334
1701011335
将结果代入方程有:
1701011336
1701011337
1701011338
1701011339
1701011340
1701011341
从结果可知道,求解的两个根是满足方程的,是足够的逼近0值的,在一定的精度范围内,方程的解是可接受的,然而采用人工计算,几乎不能将其求解出来,就算是求解出来,结果也是相当庞大的且不是很直观,因此,采用计算机编程求解,能够完成人工无法完成的问题。
1701011342
1701011343
【问题】对于一个多元目标函数,在给定范围内,又如何求其最值?
[
上一页 ]
[ :1.701011294e+09 ]
[
下一页 ]