• 締切済み
  • すぐに回答を!

fortran

fortranでn次正方行列の対角要素の和を求める関数副プログラムを作ろうと思います。 fortran初心者で、何から始めていいのかさっぱりワカリマセン。 ヒント・アドバイスがあればよろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数410
  • ありがとう数1

みんなの回答

  • 回答No.1
  • Tacosan
  • ベストアンサー率23% (3656/15482)

・行列の表し方 ・(一般論として) 和の求め方 ・ループの書き方 くらいはおさえときたいねぇ. まあ, 「Fortran の初心者」というだけなら「別の言語で書いてみれば」と言って終わりなんだけど.

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • C言語プログラム

    N次の複素正方行列S,Tの積Uを計算するプログラムを作りたいのですが、実数で正方行列を計算するプログラムと 複素数の積、和のプログラム struct complex { double re; double im; }; を作ったのですが、この二つをまとめるとプログラムができるらしいのですがまとめ方が全然わかりません。どのようにしたらいいかヒントなど教えてください。

  • 行列

    A,B,C・・・をそれぞれ正方行列とします。 A,B,C・・・を対角に並べて、その他はすべて0の行列をX(正方行列)とします。 そのとき、Xの固有値を求めると、 A,B,C,・・・のそれぞれの固有値を求めたものをあわせたものに等しいことの証明を、 どなたかお願いします。

  • この行列問題を早くとく方法

    実3次正方行列A A=|(7/2) 0  -(9/2) |    | 1   1   1   |    |-(9/2) 0 (7/2)  | について B^3=A となる実3次正方行列Bを一つ求めよ という問題ですが、以下の方法より早く解く 方法がありましたら教えてください (*は行列同士の積の操作とします) 私はBは対角化可能の行列とし、 そこから B^3 =P *(P^(-1)*B*P)^(3)*P^(-1) =A これに左からP^(-1)、右からPをかけ (P^(-1)*B*P)^(3)= P^(-1)*A*P そしてAの固有値を求め、固有ベクトルから PとP^(-1)を求め、Aを対角化する (対角要素は固有値) 対角化されたAの要素の三乗根を求め 左からP、右からP^(-1)をかけBを求めました しかし、これよりもっと早く解ける方法が あると思うのです。 ポイントはBを一つ挙げよ、というとこだと思うのですが・・ どうかおねがいします

  • 行列の固有値とトレースについて

    問 正方行列のトレース(対角成分の和)は、その固有値の総和になる。 この問題は行列が対角化可能ならば成り立ちますが、対角化不可能の場合でも成り立つのでしょうか? ご指導よろしくお願いします。

  • 逆二乗根行列を求めるプログラムを探しています

    (複素)正方行列の逆2乗根行列(inverse square root)を求めるための FORTRANプログラムを探しています。LAPACKのBLASルーチン等を 組み合わせてできますでしょうか? 良い方法がありましたらご教授下さい。よろしくお願いします。

  • ある行列とその転置行列の積の逆行列は?

    今エクセルで行列を使って問題を解いています。 問題は 行列X、A、Yがあり、Xは1行4列、Aは1行2列、Yは1行4列です。 X・A=Y という式があり、Aの行列は未知数a,bの要素からなっています。 X,Yはそれぞれ数値として要素が決まっています。 ここからはヒントとして表示されていました。 そこでXの逆行列を両辺の左からかけるとAは求まるはずですが、 Xは正方行列ではないので、Xの転置行列を左からかけます。 X(T)・Xは正方行列になるのでこれを行列Pとおくと Pの逆行列を求められ、右辺にP^-1をかけるとAが求まる。 というものです。 エクセルで書かれている通りにやってみて、エラーになるので調べてみると、XとXの転置行列の積の行列式は要素にかかわらず0になるようです。 実際に数値ではなく、abcdでやってみたところ0のようです。 この場合、逆行列は存在しないのではないかと思いますが、このヒントが間違っているとはあまり思えず、困っています。 補足ですが、この問題は最小二乗法をエクセルで行列を用いて行うという趣旨です。 もとのデータとして(x、y)の座標が4点与えられており、行列Xはxの要素を縦にならべたもの、Aは最小二乗法で求める一次関数式のパラメーターa,bで、YはXと同様座標のy要素です。 私の理解が間違っていて、何行何列という部分に誤りがあるなどの指摘があれば、ぜひお願いいたします。 そもそもある行列とその転置行列の積の逆行列は存在するのかどうかもお願いします。 締め切りが近く、ちょっとあせっています。 よろしくお願いします!!

  • C++についての質問です

    プログラミング初心者です n次正方行列同士の積のプログラムを作成したいのですがどうもうまくいかないです 次元及び成分を入力させて計算させたいです よろしくお願いいたします。

  • FortranにあってCにない関数?について

    10年間Fortran90でプログラミングをしてきましたが、 C言語を使う必要があって、プログラムを書き直し中の者です。 入門書を数冊読んでいて疑問に思ったのですが、Fortranには、 A=SUM(B) と書けば、配列Bの全ての総和をAに返す、という関数があるのですが、C言語に同じような関数はないのでしょうか?(標準ライブラリに無いという事はないのでしょうか?) Fortranと比べてCは組み込み関数が少ないという印象を持ったのですが実際そうなのでしょうか? また、Fortanでは配列の和をとる時、 do i=0,n a(i)=b(i)+c(i) end do を一行で、 a(0:n)=b(0:n)+c(0:n) と書いても良いですし、もし定義されている全部の配列の要素が対象なら a=b+c と一行で書いても良いのですが、c言語では似たような書き方はできないのでしょうか? つまり、多次元配列を扱う時、Fortranでは単に「a=b+c」と書けば済むところを、Cでは for (i=0,i<=n,i++){ for (j=0,j<=n,j++){ for (k=0,k<=n,k++){ a[i][j][k]=b[i][j][k]+c[i][j][k]; }}} と書かなくてはいけないのか?と悩んでおります。 私がCの機能を知らないだけなのか、Cとはそうゆうことが出来ないのか、浅学なため判断できません。 ご教授ください、どうぞよろしくお願いいたします。

  • スペクトル分解とは何なのか?

    大学初級の線形代数を学んでいます。 スペクトル分解とは何なのでしょうか? 色々とググって見つけたのですが、 ・スペクトル分解とは”正方行列”に対応する線形変換ですか?つまり正方行列専門の線形変換? ・行列の固有値を係数とする射影の和ですか?正方行列であるなし関係がない? 教えてください、よろしくお願いします!!

  • 線形・行列の証明がさっぱり。。。

    対角成分以外がゼロである正方行列を対角行列という。対角行列の固有値は、対角成分に等しいことを示せ。また、対角成分より左下(右上)の成分がゼロである正方行列を上三角行列(下三角行列)という。上三角行列、下三角行列の固有値が対角成分に等しいことを証明せよ。 この証明がさっぱりわかりません。ご指導お願い致します。