• 締切済み

MATLAB マトラボ 質問

MATLAB/マトラボ 質問です。 全くわからないので、詳しく教えてください。 ∞ expA=Σ1/n! An n=0 を計算する関数exponential()を作り、 A=1J,J:=( 0,1 -1,0) expAがどうなるか。

みんなの回答

  • alice_44
  • ベストアンサー率44% (2109/4759)
回答No.1

MATLAB の使い方は知りませんが、 質問の計算は手計算で容易です。 まず、J の固有値が ±√(-1) であることを 確認しましょう。各々の固有ベクトルを求め、 それを列ベクトルとして並べた行列を P と置くと、 (Pの逆行列)AP が対角行列になります。 いわゆる、「行列の対角化」です。型どおりの。 この対角行列を B と置くと、A=PB(Pの逆行列) です。 Aのn乗=P(Bのn乗)(Pの逆行列) となることから、 exponential(A) に A=PB(Pの逆行列) を代入すると、 Σ から左側の P と右側の (Pの逆行列) が括り出せて exponential(A)=P(exponential(B))(Pの逆行列) となります。 exponential(B) は、成分計算してみると解るように、 各対角成分ごとの Σ に帰着されますから、 eの(B の k 行 k 列成分)乗 を k 行 k 列成分に持つ 対角行列になります。 以上を計算、整理すれば完了。 ノート 1~2 ページで済み、バソコンは要りません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • MATLABの計算過程での質問です。

    はじめまして。 MATLABのコードでどうしてもわからないことがあり質問させていただきます。 問題はerrorの計算で起こります。 error=Σ[((F_n+1)-(F_n))/(F_n+1)] ループ内の計算がiter=1以降に進まなくなりました。 いろいろ編集してみましたが、どうしてもerrorのところがうまく働きません。 良かったらアドバイスよろしくお願いします。 tol=tolerance N=number of maximum iterationです ---------------------------------------------------------------- tol=0.01; N=100; A=zeros(26,26); f0=zeros(26,26); A(11:26,1)=100; A(26,1:16)=100; f=A; iter=1;f0=0 n=1; for n=1:N for i=2:26-1 for j=2:26-1 f(i,j)=(1/4)*(A(i+1,j)+A(i-1,j)+A(i,j+1)+A(i,j-1)) error(i,j)= sum(abs((f(i,j)-f0(i,j))./f(i,j))); end end if error <=tol break; else A=f; f0=f; iter=iter+1 end end

  • MATLABの使い方

    純粋な数学の質問じゃなくて申し訳ないのですが、数学に関することなのでここで質問させていただきました。MATLABを使って以下のことを計算させたいのですが、その入力の仕方を教えてください。 1.以下の近似値を求めよ。 (1)e=lim[n→∞](1+1/n)^n (2)e=Σ[n=0→∞]1/(n!) (3)π=4(1-1/3+1/5-1/7+…) (4)π=4{4(1/5-1/(3・5^3)+1/(5・5^5)-…)-(1/239-1/(3・239^3)+1/(5・239^5)-…)}  (5)100^(1/9) (6)5^(-x)=x 2.以下の関数のグラフを表示させる  (1)e^(-x)・Arctanx (-5≦x≦5)  (2)x=(t^2-t-3)e^(t)・cost,y=(t^2-5t+1)e^(t)・sint (-1≦t≦10) MATLABに関してはまったくの初心者なので、できれば入力方法を具体的に示していただければ幸いです。よろしくお願いします。

  • Matlabでのinverse(逆関数)のあらわし方

    こんにちわ。 研究で急にMatlabを使わなければいけなくなりました、Matlab初心者です。 ちょっとお聞きしたいことがあり、質問させていただきます。 MatlabでのInverse(逆関数)の計算の仕方がわからず、途方にくれ ています。どなたか教えていただけないでしょうか? 三角関数の逆関数の計算を表したいんですが、たとえば、 f(n) = cos(π*n) 0<=n<=1 = 0 otherwise みたいな関数があったときに、この関数とこの関数の逆関数を計算し、グラフ化したいのですが。 よろしくお願いいたします。

  • Matlabのspdiags関数

    Matlabのspdiags関数に関してわからないところがあります。以下はMatlabのヘルプWebページから持ってきた例です。http://dl.cybernet.co.jp/matlab/support/manual/r2006/toolbox/matlab/math/?/matlab/support/manual/r2006/toolbox/matlab/math/sparse4.shtml B = [ 41 11 0 52 22 0 63 33 13 74 44 24 ]; d = [-3 0 2];、m=7, n=4のとき A = spdiags(B,d,7,4) A = (1,1) 11 (4,1) 41 (2,2) 22 (5,2) 52 (1,3) 13 (3,3) 33 (6,3) 63 (2,4) 24 (4,4) 44 (7,4) 74 これに対応するフル行列Aは、つぎのようになります。 full(A) ans = 11 0 13 0 0 22 0 24 0 0 33 0 41 0 0 44 0 52 0 0 0 0 63 0 0 0 0 74 mやnというのはfull(A)がm行n列の行列であるというイメージの対応がわかるのですが、d = [-3 0 2]とfull(A)の行列の関係がわかりません。-3,0,2というのはfull(A)のどこを見れば良いのでしょうか。

  • MATLABではどうすればいいのでしょうか?

    MATLABで、 M = 10 C = 1 K = 10 T =0.01 A = [0 1;-K/M -C/M] B = [0;1/M] I = [1 0;0 1] という条件で、 E1 = I + Σ(1/N!)*(A*T)^(N-1)  (ΣはN=2から) F1 = I+(A*T)*E1 G1 = E1*T*B の計算を、 例えば、5項目までと6項目までの計算をして、 その差をとり、差が条件以下(例えば10^-5以下)なら終了、 それ以上なら、続けて、次に6項目と7項目までを計算して、 その差をとるといったような、プログラムを作るにはどうすればよろしいのでしょうか?

  • MATLAB の配列の添え字について

    MATLABでは、A(-n:n)のような配列を作れないでしょうか? FORTRANを使っていたMATLABの初心者で、このような対称の配列を作れば便利だと思って、なんかいいアイデアないでしょうか。 力を貸してください。宜しくお願いします。

  • 問題の途中計算で…

    問題の途中計算で… ちなみにa1=2です。 n-1 an=a1+Σbk k=1 より n-1 n-1 an=2+Σk^2+Σk k=1 k=1 =2+1/6(n-1)n(2n-1)+1/2(n-1)n というところまではわかります。 ここからどのように計算したら an=1/3(n^3-n+6) という答えが出るのでしょうか⁇ ちなみに指数関数はまだ習っていないので、指数法則を使った解説をお願いします…。

  • matlab初心者の質問

    matlabに関する質問です。(私は初心者です。) 例えば A=[1 2 3 … n] のような行列があった場合、 B=[1 1+2 1+2+3 … sum(A(1:n))] のような行列を表示するにはどのようなコードを書けばいいのでしょうか。

  • Matlabについて質問です

    Matlabについて質問です。 長さがdataの数のデータがあり次のように分類したいのですが、データの中の-0.0074などが1になってくれません。 どこに原因があると思われますか?よろしくお願いします! recd=zeros(length(data),1); for n=1:length(data) if data(n)<-0.01; recd(n) = 0; elseif(-0.01<=data(n)<0); recd(n) = 1; elseif(0<=data(n)<0.01); recd(n) = 2; else recd(n) = 3; end end よろしくお願いします!!

  • 数値計算ソフト「MATLAB」について

    私は今大学生で、つい先日数値計算ソフト「MATLAB(マトラボ)」をのライセンスを購入し、さまざまなプログラムを実行しています。 しかし、当然ですが大規模なプログラムになればなるほど計算の実行時間が長くなってしまいます。 プログラムのループ文の見直しなどを行って計算の高速化を図ってみたりしましたが差は微々たるものでした。 なので、PCのスペックのほうを上げていきたいと思いました。 そこでみなさんにお聞きしたいのですが、 (1)MATLABの計算はサーバーPCとクライアントPC、どちらのスペックに依存しているのでしょうか。 (2)計算速度を速めるとしたら、どの部分の性能を一番高めるべきでしょうか。(例:CPU、メモリなど) どなたかお分かりになる方がいましたら、(1)(2)どちらか片方だけでも良いですので回答宜しくお願い致します。