How to tune matrices to specific output?

2 Ansichten (letzte 30 Tage)
Ali Almakhmari
Ali Almakhmari am 26 Sep. 2023
Kommentiert: Sam Chak am 26 Sep. 2023
Hey guys. So I have four matrices that are each 8 by 8: matrix P, matrix Q, matrix R, and matrix G. I have a certain algorithm (I wont go in to too much details about it because its too complicated with multiple files) that depends on those four matrices and uses them to output a single column of values for me. I also have what I call the perfect output, which is what I desire the output single column to look like. Now my question is: How can I use MATLAB to tune those 4 matrices in order for the output column to match the perfect output column?
  8 Kommentare
Ali Almakhmari
Ali Almakhmari am 26 Sep. 2023
The length of the output is 314.
Sam Chak
Sam Chak am 26 Sep. 2023
The code is looking good. 👍
% Initialize P, Q, R, G
P = [0.5 2.5; 3.5 1.5];
Q = P;
R = Q;
G = R;
perfectoutput = [1; 81; 256; 16];
x0 = cat(3, P, Q, R, G);
lsqnonlin(@(x) computeOutput(x(:,:,1), x(:,:,2), x(:,:,3), x(:,:,4)) - perfectoutput, x0)
Warning: Trust-region-reflective algorithm requires at least as many equations as variables; using Levenberg-Marquardt algorithm instead.
Local minimum found. Optimization completed because the size of the gradient is less than 1e-4 times the value of the function tolerance.
ans =
ans(:,:,1) = 1.0000 4.0000 3.0000 2.0000 ans(:,:,2) = 1.0000 4.0000 3.0000 2.0000 ans(:,:,3) = 1.0000 4.0000 3.0000 2.0000 ans(:,:,4) = 1.0000 4.0000 3.0000 2.0000
function output = computeOutput(P, Q, R, G)
M = P.*Q.*R.*G;
output = [M(1); M(2); M(3); M(4)];
end

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Bruno Luong
Bruno Luong am 26 Sep. 2023
Bearbeitet: Bruno Luong am 26 Sep. 2023
Use lsqnonlin (or such) if you have optimization toolbox.

Weitere Antworten (0)

Kategorien

Mehr zu Biological and Health Sciences finden Sie in Help Center und File Exchange

Produkte


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by