Minimizing an equation to 0

2 ビュー (過去 30 日間)
AAS
AAS 2022 年 9 月 11 日
編集済み: Bruno Luong 2022 年 9 月 11 日
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 件のコメント
AAS
AAS 2022 年 9 月 11 日
yes, A,B and C are matrices and k1 and k2 are scalars.

サインインしてコメントする。

回答 (3 件)

Alan Stevens
Alan Stevens 2022 年 9 月 11 日
Try fminsearch
  1 件のコメント
AAS
AAS 2022 年 9 月 11 日
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);

サインインしてコメントする。


Torsten
Torsten 2022 年 9 月 11 日
編集済み: Torsten 2022 年 9 月 11 日
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 2022 年 9 月 11 日
編集済み: Bruno Luong 2022 年 9 月 11 日
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);

Community Treasure Hunt

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

Start Hunting!

Translated by