Minimizing an equation to 0

1 vue (au cours des 30 derniers jours)
AAS
AAS le 11 Sep 2022
Modifié(e) : Bruno Luong le 11 Sep 2022
I have an equation where I am trying to reduce the RMS to 0 i.e RMS(A-(B+C)<=0. A,B and C are known but the RMS is not equal to 0 . Now, I want to modify this equation such that RMS(A-(k1*B+k2*C)<=0. I want to find k1 and k2 to make the RMS as close to 0. How could I do this?
  2 commentaires
Walter Roberson
Walter Roberson le 11 Sep 2022
are A, B, C matrices? Are k1 and k2 scalar?
AAS
AAS le 11 Sep 2022
yes, A,B and C are matrices and k1 and k2 are scalars.

Connectez-vous pour commenter.

Réponses (3)

Alan Stevens
Alan Stevens le 11 Sep 2022
Try fminsearch
  1 commentaire
AAS
AAS le 11 Sep 2022
I tried to implement it this way.. however, it did not produce good resuts, barely did any minimization. Am I implementing it right?
f = @(k) rms(C-(k(1)*A+k(2)*B));;
k0=[1 1];
[xmin] = fminsearch(f,k0,options);
f(xmin);

Connectez-vous pour commenter.


Torsten
Torsten le 11 Sep 2022
Modifié(e) : Torsten le 11 Sep 2022
A = [4 3; 6 2; 7 -3];
B = [1 -3; 2 2; 5 -pi];
C = [12 -0.5; 7 -3; 0 1];
fun = @(p)reshape(A-(p(1)*B+p(2)*C),[],1);
sol = lsqnonlin(fun,[1 1])
Local minimum found. Optimization completed because the size of the gradient is less than the value of the optimality tolerance.
sol = 1×2
0.9421 0.3061
error = rms(fun(sol))
error = 2.7826

Bruno Luong
Bruno Luong le 11 Sep 2022
Modifié(e) : Bruno Luong le 11 Sep 2022
This minimize the frobenius norm, or l2 norm of the vectorized residual matrix (divided by sqrt(numel(A)) you'll get the rms)
k=[B(:),C(:)]\A(:);
k1=k(1);
k2=k(2);

Catégories

En savoir plus sur Optimization Toolbox dans Help Center et File Exchange

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by