フィルターのクリア

'sym' returns val = k11

1 回表示 (過去 30 日間)
Justin
Justin 2022 年 10 月 26 日
回答済み: Torsten 2022 年 10 月 26 日
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 件のコメント
Torsten
Torsten 2022 年 10 月 26 日
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 2022 年 10 月 26 日
編集済み: Justin 2022 年 10 月 26 日
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?

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

採用された回答

Torsten
Torsten 2022 年 10 月 26 日
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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePartial Differential Equation Toolbox についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by