'sym' returns val = k11

1 visualizzazione (ultimi 30 giorni)
Justin
Justin il 26 Ott 2022
Risposto: Torsten il 26 Ott 2022
I am trying to obtain each of the k values in the K_bar matrix but it returns this instead:
val =
k12
A_bar and B_bar are 6x6 and 6x2 matrices respectively, desired_A is a 6x6 matrix
syms k11 k12 k13 k14 k15 k16 k21 k22 k23 k24 k25 k26
K_bar = [k11 k12 k13 k14 k15 k16; k21 k22 k23 k24 k25 k26];
desired_A = [0 1 0 0 0 0;
0 0 1 0 0 0;
0 0 0 1 0 0;
0 0 0 0 1 0;
0 0 0 0 0 1;
P_1(1,1) P_1(2,1) P_1(3,1) P_1(4,1) P_1(5,1) P_1(6,1)];
solve(A_bar-B_bar*K_bar == desired_A)
  2 Commenti
Torsten
Torsten il 26 Ott 2022
We cannot run your code since P_1, A_bar and B_bar are not included.
Specify the variables to be solved for in the solve-command:
solve(A_bar-B_bar*K_bar == desired_A,[....])
Justin
Justin il 26 Ott 2022
Modificato: Justin il 26 Ott 2022
P_1 =
-17.5458
-10.9961
-5.9298
2.4755
0.5145
0.2144
A_bar = [2.27373675443232e-13 1.00000000000006 -2.27373675443232e-13 3.90798504668055e-14 -1.77635683940025e-15 -6.55031584528842e-15
-137.734459766021 -31.4382876387425 90.5288917845223 5.50401138702667 0.233058235255689 -0.0318858055012502
-9.09494701772928e-13 -2.27373675443232e-13 0 1.00000000000009 3.99680288865056e-15 -1.49880108324396e-14
9.09494701772928e-12 1.59161572810262e-12 -7.27595761418343e-12 5.68434188608080e-14 0.999999999999989 -3.66373598126302e-14
4.80213202536106e-10 9.09494701772928e-11 -3.18323145620525e-10 -6.70752342557535e-12 -8.10018718766514e-13 1.00000000000012
20062.3834043088 3782.74771918441 -13184.1581254876 -293.869135173145 -0.661269979650289 0.170971388595087]
B_bar = [0.000523048989000699 -2.71050543121376e-20
-0.000854211683516470 2.71050543121376e-20
0.000569896798913104 2.71050543121376e-20
-0.000851129445196858 -5.42101086242752e-19
0.00186262474795345 0.00842710999609239
0.0139115491920225 0.0325937275319102]
Here are the numbers for A_bar B_bar and P_1.
I tried running this solve(A_bar-B_bar*K_bar == desired_A,[k11 k12 k13 k14 k15 k16 k21 k22 k23 k24 k25 k26]) but it returns a 0 x 1 sym. Does that mean there is no solutions available for this?

Accedi per commentare.

Risposta accettata

Torsten
Torsten il 26 Ott 2022
As you can see, there are 36 equations for 12 variables. A solution only exists that approximately satisfies the equations.
syms k11 k12 k13 k14 k15 k16 k21 k22 k23 k24 k25 k26
K_bar = [k11 k12 k13 k14 k15 k16; k21 k22 k23 k24 k25 k26];
P_1 = [-17.5458
-10.9961
-5.9298
2.4755
0.5145
0.2144];
A_bar = [2.27373675443232e-13 1.00000000000006 -2.27373675443232e-13 3.90798504668055e-14 -1.77635683940025e-15 -6.55031584528842e-15
-137.734459766021 -31.4382876387425 90.5288917845223 5.50401138702667 0.233058235255689 -0.0318858055012502
-9.09494701772928e-13 -2.27373675443232e-13 0 1.00000000000009 3.99680288865056e-15 -1.49880108324396e-14
9.09494701772928e-12 1.59161572810262e-12 -7.27595761418343e-12 5.68434188608080e-14 0.999999999999989 -3.66373598126302e-14
4.80213202536106e-10 9.09494701772928e-11 -3.18323145620525e-10 -6.70752342557535e-12 -8.10018718766514e-13 1.00000000000012
20062.3834043088 3782.74771918441 -13184.1581254876 -293.869135173145 -0.661269979650289 0.170971388595087];
B_bar = [0.000523048989000699 -2.71050543121376e-20
-0.000854211683516470 2.71050543121376e-20
0.000569896798913104 2.71050543121376e-20
-0.000851129445196858 -5.42101086242752e-19
0.00186262474795345 0.00842710999609239
0.0139115491920225 0.0325937275319102];
desired_A = [0 1 0 0 0 0;
0 0 1 0 0 0;
0 0 0 1 0 0;
0 0 0 0 1 0;
0 0 0 0 0 1;
P_1(1,1) P_1(2,1) P_1(3,1) P_1(4,1) P_1(5,1) P_1(6,1)];
[A,b] = equationsToMatrix(A_bar-B_bar*K_bar - desired_A==0,[k11 k12 k13 k14 k15 k16 k21 k22 k23 k24 k25 k26]);
A = double(A);
b = double(b);
k = A\b
k = 12×1
1.0e+06 * 1.7565 0.3328 -1.1526 -0.0265 -0.0001 0.0000 -0.1496 -0.0287 0.0981 0.0025
k = k.';
sum((double(A_bar - B_bar*[k(1:6);k(7:12)]-desired_A)).^2,'all')
ans = 1.5036e+07

Più risposte (0)

Categorie

Scopri di più su Partial Differential Equation Toolbox in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by