• ベストアンサー

フォートラン77での微分と行列

フォートラン77で、数学的な 微分 と 行列 をどのように表現したらいいのか教えてください。 プログラミング初心者なのでこの質問の仕方が正しいのかもわかりませんがお願いします。

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

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8003/17107)
回答No.2

関数が FUNCTION F(X) ... END のように定義されていると,その導関数は FUNCTION DFDX(X) ... DFDX=(F(X+H)-F(X))/H END のように数値微分で表現します。 行列はたとえば DIMENSION A(100,100) のように宣言して,個々の要素には X=A(2,3) のようにアクセスすることになります。

その他の回答 (1)

  • FEX2053
  • ベストアンサー率37% (7987/21354)
回答No.1

Fortranに限らず、全てのプログラム言語で、微分式などの 「式」を自動的に解くことは出来ません。あくまで「式」の解 を自分で解き、解いた式に値を与える部分だけを計算させる コトしかできないのです。 ですので、例えばこちらの8-1.見たいなことをしないと、微分 式は解けないんですね。 http://www.eq.db.shibaura-it.ac.jp/fortran/ex.html 当然行列も、Fortran側で出来ることは、配列を準備すること だけです。その行列を「解く」方法は、自分でプログラミング してやらないと出来ないんです。 Fortranが科学技術向きというのは、その「解いた式」の表現 方法が、プログラム上判りやすく表現できるってだけの話で、 自動的に何でもやってくれる、という訳ではありません。

関連するQ&A

  • 行列を行列で微分することはできるのか?

    行列を1変数で微分することや1変数を行列で微分することは可能ですが行列を行列で微分することは可能なのでしょうか? たとえばA微分可能な行列として d(A^-1)/dA = -(A^1)^2 というような計算はありえるでしょうか? 以上よろしくお願いします.

  • JAVAでフォートランのプログラムを動かす方法

    プログラミング初心者なので教えていただきたいのですがJAVAをつかってフォートランのプログラムを動かすにはどうすればよいのでしょうか教えてください。宜しくお願いします。

    • ベストアンサー
    • Java
  • 行列の微分 証明

    行列の微分 証明 スカラーをベクトルで微分したり ベクトルをベクトルで スカラーを行列で 行列を行列でなど色々な微分の公式があるサイトを見つけたんですが 自分の持っている微分積分 線形代数の本では触れておらず この公式の証明をしてくれているサイトも見つけれずで これらのことは解析か線形代数のどちらに書かれてあるものなんですか? その本の名前を教えていただきたいです また証明が書かれてあるサイトがあればそちらも教えていただけると助かります

  • 逆行列の行列による微分

    今、あるシステムを構成したく行列方程式を解こうとしているのですが、行き詰ってしまったので質問させていただきます。 YとAを5×1行列、Bを5×3行列、Xをスカラ、Wを5×5行列、Hを3×1行列,B'はBの共役転置行列として、 Y = (A+BH)X・・・(1) H = -inv(B'WB)B'WA・・・(2) とします。 ((2)を(1)に代入した状態で)Y'Y=Jとおいて、∂J/∂W=0となるようなWを求めようとしているのですが、逆行列の行列による微分などが出てきてしまい、まったくわからなくなってしまいました。 これは解けるのでしょうか? 行列をvec関数を使ってベクトルになおしてみたりしたのですがinv()の部分がわからなくて・・・。 逆行列の行列による微分さえわかれば何とかなるような気もするのですが・・・。 解けるとすればどのようになるのでしょうか? 解法のヒントや参考になるページなどありましたら紹介していただきたいです。

  • 行列を積分、微分するというのは?!

    計算上確かにそうなるのですが、納得しきない所がありました。 行列の計算途中で、「行列Pを変数をみなし、2回積分してその後2回微分する」という手法がありました。 自分の問題で実際に計算してみると、私の求めたい答えの形になりました(2回積分→2回微分すれば元に戻るので大丈夫?!)。しかし行列は積の交換法則が不成立だったり、行列を行列で割れないですし、何より行列を積分微分する概念が未熟な私にないというか、厳密に成立するものなのかとふと思ってしまいました。この行列を微分積分すること(行列を変数とみなすこと)について教えて頂ければうれしいです。 雑ではありますが、私が計算してみたのは、 2E+6P+12P^2+……+r(r-1)P^(r-2)+… で、これを2回積分→2回微分すると、 2(E-P)^(-3) となりました(Pはn次の正方行列、Eは単位行列)。 しかしかなり強引で、途中式など曖昧で自信がありません。

  • 微分方程式の一階化について質問です。

    微分方程式の一階化について質問です。 x''+ax'+a^2x=0という微分方程式('は時間微分)を一階化して行列表現せよ。 という問題に出会いました。 あくまでこれは問題の出だし部分でその後、固有値を求めたりなど色々続くのですが 正直、初めて見る問題で第一問目が一番分かりません。 数学に詳しい方、どうかよろしくお願い致します!!

  • フォートランで層別化のプログラム

    フォートランで層別化を求める(?)プログラムって組めるものなんですか? いきなりの質問ごめんなさい。 フォートラン初心者なもので、まったくわからなくて・・・なにをどうしたらいいのか…かなり混乱しています。

  • 全微分や勾配ベクトルの幾何学的な意味

    数学があんまり得意じゃないのに、今ライブラリを使って3Dのプログラミングで遊んでるんですけど 数学として、行列とか三角関数とか普通の微分とかは、座標系の回転だとか微分でキャラクタの進行方向の決定とか、直接使うのですんなりイメージできるんですけど 具体的な例で言うと全微分や勾配ベクトルってどういう場面でつかうんですか?教えてください、イメージできなくて困ってます。偏微分はあるパラメタにおけるニ変数関数の断面という理解は出来るんですが・・・

  • 逆行列の微分

    Aが正則な行列のとき、 dA^{-1}/dt=-A^{-1}・(dA/dt)・A^{-1} A^{-1}はAの逆行列 であると聞きましたが、この式がどうしても導出できません。 まわりの人たちに聞いたら、 「A^{-1}を微分したらマイナスAのマイナス2乗になるでしょ?」 と言われましたが、A^{-1}の-1は指数ではなくインバースの記号なので、 その返答がうさんくさいように思えてなりません。 逆行列の成分ごとに計算しようとしましたが、 余因子展開やら何やら行なっても式が複雑になるだけで、解決しませんでした。 夕方からつっかかって、気になって仕方がありません。助けてください。

  • 微分方程式と行列の問題

    この微分方程式は行列を用いて解くそうなのですがやり方がわかりません。 わかる方お教え下さい。よろしくお願いします。

専門家に質問してみよう