解非线性方程组,具体问题具体分析
解决非线性方程组
运用具体问题具体分析的方法,首先定义x
作为一个双元素优化变量。
x = optimvar (“x”2);
创建第一个方程作为一个优化平等表达。
eq1 = exp (exp (- x (x (1) + (2)))) = = x (2) * (1 + x (1) ^ 2);
类似地,创建第二个方程作为一个优化平等表达。
eq2 = x (1) * cos (x (2)) + x (2) * sin (x (1)) = = 1/2;
创建一个方程问题,把方程的问题。
概率= eqnproblem;prob.Equations。eq1 = eq1;prob.Equations。eq2 = eq2;
回顾这个问题。
显示(概率)
EquationProblem:解:x eq1: exp ((exp ((- x (x (1) + (2)))))) = = (x (2) * (1 + x (1) ^ 2)) eq2: ((x (1)。* cos (x (2))) + (x (2)。* sin (x (1)))) = = 0.5
从点开始解决问题(0,0)
。具体问题具体分析的方法,指定初始点为一个结构,变量名称的字段结构。对于这个问题,只有一个变量,x
。
x0。x=[0 0]; [sol,fval,exitflag] = solve(prob,x0)
使用fsolve解决问题。方程解决。fsolve完成因为函数值接近于零的向量的值函数的宽容,问题出现普通的梯度。
索尔=结构体字段:x (2 x1双):
fval =结构体字段:eq1: -2.4070 e-07 eq2: -3.8255 e-08
exitflag = EquationSolved
查看解决方案。
disp (sol.x)
0.3532 - 0.6061
不支金宝app持的功能要求fcn2optimexpr
如果你不组成的基本方程函数功能,您必须使用转换函数来优化表达式fcn2optimexpr
。目前的例子:
ls1 = fcn2optimexpr (@ (x) exp (exp (- x (x (1) + (2)))), x);eq1 = ls1 = = x (2) * (1 + x (1) ^ 2);ls2 = fcn2optimexpr (@ (x) x (1) * cos (x (2)) + x (2) * sin (x (1)), x);eq2 = ls2 = = 1/2;