How to optimize parameters that satisfy the equation.

3 visualizzazioni (ultimi 30 giorni)
I want to optimize three parameters x, y, z that satisfy the following equation.
A(D) = abs(x * (y * exp(1i * z) * B(D) + C(D)))
A (D), B (D), C (D): Constant determined by D
i : imaginary unit
However, it does not converge to the expected value.
What sholud I do about this situation?
I used the Optimize Live Editor Task with the following contents by referring to the following URL.
https://www.mathworks.com/help/matlab/math/optimize-live-editor-matlab.html
Objective : Nonlinear
Constraints : Unconstrained
Solver : fminsearch
Objective function : Local function, objectiveFcn
Initial point : x0 = [3 2 pi]
This time, A (D) = 0.24, B (D) = 0.05, C (D) = 0.02, and the Local function is described as follows.
At this time, x, y, and z are expected to be 3, 2, pi, respectively.
---------------------------------------------------------
function f = objectiveFcn(optimInput)
x = optimInput(1);
y = optimInput(2);
z = optimInput(3);
f = 0.24 - abs(x*(0.05*y*exp(1i*z) + 0.02));
end
---------------------------------------------------------

Risposta accettata

Matt J
Matt J il 18 Mar 2022
Modificato: Matt J il 18 Mar 2022
First, you must fix the formula for f
f = abs( 0.24 - abs(x*(0.05*y*exp(1i*z) + 0.02)) );
Second, you have 3 unknowns, so you must provide at least 3 equations.
  5 Commenti
Matt J
Matt J il 22 Mar 2022
For example, if your equations were the 2x2 system A*x=b
A=rand(2); b=sum(A,2);
f=@(x) sum(abs(A*x-b));
x=fminsearch(f,[0;0])
x = 2×1
1.0000 1.0000
KM
KM il 22 Mar 2022
Thank you for your quick reply.
It looks like I will optimize my equations by referring to your example.
Thank you so much again.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Optimization in Help Center e File Exchange

Prodotti


Release

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by