主要内容

解决方程的非线性系统,基于问题

解决方程的非线性系统

exp. - exp. - X 1 + X 2 = X 2 1 + X 1 2 X 1 COS. X 2 + X 2 X 1 = 1 2

使用基于问题的方法,首先定义X作为两个元素优化变量。

x = Optimvar('X',2);

将第一个等式创建为优化平等表达式。

eq1 = exp( - -( - ( - (x(1)+ x(2)))))== x(2)*(1 + x(1)^ 2);

类似地,将第二方程作为优化平等表达式创建。

eq2 = x(1)* cos(x(2))+ x(2)* sin(x(1))== 1/2;

创建一个等式问题,并将方程放在问题中。

prob = eqnproblem;prob.equations.eq1 = EQ1;prob.equations.eq2 = EQ2;

回顾问题。

展示(prob)
公式问题:解决:x eq1:exp( - -( - ( - (x(1)+ x(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] =求解(prob,x0)
使用FSOLVE解决问题。等式解决。FSOLVE完成,因为通过函数容差的值测量,功能值的向量接近零,并且如梯度测量的问题会常规。
sol =结构与字段:X:[2x1双]
fval =结构与字段:EQ1:-2.4070E-07 EQ2:-3.8255E-08
ExitFlag = Aquationsolved.

查看解决方案点。

disp(sol.x)
0.3532 0.6061

不支万博1manbetx持的功能需要FCN2Optimexpr.

如果您的公式函数不由基本函数组成,则必须将功能转换为使用优化表达式FCN2Optimexpr.。对于本示例:

ls1 = fcn2optimexpr(@(x)exp( - -( - ( - (x(1)+ x(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;

万博1manbetx在优化变量和表达式上支持的操作将非线性函数转换为优化表达式

也可以看看

|

相关话题