Implementing vectorial equation with matrix as variable

I have the following equation I want to implement for an exercise.
Am facing the following problems that I have not been able to overcome:
  • The equation contains two equal signs which MatLab does not accept.
  • when taking away one of the equal signs ML says there are too many output. Also, putting a semicolon between a(i) and b(i) causes errors.
a = zeros(1, 5);
b = zeros(1, 5);
c = 3.1415;
D = [0 1; -3.5 -0.921];
a0 = 45;
b0 = 31;
i = 2; %would later be variable
[a(i), b(i)] = [a0; b0]*c^(D*i)
Dividing the vector causes ML to say that the left and the right side have a different number of elements:
a(i) = a0*c^(D*i)
Unable to perform assignment because the left and right sides have a different number of elements.
Perhaps it simply isn't possible. If that is the case, confirming that would be appreciated.
Any help or tips in regards to implementing this equation would also be greatly appreciated.

 採用された回答

Torsten
Torsten 2022 年 6 月 7 日
編集済み: Torsten 2022 年 6 月 7 日

0 投票

c^(D*i) is a 2x2 matrix. Thus [a0;b0]*c^(D*i) is not defined.
Maybe you mean c^(D*i)*[a0;b0] or [a0,b0]*c^(D*i) ? I implemented the latter.
c = pi;
D = [0 1; -3.5 -0.921];
a0 = 45;
b0 = 31;
v0 = [a0,b0];
i = 2;
v = v0*expm(log(c)*D*i);
a = v(1)
a = 5.9402
b = v(2)
b = -10.7458

3 件のコメント

Tomas
Tomas 2022 年 6 月 7 日
I see, thank you. I meant the former: c^(D*i)*[a0;b0]
How would one go about implementing that one? Simply changing v0 gives me dimension errors.
Torsten
Torsten 2022 年 6 月 7 日
c = pi;
D = [0 1; -3.5 -0.921];
a0 = 45;
b0 = 31;
v0 = [a0;b0];
i = 2;
v = expm(log(c)*D*i)*v0;
a = v(1)
a = -16.7576
b = v(2)
b = 22.2026
Tomas
Tomas 2022 年 6 月 7 日
Thank you!

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

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeMathematics and Optimization についてさらに検索

製品

リリース

R2022a

質問済み:

2022 年 6 月 7 日

コメント済み:

2022 年 6 月 7 日

Community Treasure Hunt

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

Start Hunting!

Translated by