0

私はmatlabの機能を見つけようとしましたが、「tf」を見つけましたが、使い方がわかりませんでした:/

だから私は遷移行列のコードを書こうとしています:

mat1=[1,1,1;
      1,1,0;
      1,0,0];

これに:

mat2=[1,2,3;
      0,1,1;
      0,0,1]

私は次のようなことをしなければならないと思います:

a{1} * mat2(1,:) + a{2} * mat2(1,:) + a{3} * mat2(1,:) = mat1(1,:);
a{4} * mat2(2,:) + a{5} * mat2(2,:) + a{6} * mat2(2,:) = mat1(2,:);
a{7} * mat2(3,:) + a{8} * mat2(3,:) + a{9} * mat2(3,:) = mat1(3,:);

これらの方程式を解く a{1}、a{2}、.... a{9} を見つけて、列に入れます。

result = [a{1} a{4} a{7};
          a{2} a{5} a{8};
          a{3} a{6} a{9}];

私のやり方は大丈夫ですか?私の行列の遷移行列を作成するためにmatlab関数を使用する方法を教えてください。

これは例です:

1(1,2,3)-1(0,1,1)-1(0,0,1) = (1,1,1)
1(1,2,3)-1(0,1,1)-2(0,0,1) = (1,1,0)
1(1,2,3)-2(0,1,1)-1(0,0,1) = (1,0,0)

結果は次のようになります。

result =    [1  1  1
            -1 -1 -2
            -1 -2 -1]

ここで、B の基底でベクトル (3, -1, -1) を取ると、c の基底で (1,0,0) が得られます。

4

2 に答える 2

2

関数tfは、伝達関数モデルを計算します。それはあなたの問題とはまったく関係がないようです。

編集:

今、私はそれを得たので、Rあなたが望む結果行列は実際には

R = (M1 * M2^-1)^T

したがって

result = (mat1 * inv(mat2))';

ここで、転置は単にインデックスを列から選択するという選択によるものです。

ただし、この解決策がもたらすことを強調しなければなりません

mat1 = result' * mat2;

からへR^Tの遷移行列ではなく、 からM1M2の遷移行列です。M2M1

于 2012-06-12T12:51:17.940 に答える
0

TF() は伝達関数です。コントロールのように。たとえば、関数が F(s) = (1/5s^2+2s+1) 分子 = [1] 分母 = [5 2 1] の場合、伝達関数 F = tf([1], [5 2 2])。ここから、bode(F) などの楽しい工学的なことがたくさんできます。

あなたがやろうとしていると思うことは次のとおりです。http://www.mathworks.com/matlabcentral/newsreader/view_thread/132415

于 2012-06-12T12:51:50.857 に答える