行列からの連立方程式の計算方法と問題点

このQ&Aのポイント
  • 数式処理システムMaximaを使用して行列からの連立方程式を解く方法について質問があります。
  • 特定の式を計算する際には正しく計算されるが、別の式を計算する際には値が返ってこない問題が発生しています。
  • 問題の解決方法や改善策についてアドバイスをいただきたいです。
回答を見る
  • ベストアンサー

行列からの連立方程式

数式処理システムMaximaでの行列の計算が上手く出来ません。 以下数式↓ kill(ALL); M1:matrix([fb/f],[1/f]); M2:matrix([1,0],[1/f2,1]); M3:matrix([1,-e1],[0,1]); M4:matrix([1,0],[1/f1,1]); M5:matrix([1],[0]); M6:M2.M3.M4.M5; solve([M6=M1],[e1,fb]); 上記式(solve)を計算した際に値が返ってこないのです。 式を↓の様に入力するときちんと計算されるのですが、何か方法はありますでしょうか? solve([1-e1/f1=fb/f,(1-e1/f1)/f2+1/f1=1/f],[e1,fb]); 教えて頂けたら幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • info22
  • ベストアンサー率55% (2225/4034)
回答No.1

>solve([M6=M1],[e1,fb]); これではだめみたいですね。 ↓のようにしないとだめみたいです。 solve([M6[1,1]=M1[1,1],M6[2,1]=M1[2,1]],[e1,fb]);

yonoinu
質問者

お礼

ありがとうございます。 [M6[1,1]の様に細かく?指定してやらないとダメなのですね。 勉強になりました。

関連するQ&A

  • アルゴリズム(行列積)

    行列M1,M2,M3,M4が以下の数の行、列を持つ行列としたとき、行列積M1,M2,M3,M4をもっとも少ない演算回数で計算するには、どの順序で計算すればよいか? M1:20行60列 M2:60行5列 M3:5行20列 M4:20行100列 全くわかりません(>_<)みなさま手取り足取り教えてくださいm(__)m

  • 行列を用いて連立一次方程式を作る問題について

    解ベクトル(x e)を用いてこの国の為替市場が均衡する。この国の通貨に対する需要量(供給量)と為替レートを求めるための連立一次方程式を表記せよという問題があるのですが、この場合の係数行列は2×2ですか? 需要関数x=100-e 供給関数x=-300+5e という条件が与えられていて、 (1)でその連立一次方程式を表記する問題 (2)ではその求めた連立一次方程式とクラメールの公式を用いて均衡為替レートを求めよ、という問いになっています。 隠れた均衡式xd=xsを含めて考えて3×3の係数行列として計算するとちょうど綺麗な数字(100)が出てくるのですが、解ベクトル(x e)は2つしかありません。しかしそのまま二つの式だけで求めようとすると割り切れない値(-400÷-6)が出てきてしまいます。 これはきちんと係数行列をまとめる方法があるのでしょうか?それとも単純に自分のミスでしょうか・・?

  • 行列の連立微分方程式

    Aという行列に対して、dy/dt=Ay y(0)=(c0、c1、c2)^T【←転置】という連立微分方程式を解け。 ただしAは α 0 0 0 β 1 0 0 β という3×3の行列であるとする。 という問題なのですが、おそらくy=exp(tA)y(0)という形にして計算するのではないかと思うのですが、ここのexp(tA)を求める過程について質問です。 この問題を解く前に、 e^(αt) 0 0 0 e^(βt) te^(βt) 0 0 e^(βt) という3×3行列Xについて、 X^(-1)dX/dt=A という計算をさせられているので、おそらくこの式を利用して解くのだと思いますが、どのように利用したらいいのか見当がつきません。 exp(tA)=X になるのではないかという予想はあるのですが、どうしたらそうなるのか、過程等わかる方がいましたら、ご教授お願いします。

  • 数式処理システムMaximaで,行列の要素を数式として扱いたいのです.

    数式処理システムMaximaで,行列の要素を数式として扱いたいのです.たとえば,行列Aの要素は,A[1][1]とかで参照できますが,これを数式として,ある値を等値させた連立方程式A[1][1]=b1,A[1][2]=b2,,,を解くにはどうすればよいでしょうか.

  • 逆行列(Maxima)

    行列の逆行列を求めようとすると、エラーが出ます。 (%i1) A:matrix([1,2,3],[4,5,6],[7,8,9]); invert(A); (%o1) matrix([1,2,3],[4,5,6],[7,8,9]) Division by 0 -- an error. To debug this try debugmode(true); (%i2) A^^(-1); Singular -- an error. To debug this try debugmode(true); 行列の加減乗、べき乗、成分の加減乗、べき乗などはできるのに、invert函数、(-1)乗の計算ができません。 Maxima-5.17.1でwxMaxima0.8.0です。

  • 行列

    行列の計算で解けない問題があり質問させていただきました。 Fa     S2  S3      a     =          × Fb       S4   S1    b という行列があったとき S2  S3       = の式にしたいのですが S4  S1 a b の式をどのように右辺にもっていいのかわかりません。 両辺の右側に逆行列を掛ければよいのでしょうか? 2×2の逆行列ならわかるのですが2×1の逆行列はどのように計算すればよいのでしょうか? どなたか、わかる方がいらっしゃったら教えて下さい。 よろしくお願いします。

  • R言語の逆行列計算について

    R言語の初心者です ある本の通りにプログラムを進めていったところ逆行列を求める際以下のようなことが起こりました > A<-matrix(c(4,7,0,5),nrow=2) > A [,1] [,2] [1,] 4 0 [2,] 7 5 > Ainv<-solve(A) > Ainv [,1] [,2] [1,] 0.25 -1.110533e-17 [2,] -0.35 2.000000e-01 > Ainv %*% A [,1] [,2] [1,] 1.000000e+00 -5.552664e-17 [2,] -5.551115e-17 1.000000e+00 なぜか逆行列を求めるとき複素数が入ってしまいます 本ではちゃんとした値が出ています。すいませんがこれを直して複素数を除く逆行列を求められる 設定方法を教えてください

  • 数式処理ソフトMaximaでのカー解の導出

    相対性理論 カー解のクリストッフェル記号を 数式処理ソフトMaximaで計算したいのですが、正しい計算結果を 得ることが出来ません。 例えば、mcs2,3,3は-vx1/2*%e^(u-v)となる筈ですが、計算結果は vx1/2です。 以下入力のどこをどう訂正すれば正しい計算結果を得られるか教えて下さい。 load(ctensor); derivabbrev:true; dim:4; lg:matrix([-f,0,0,m],[0,%e^u,0,0],[0,0,%e^v,0],[m,0,0,l]); depends([f,u,v,l,m],[x1,x2]); ct_coords:[x0,x1,x2,x3]; cmetric(); christof(mcs);

  • 教えてください(行列)

    「行列Aは対称行列であって  A=「2 2 5 2 2 1 5 1 1」 で与えられる。このときf(λ)=det[A-λI]を計算してλ(ラムダ)の3次式f(λ)を導きなさい」 この問題を教えてください。 お願いいたします。

  • 対数の計算と連立のさせ方についての質問です。

    40=20log10(f*m1)-43 28=20log10(f*m2)-43 TL=20log10(f*(m1+m2))-43 この3つの式を連立させて解くとTLは43になります。 途中の計算過程をご教授いただきたいと思います。