Решите нелинейную систему уравнений, основанную на проблеме

Решить нелинейную систему уравнений

exp(-exp(-(x1+x2)))=x2(1+x12)x1потому что(x2)+x2sin(x1)=12

с помощью подхода, основанного на проблеме сначала задайте x как двухэлементная переменная оптимизации.

x = optimvar('x',2);

Создайте левую сторону первого уравнения. Поскольку эта сторона не является полиномиальной или рациональной функцией, обработайте это выражение в выражение оптимизации при помощи fcn2optimexpr.

ls1 = fcn2optimexpr(@(x)exp(-exp(-(x(1)+x(2)))),x);

Создайте первое уравнение.

eq1 = ls1 == x(2)*(1 + x(1)^2);

Точно так же создайте левую сторону второго уравнения при помощи fcn2optimexpr.

ls2 = fcn2optimexpr(@(x)x(1)*cos(x(2))+x(2)*sin(x(1)),x);

Создайте второе уравнение.

eq2 = ls2 == 1/2;

Создайте проблему уравнения и поместите уравнения в проблему.

prob = eqnproblem;
prob.Equations.eq1 = eq1;
prob.Equations.eq2 = eq2;

Рассмотрите проблему.

show(prob)
  EquationProblem : 

	Solve for:
       x


 eq1:
       arg_LHS == (x(2) .* (1 + x(1).^2))

       where:

         anonymousFunction1 = @(x)exp(-exp(-(x(1)+x(2))));
         arg_LHS = anonymousFunction1(x);

 eq2:
       arg_LHS == 0.5

       where:

         anonymousFunction2 = @(x)x(1)*cos(x(2))+x(2)*sin(x(1));
         arg_LHS = anonymousFunction2(x);

Решите задачу, начинающую с точки [0,0]. Для подхода, основанного на проблеме задайте начальную точку как структуру с именами переменных как поля структуры. Для этой проблемы существует только одна переменная, x.

x0.x = [0 0];
[sol,fval,exitflag] = solve(prob,x0)
Solving problem using fsolve.

Equation solved.

fsolve completed because the vector of function values is near zero
as measured by the value of the function tolerance, and
the problem appears regular as measured by the gradient.
sol = struct with fields:
    x: [2x1 double]

fval = struct with fields:
    eq1: -2.4069e-07
    eq2: -3.8255e-08

exitflag = 
    EquationSolved

Просмотрите точку решения.

disp(sol.x)
    0.3532
    0.6061

Смотрите также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте