質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

Q&A

解決済

1回答

1299閲覧

FORTRANでの計算方法について

puro

総合スコア4

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

FORTRAN

FORTRAN(フォートラン)は科学時術計算に向いた手続き型プログラミング言語です。 並列計算の最適化が行いやすい特性上、数値予報および気候モデルなどの大規模な計算を行う分野のスーパーコンピュータで使われています。

0グッド

0クリップ

投稿2020/10/07 04:31

編集2020/10/07 04:38

FORTRANで行列の計算を行いたいのですが、以下の式はどういう風に計算していけばいいでしょうか?

Z=[W{A(B+C)}]・X

ABCは300×300の正方行列、Wは1×300の列ベクトル、Xは300×1の行ベクトルで、・Xは内積です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

puro

2020/10/07 09:23

自己解決しました。ありがとうございます。
guest

回答1

0

ベストアンサー

式の通りに命令を並べれば大丈夫です。
z = dot_product(matmul(w, matmul(a, b + c)), x)

配列の形状は
integer, parameter :: n = 300
real :: a(n, n), b(n, n), c(n, n), w(n), x(n), z
となります。

行列積も 300x300 位なら Fortran の組み込み命令で十分です。何万回も繰り返すというのであれば BLAS 系のハードウェア最適化ルーチンを呼べばより一層効率的になりますが。

投稿2020/10/07 05:49

編集2020/10/07 05:50
curehoney

総合スコア249

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問