Minimizing an equation to 0

6 visualizzazioni (ultimi 30 giorni)
AAS
AAS il 11 Set 2022
Modificato: Bruno Luong il 11 Set 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 Commenti
Walter Roberson
Walter Roberson il 11 Set 2022
are A, B, C matrices? Are k1 and k2 scalar?
AAS
AAS il 11 Set 2022
yes, A,B and C are matrices and k1 and k2 are scalars.

Accedi per commentare.

Risposte (3)

Alan Stevens
Alan Stevens il 11 Set 2022
Try fminsearch
  1 Commento
AAS
AAS il 11 Set 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);

Accedi per commentare.


Torsten
Torsten il 11 Set 2022
Modificato: Torsten il 11 Set 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 il 11 Set 2022
Modificato: Bruno Luong il 11 Set 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);

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by