このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
FORTRAN使いが優しくコメントを返しますが、
お礼はFORTRANの布教と初心者の救済と次期Fortran2008規格でのCOMEFROM文採用をお願いします。
●注意事項
・質問する前にGoogle等の検索サイトで検索しましょう。
・回答者にわかりやすい様に、質問内容はできる限り詳しく書きましょう。
・エラーの場合は起きた状況、環境(OS・コンパイラ・バージョン)、エラーメッセージも詳しく書きましょう。
●前スレ
くだすれFORTRAN(超初心者用)その5
http://toro.2ch.net/test/read.cgi/tech/1269704830/
●過去スレ
くだすれFORTRAN(超初心者用)その4
http://pc12.2ch.net/test/read.cgi/tech/1232789521/
くだすれFORTRAN(超初心者用)その3
http://pc11.2ch.net/test/read.cgi/tech/1196384126/
くだすれFORTRAN(超初心者用)その2
http://pc11.2ch.net/test/read.cgi/tech/1164121236/
くだすれFORTRAN(超初心者用)
http://pc8.2ch.net/test/read.cgi/tech/1138063703/
探検
くだすれFORTRAN(超初心者用)その6
レス数が900を超えています。1000を超えると表示できなくなるよ。
2012/08/16(木) 20:58:00.31
822デフォルトの名無しさん
2015/07/12(日) 01:54:09.24ID:z4R5SLxl >>819
subroutineの内部で宣言するなら書き方が違うはず
引数で宣言するより別の行で宣言した方が見やすくない?
とりあえず自分はこんな感じで書く
https://ideone.com/HCzWB6
subroutineの内部で宣言するなら書き方が違うはず
引数で宣言するより別の行で宣言した方が見やすくない?
とりあえず自分はこんな感じで書く
https://ideone.com/HCzWB6
823デフォルトの名無しさん
2015/07/15(水) 01:28:37.71ID:yskKzL3L >>822
リンク先のように書いたらうまくいきました。
自分のプログラムの他の部分も確認したところ、配列の書き方が全て間違っていました(配列A(1:N)をA(N)などと書いていました)。
ありがとうございました。
リンク先のように書いたらうまくいきました。
自分のプログラムの他の部分も確認したところ、配列の書き方が全て間違っていました(配列A(1:N)をA(N)などと書いていました)。
ありがとうございました。
824デフォルトの名無しさん
2015/07/28(火) 11:53:11.24ID:J4RVztBC 教えてください。
サブルーチンに渡された配列引数2つが同一かどうか
(値が同じかどうかではなくて、値を格納するアドレスが同じかどうか)
を確認するすべはありますでしょうか…?
ポインタとか使えるのでしょうかね?よく分かっていません。
サブルーチンに渡された配列引数2つが同一かどうか
(値が同じかどうかではなくて、値を格納するアドレスが同じかどうか)
を確認するすべはありますでしょうか…?
ポインタとか使えるのでしょうかね?よく分かっていません。
825デフォルトの名無しさん
2015/07/28(火) 12:08:17.55ID:J4RVztBC 自己解決してしまいました…
program test
implicit none
real(8)::a,b
a=1
b=2
call sub(a,b)
call sub(a,a)
end program
subroutine sub(a,b)
real(8),target::a,b
real(8),pointer::p1,p2
write(*,*) '=====',a,b
p1=>a
p2=>b
if(p1.eq.p2)then
write(*,*) 'identical'
else
write(*,*) 'independent'
end if
end subroutine
program test
implicit none
real(8)::a,b
a=1
b=2
call sub(a,b)
call sub(a,a)
end program
subroutine sub(a,b)
real(8),target::a,b
real(8),pointer::p1,p2
write(*,*) '=====',a,b
p1=>a
p2=>b
if(p1.eq.p2)then
write(*,*) 'identical'
else
write(*,*) 'independent'
end if
end subroutine
826デフォルトの名無しさん
2015/07/28(火) 12:26:18.89ID:J4RVztBC いや、すみません間違ってました。値を比較してるだけみたいです。
どうしたらいいんだ。
(日記みたいになってしまってですまんです)
どうしたらいいんだ。
(日記みたいになってしまってですまんです)
827デフォルトの名無しさん
2015/07/29(水) 09:56:48.14ID:2BaiQKnz 最近出た『FORTRANハンドブック』
買ったほうがいいかな?
買ったほうがいいかな?
828デフォルトの名無しさん
2015/07/29(水) 15:03:19.81ID:PIi6Yh3/ >>826
コンパイラは何?
コンパイラは何?
829デフォルトの名無しさん
2015/07/29(水) 23:16:07.78ID:USyoWCFT ifortです。associated(pointer,target) で行けそうなんですが、
targetの変数にopitional属性がついていて… ><という状況です
targetの変数にopitional属性がついていて… ><という状況です
830デフォルトの名無しさん
2015/07/30(木) 00:48:36.88ID:5OMMXfec gfortranならlocでアドレス取得できるの確認した
なんか独自拡張みたいだが、ifortにもあるよね
なんか独自拡張みたいだが、ifortにもあるよね
831デフォルトの名無しさん
2015/08/02(日) 15:34:23.65ID:Gc5k9GMO module内のcontainsのところに書いているfunctionをincというフォルダのsample.f90にまるごと持って行き、
include 'incl/sample.f90'
としたのですが、moduleに書いていた時はは参照できていた変数が
定義されていない参照 となりコンパイルできません。
functionまるごともっていくとかやったらいけないものなのでしょうか?
include 'incl/sample.f90'
としたのですが、moduleに書いていた時はは参照できていた変数が
定義されていない参照 となりコンパイルできません。
functionまるごともっていくとかやったらいけないものなのでしょうか?
832デフォルトの名無しさん
2015/08/02(日) 17:13:03.49ID:5pC+KESf >>831
内部関数を別ファイルにするなら注意が必要
includeを書く位置によるけどエラーになるなら外部関数扱いになっている
内部関数はメインプログラムの変数も参照できる
外部関数の扱いになるとメインの変数、他の内部関数、サブルーチンが参照できなくなる
だから、使っている変数や関数、サブルーチンを確かめないとエラーになる
解決方法はいろいろあるけど変数だけなら引数で渡せば使える
containsの後にinclude文を書けば内部関数扱いになるからそのまま使える
ちなみに、includeは廃止予定とかじゃないけど非推奨らしい
http://www.nag-j.co.jp/fortran/tips/tips_AboutInclude.html
http://www.mri-jma.go.jp/Project/mrinpd/coderule.html
内部関数を別ファイルにするなら注意が必要
includeを書く位置によるけどエラーになるなら外部関数扱いになっている
内部関数はメインプログラムの変数も参照できる
外部関数の扱いになるとメインの変数、他の内部関数、サブルーチンが参照できなくなる
だから、使っている変数や関数、サブルーチンを確かめないとエラーになる
解決方法はいろいろあるけど変数だけなら引数で渡せば使える
containsの後にinclude文を書けば内部関数扱いになるからそのまま使える
ちなみに、includeは廃止予定とかじゃないけど非推奨らしい
http://www.nag-j.co.jp/fortran/tips/tips_AboutInclude.html
http://www.mri-jma.go.jp/Project/mrinpd/coderule.html
833デフォルトの名無しさん
2015/08/02(日) 20:38:11.00ID:Gc5k9GMO >>832
詳しく教えて頂いてありがとうございます。試してみようと思います。
includeってもう非推奨なんですね。代替はmoduleで分割とかできるのかな
include以外のやり方も考えてみます
詳しく教えて頂いてありがとうございます。試してみようと思います。
includeってもう非推奨なんですね。代替はmoduleで分割とかできるのかな
include以外のやり方も考えてみます
834デフォルトの名無しさん
2015/08/05(水) 16:55:43.17ID:OhKwnQSp835デフォルトの名無しさん
2015/08/16(日) 01:33:05.77ID:ZKNwH6b8 Fotranで作成された古いプログラムをVBAに移しているのですが
符号がついていないためIF文の解釈がよくわかりません。
どなたか教えて頂けないでしょうか。
IF(J-K) 2,3,2
3 B(J)=1./Y
C(J)=1.
GOTO 4
2 B(J)=-A(K,J)/Y
C(J)=A(J,K)
4 A(K,J)=0.
符号がついていないためIF文の解釈がよくわかりません。
どなたか教えて頂けないでしょうか。
IF(J-K) 2,3,2
3 B(J)=1./Y
C(J)=1.
GOTO 4
2 B(J)=-A(K,J)/Y
C(J)=A(J,K)
4 A(K,J)=0.
836デフォルトの名無しさん
2015/08/16(日) 01:53:24.79ID:mdNdQhdt837デフォルトの名無しさん
2015/08/16(日) 03:10:40.47ID:ZKNwH6b8838デフォルトの名無しさん
2015/08/16(日) 08:57:02.36ID:nCIMfI1D839デフォルトの名無しさん
2015/08/16(日) 09:08:04.74ID:ZKNwH6b8840デフォルトの名無しさん
2015/08/16(日) 12:29:13.36ID:nCIMfI1D >>869
ただしくは、算術IF文というものです。あるサイトの解説です
古い書き方に算術IFというものがあります。 この書き方はFortranでは廃止予定機能ですが古いプログラムには見かけられる書き方です。
算術IF文は、与えた式が0より小さい場合に最初の文番号へ、 0の場合は2番目の文番号へ、 0よりも大きい場合には3番目の文番号にジャンプします。
if ( 式 ) 文番号1, 文番号2, 文番号3
例)
i = -1
if (i) 100, 200, 300 ! 100へジャンプします
ただしくは、算術IF文というものです。あるサイトの解説です
古い書き方に算術IFというものがあります。 この書き方はFortranでは廃止予定機能ですが古いプログラムには見かけられる書き方です。
算術IF文は、与えた式が0より小さい場合に最初の文番号へ、 0の場合は2番目の文番号へ、 0よりも大きい場合には3番目の文番号にジャンプします。
if ( 式 ) 文番号1, 文番号2, 文番号3
例)
i = -1
if (i) 100, 200, 300 ! 100へジャンプします
841デフォルトの名無しさん
2015/08/16(日) 21:04:42.30ID:mdNdQhdt 古文読解みたいなもんよ。
新たに使うことは無いが、昔のプログラム読む為の教養みたいなもん?
アセンブラから進化したと思えば、まぁこんな命令ありがち感はある。
新たに使うことは無いが、昔のプログラム読む為の教養みたいなもん?
アセンブラから進化したと思えば、まぁこんな命令ありがち感はある。
842デフォルトの名無しさん
2015/08/24(月) 05:54:40.65ID:lgtNqCAf ある参考書にあるプログラム例を映したのですが、実行するとエラーが出ます。内容が外部ファイルへの出力関係なので早急に解決したいのでよろしくお願いします。
プログラム
integer :: n, i, j, fi = 10, fo = 11
open(fi, file = 'input.d')
open(fo, file = 'output.d')
read(fi, *) n
close(fi)
if(n < 3) stop 'stop, n < 3'
d = 10.0d0 / dble(n - 1)
do j = 1, n
y = -5.0d0 + dble(j - 1) *d
do i = 1, n
x = -5.0d0 + dble(i - 1) *d
z = sin(x) * cos(y)
write(fo, '(3e12.4)') x, y, z
enddo
write(fo, *) ' '
enddo
close(fo)
エラーメッセージ
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 ffffffffffffffff
#1 ffffffffffffffff
#18まで同文
OS:Windows7(64bit)
コンパイラ:gfortran
よろしくお願いします
プログラム
integer :: n, i, j, fi = 10, fo = 11
open(fi, file = 'input.d')
open(fo, file = 'output.d')
read(fi, *) n
close(fi)
if(n < 3) stop 'stop, n < 3'
d = 10.0d0 / dble(n - 1)
do j = 1, n
y = -5.0d0 + dble(j - 1) *d
do i = 1, n
x = -5.0d0 + dble(i - 1) *d
z = sin(x) * cos(y)
write(fo, '(3e12.4)') x, y, z
enddo
write(fo, *) ' '
enddo
close(fo)
エラーメッセージ
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 ffffffffffffffff
#1 ffffffffffffffff
#18まで同文
OS:Windows7(64bit)
コンパイラ:gfortran
よろしくお願いします
843デフォルトの名無しさん
2015/08/24(月) 06:07:47.38ID:lgtNqCAf 申し訳ありません。確認したところ
コンパイラはtdm64-gcc-4.6.1です。
コンパイラはtdm64-gcc-4.6.1です。
844デフォルトの名無しさん
2015/08/24(月) 07:17:38.92ID:lgtNqCAf 再び申し訳ありません。
gfortranのverを落としたら普通にできました。何度もすみませんでした。
gfortranのverを落としたら普通にできました。何度もすみませんでした。
845デフォルトの名無しさん
2015/10/14(水) 21:51:47.29ID:S/4UaJI2 intelコンパイラのDAALをFortranから
なにかしらの形で呼び出してうまくいった方いませんか?
なにかしらの形で呼び出してうまくいった方いませんか?
846デフォルトの名無しさん
2015/11/08(日) 17:44:21.58ID:jBmnCoB4 fortranで簡単なguiウィンドウ作れたりしますか?
ウィンドウがあってこのボタンを押すと〜〜のサブルーチン実行のような・・・
ウィンドウがあってこのボタンを押すと〜〜のサブルーチン実行のような・・・
847デフォルトの名無しさん
2015/11/08(日) 18:57:35.01ID:8suWMXlm848デフォルトの名無しさん
2015/11/09(月) 22:25:56.92ID:oiX/fj8U849デフォルトの名無しさん
2015/12/15(火) 21:50:10.22ID:CN0jNpr8 基本的な質問かもしれませんがfunctionとsubroutineで作るのってどう切り分けたらよいのですか?
850デフォルトの名無しさん
2015/12/15(火) 23:58:59.22ID:8+9MOK5i >>849
functionを使うのは、返値が一つと自明な(かつ明示したい)ときだけかな。
functionを使うのは、返値が一つと自明な(かつ明示したい)ときだけかな。
851デフォルトの名無しさん
2015/12/16(水) 00:26:30.43ID:dxIuSVrg852デフォルトの名無しさん
2015/12/16(水) 00:28:34.56ID:dxIuSVrg 例えばファンクションのほうがその度に呼び出すために計算速度は遅くなるとかありませんかね・・?
853デフォルトの名無しさん
2015/12/16(水) 02:24:06.06ID:cuafR5Si 差は感じたことないな
気になるなら簡単なテストプログラム作ってみたら?
気になるなら簡単なテストプログラム作ってみたら?
854デフォルトの名無しさん
2015/12/16(水) 06:34:20.84ID:qB4UYIzV 中身が分からないunformattedで出力されたファイルを読むにはどうすればいいですか?
855デフォルトの名無しさん
2015/12/16(水) 22:57:19.85ID:a/dQTwEW ACCESS='STREAM' でオープンして嫁 詳しくはマニュアル検索検索
856デフォルトの名無しさん
2015/12/16(水) 23:02:21.81ID:a/dQTwEW >>849
function は副作用(PURE の時)がないとき、それ以外なら SUBROUTINE が基本かな。
コンパイラの最適化の観点から、数学的な意味での関数になっているときに使うのがいい。
function は副作用(PURE の時)がないとき、それ以外なら SUBROUTINE が基本かな。
コンパイラの最適化の観点から、数学的な意味での関数になっているときに使うのがいい。
857デフォルトの名無しさん
2015/12/25(金) 14:17:27.29ID:H3s+gts8 今二分法のプログラム書いているんだけど、うまく収束しなくて困ってるのでここで質問させてください
ある区間[a, b] の間に解があるとして、f(xsol) =0となる点を見つけようとしてます。
関数f(x) は数値計算によってしか求められない(xの多項式では記述できない)とします。
x -> xsol に近づいていると思うのですがどうしても0 に漸近しません。 収束条件は 10^{-1}程度の荒いものでも収束しません。
考えられる原因の1つとして情報桁落ちかな?と思いましたが回避する方法はあるでしょうか?
ある程度計算を進めると、区間[x1, x2]において、その中点 (x1+x2)/2の値が一定となってしまいます。
ある区間[a, b] の間に解があるとして、f(xsol) =0となる点を見つけようとしてます。
関数f(x) は数値計算によってしか求められない(xの多項式では記述できない)とします。
x -> xsol に近づいていると思うのですがどうしても0 に漸近しません。 収束条件は 10^{-1}程度の荒いものでも収束しません。
考えられる原因の1つとして情報桁落ちかな?と思いましたが回避する方法はあるでしょうか?
ある程度計算を進めると、区間[x1, x2]において、その中点 (x1+x2)/2の値が一定となってしまいます。
858デフォルトの名無しさん
2015/12/25(金) 14:24:09.90ID:H3s+gts8859デフォルトの名無しさん
2015/12/25(金) 16:39:31.63ID:em+Cn0F1860デフォルトの名無しさん
2015/12/25(金) 16:47:13.93ID:VJyAJ/uW861デフォルトの名無しさん
2015/12/25(金) 19:21:54.92ID:H3s+gts8862デフォルトの名無しさん
2015/12/25(金) 19:22:26.63ID:H3s+gts8 >>861
すみません、16倍精度の間違えです
すみません、16倍精度の間違えです
863デフォルトの名無しさん
2015/12/26(土) 01:22:24.79ID:ybGnykyB >>859,861
ちょーーー!!
8倍精度とか16倍精度と違うから!
普通はバイト数だから8で倍精度、16で4倍精度。
まぁ数値はベンダー依存で規定されていないから、あんたらのコンパイラが
8倍精度や16倍精度なのかもしれないがさw
そもそも二分法の場合必ず半分になるんだから、まともなら x1=x2 にならないはずがない.
ならないとすればプログラムが間違っているか、関数値の正負が x1 と x2 の間で
複数回反転しているかのどっちかだろ。つまり与えた区間の初期値が間違っている。
まずグラフを書かせろよ。
適当に数値いれて手で方眼紙にプロットしろ。話はそれからだ。
ちょーーー!!
8倍精度とか16倍精度と違うから!
普通はバイト数だから8で倍精度、16で4倍精度。
まぁ数値はベンダー依存で規定されていないから、あんたらのコンパイラが
8倍精度や16倍精度なのかもしれないがさw
そもそも二分法の場合必ず半分になるんだから、まともなら x1=x2 にならないはずがない.
ならないとすればプログラムが間違っているか、関数値の正負が x1 と x2 の間で
複数回反転しているかのどっちかだろ。つまり与えた区間の初期値が間違っている。
まずグラフを書かせろよ。
適当に数値いれて手で方眼紙にプロットしろ。話はそれからだ。
864デフォルトの名無しさん
2015/12/27(日) 14:58:58.66ID:j4SegU7G >>857
関数f(x)がもともと収束しない形である可能性はないのか?
関数f(x)がもともと収束しない形である可能性はないのか?
865デフォルトの名無しさん
2015/12/27(日) 19:35:54.52ID:yJZ4hzCz >>863
すんません、完璧勘違いしてました!
やはり4倍精度で正しかったですm(_ _)m
勉強になりましたm(_ _)m
>そもそも二分法の場合必ず半分になるんだから、まともなら x1=x2 にならないはずがない.
>ならないとすればプログラムが間違っているか、関数値の正負が x1 と x2 の間で
>複数回反転しているかのどっちかだろ。つまり与えた区間の初期値が間違っている。
初期値問題ですか。。。。
>まずグラフを書かせろよ。
>適当に数値いれて手で方眼紙にプロットしろ。話はそれからだ。
グラフなんですが、f(x)が非線形なので数値計算のみでしかもとまらないです。
すんません、完璧勘違いしてました!
やはり4倍精度で正しかったですm(_ _)m
勉強になりましたm(_ _)m
>そもそも二分法の場合必ず半分になるんだから、まともなら x1=x2 にならないはずがない.
>ならないとすればプログラムが間違っているか、関数値の正負が x1 と x2 の間で
>複数回反転しているかのどっちかだろ。つまり与えた区間の初期値が間違っている。
初期値問題ですか。。。。
>まずグラフを書かせろよ。
>適当に数値いれて手で方眼紙にプロットしろ。話はそれからだ。
グラフなんですが、f(x)が非線形なので数値計算のみでしかもとまらないです。
866デフォルトの名無しさん
2015/12/27(日) 23:19:57.50ID:XJXVRFXp >>865
沢山の点で計算してEXCEL等でプロットすればいいのでは。
沢山の点で計算してEXCEL等でプロットすればいいのでは。
867デフォルトの名無しさん
2015/12/28(月) 02:36:39.69ID:lnQX/VRo >>865
まずは4次のルングクッタでグラフ描いてみてはどうだ?
まずは4次のルングクッタでグラフ描いてみてはどうだ?
868デフォルトの名無しさん
2016/01/09(土) 11:18:03.65ID:i1gHiPMA implicit な〜ん(笑)
869デフォルトの名無しさん
2016/01/18(月) 02:16:26.16ID:trNoq0XT fortranだと変数がからかどうか判定できないんだっけ?
空だと 0.00が代入されんのかな
空だと 0.00が代入されんのかな
870デフォルトの名無しさん
2016/01/18(月) 15:21:34.93ID:1WswQHMD 空ってなんだ? 初期化されていないということか?
Fortranでは初期化されていない変数の値は不定だぞ。ごみが入っている。
0.0は初期か忘れに気づきにくいから、むちゃくちゃな値が入っていたほうが親切。
allocatableがallloctaeされているかいないかならallocated関数かな。
Fortranでは初期化されていない変数の値は不定だぞ。ごみが入っている。
0.0は初期か忘れに気づきにくいから、むちゃくちゃな値が入っていたほうが親切。
allocatableがallloctaeされているかいないかならallocated関数かな。
871デフォルトの名無しさん
2016/01/19(火) 00:06:44.55ID:yHbL6fBI >>870
e-307くらいが入る
e-307くらいが入る
872デフォルトの名無しさん
2016/01/19(火) 01:44:03.17ID:3ZSQATy/ >>870
allocatable で配列宣言してないとそれ使えないよね?
例えば、
program main
implicit none
double precision:: a, stat
do
read(20,*,iostat=stat) a
if(stat<0)exit
enddo
rnd program main
fort.20 ファイルの中身が空(null)だとしたら変数aにはゴミが入るわけよね?
変数aに何の数値も代入されていないと自動的に確認するためにはどんなコーディングが必要だろう、この場合。
allocatable で配列宣言してないとそれ使えないよね?
例えば、
program main
implicit none
double precision:: a, stat
do
read(20,*,iostat=stat) a
if(stat<0)exit
enddo
rnd program main
fort.20 ファイルの中身が空(null)だとしたら変数aにはゴミが入るわけよね?
変数aに何の数値も代入されていないと自動的に確認するためにはどんなコーディングが必要だろう、この場合。
873デフォルトの名無しさん
2016/01/19(火) 06:58:03.23ID:MMA3M4fE Fortranのレベルでどうこうではなく、Undefined Behavior Sanitizerでも使えばいいんじゃないの
874デフォルトの名無しさん
2016/01/19(火) 09:26:07.32ID:3ZSQATy/875デフォルトの名無しさん
2016/01/20(水) 00:17:10.04ID:0BkO9wkB いまさらfortranで機械学習とかディープラーニングライブラリ作って公開する猛者いませんか?
いたら面白いのになあ
いたら面白いのになあ
876デフォルトの名無しさん
2016/01/22(金) 21:17:23.35ID:SxQo3Wt7 iMacだがLAPACKのコンパイルが上手くいかない。MacBookAirの時は上手く言ったのだが誰か教えてくれないか?
877デフォルトの名無しさん
2016/01/22(金) 22:42:37.27ID:rL4grHGE >>872
Fortran2003 ならスカラーの allocatable もある。
I/O では無理だが、例えば Function からの代入ならば、希望のことはできる。
スカラーへの allocatable 変数が返り値の Function からの自動再割り付けで、
右辺の関数の返り値が空なら、左辺の allocatable スカラーが allocate されないし、
値をもっていれば NULL だろうとallocate されるので allocataed 関数を使えば判別できると思う。
Fortran2003 ならスカラーの allocatable もある。
I/O では無理だが、例えば Function からの代入ならば、希望のことはできる。
スカラーへの allocatable 変数が返り値の Function からの自動再割り付けで、
右辺の関数の返り値が空なら、左辺の allocatable スカラーが allocate されないし、
値をもっていれば NULL だろうとallocate されるので allocataed 関数を使えば判別できると思う。
878デフォルトの名無しさん
2016/02/05(金) 09:02:45.47ID:wvmc5Sx8 Fortranって何を使ってデバッグするんでしょうか
879デフォルトの名無しさん
2016/02/08(月) 00:08:26.47ID:wknTPR3t >>878
dddとかやん?
dddとかやん?
880デフォルトの名無しさん
2016/02/10(水) 08:13:25.94ID:ZRcL4yE9881デフォルトの名無しさん
2016/02/12(金) 04:12:40.41ID:vptI0fCP 数値計算するときの刻み幅の決め方が難しすぎるなぁ
等幅だとものすごい配列使うからメモリがオーバーフローするしなんかいい方法ないすかね?
てか、刻み幅に関する詳しい本とかないのかなぁ
等幅だとものすごい配列使うからメモリがオーバーフローするしなんかいい方法ないすかね?
てか、刻み幅に関する詳しい本とかないのかなぁ
882デフォルトの名無しさん
2016/02/12(金) 08:22:40.80ID:1ZkcdkFj >>881
森口繁一先生の
『計算数学夜話』
に、「刻み幅の自動選択」
という話が掲載されていたはずです。
変化がなだらかな区間は刻み幅を広く、
変化が急な区間は刻み幅を狭くするのを
自動化するという話です。
森口繁一先生の
『計算数学夜話』
に、「刻み幅の自動選択」
という話が掲載されていたはずです。
変化がなだらかな区間は刻み幅を広く、
変化が急な区間は刻み幅を狭くするのを
自動化するという話です。
883デフォルトの名無しさん
2016/02/14(日) 06:02:56.78ID:5/5WMEda884デフォルトの名無しさん
2016/02/15(月) 02:04:22.84ID:sHvN+vmN 桁の大きなものと桁の小さなものが混じった数値計算をするとき、規格化するのは常識だと思うんだが。
ある変数の取りうる範囲が極端に振れる場合(例えば、1d-20 < x < 1d8) だとどうすりゃいいんやろか。
ある変数の取りうる範囲が極端に振れる場合(例えば、1d-20 < x < 1d8) だとどうすりゃいいんやろか。
885デフォルトの名無しさん
2016/02/17(水) 11:45:41.36ID:8sdmbRj5 対数を取れw
886デフォルトの名無しさん
2016/02/17(水) 12:17:59.53ID:IDaBzq+u887デフォルトの名無しさん
2016/02/17(水) 12:40:39.87ID:5aqj+faD logかました状態だと値の範囲が狭くなるというだけじゃ?
888デフォルトの名無しさん
2016/02/17(水) 18:55:07.86ID:NfIkV94M そもそも問題がわからないから答えようがないな。
たとえば被積分関数が 1d-20 から 1d8 まで振れる場合は小さい値はどうでもいいし。
たとえば被積分関数が 1d-20 から 1d8 まで振れる場合は小さい値はどうでもいいし。
889デフォルトの名無しさん
2016/04/25(月) 20:15:29.39ID:ABiBIEuQ 一次元ポアソン方程式
d^2φ/dx^2=cos(x) (0≦x<2π)
を解くプログラミングがわかりません。差分法を使えばいいというのはなんとなくわかったのですが、差分法がいまいちよくわかっていないです。
どなたかご教授ねがえないでしょうか。
d^2φ/dx^2=cos(x) (0≦x<2π)
を解くプログラミングがわかりません。差分法を使えばいいというのはなんとなくわかったのですが、差分法がいまいちよくわかっていないです。
どなたかご教授ねがえないでしょうか。
890デフォルトの名無しさん
2016/04/25(月) 21:42:21.21ID:0jtmrtsy ネットでも本でもいいから微分方程式の数値解法について調べること。
いろんな計算方法があるし、特定の言語にこだわる必要もない。
そういえば数値計算のスレって今ないよね。
いろんな計算方法があるし、特定の言語にこだわる必要もない。
そういえば数値計算のスレって今ないよね。
891デフォルトの名無しさん
2016/04/25(月) 21:53:17.04ID:2LxfGMmK >>889
そもそもその式は解析的に解ける。
そもそもその式は解析的に解ける。
892デフォルトの名無しさん
2016/04/25(月) 21:53:33.26ID:2LxfGMmK >>890
欲しいなそんなスレ
欲しいなそんなスレ
893デフォルトの名無しさん
2016/05/01(日) 14:42:40.23ID:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
@
BitTorrentがオープンソースで開発されています
言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?
Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al
ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw
The Covenant Project
概要
Covenantは、純粋P2Pのファイル共有ソフトです
目的
インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します
特徴
Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)
接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません
@
894デフォルトの名無しさん
2016/05/01(日) 18:07:45.37ID:XA7YY+e1 言語はなんでも大丈夫ってレベルじゃねーぞ
895デフォルトの名無しさん
2016/05/17(火) 20:55:20.04ID:MgCDmrcL Fortran2015の調子はどうだい?
896デフォルトの名無しさん
2016/05/21(土) 18:12:16.63ID:h3OgqWhP ChromebookでFortranって動かせる?
897デフォルトの名無しさん
2016/07/18(月) 20:31:12.72ID:apSB7g7B898デフォルトの名無しさん
2016/07/19(火) 14:21:12.91ID:qfWdnT3p >>897
逝ってよし
逝ってよし
900デフォルトの名無しさん
2016/07/19(火) 22:17:37.41ID:WRFubhA/ >>898
オマエモナー
オマエモナー
901デフォルトの名無しさん
2016/07/19(火) 22:18:11.36ID:WRFubhA/ >>897
自己解決しますた
自己解決しますた
902デフォルトの名無しさん
2016/07/28(木) 19:47:05.10ID:nObYn5cT 0度〜90度まで30度間隔で正弦と余弦を出力する。但し書式は整数5桁、関数値は10桁で小数点以下6桁とする。
下記でコンパイラしても上手くいかないのですがどこをどのようにすれば宜しいでしょうか?
http://i.imgur.com/xwAoCXH.jpg
下記でコンパイラしても上手くいかないのですがどこをどのようにすれば宜しいでしょうか?
http://i.imgur.com/xwAoCXH.jpg
903デフォルトの名無しさん
2016/07/28(木) 22:14:51.73ID:E8ct0ihN 古風な書き方だな
大学の講義か何かで習ってるの?
k が正しく表示されない点については、フォーマット文の f2.0 を i5 に書き換えたらどう?
どの段階でどのように失敗するのか書いてくれるとチェックしやすい
あと、プログラムをコピペしてくれるとこちらが入力する手間が省ける
大学の講義か何かで習ってるの?
k が正しく表示されない点については、フォーマット文の f2.0 を i5 に書き換えたらどう?
どの段階でどのように失敗するのか書いてくれるとチェックしやすい
あと、プログラムをコピペしてくれるとこちらが入力する手間が省ける
904デフォルトの名無しさん
2016/07/29(金) 07:39:07.85ID:1zITvd9X >903
確かにFortran IVみたいな書き方ですね。
フォーマット文を
100 format ( i5,2f10.6)
に替えたら
k sin cos
0 0.000000 1.000000
30 0.500000 0.996812
60 0.866025 0.987268
90 1.000000 0.971430
と結果がでます。
それにしても,
pi = acos(-1.0)
は
DOループの前に出すのがいいのじゃないですか。
確かにFortran IVみたいな書き方ですね。
フォーマット文を
100 format ( i5,2f10.6)
に替えたら
k sin cos
0 0.000000 1.000000
30 0.500000 0.996812
60 0.866025 0.987268
90 1.000000 0.971430
と結果がでます。
それにしても,
pi = acos(-1.0)
は
DOループの前に出すのがいいのじゃないですか。
906デフォルトの名無しさん
2016/07/30(土) 00:26:31.27ID:CH8BIOrU >>903
大学ですね
大学ですね
907デフォルトの名無しさん
2016/07/30(土) 01:16:36.18ID:CH8BIOrU 重力のみが作用する振り子の運動を解析するプログラムを完成させよ。
real L
data g, L / 9.8, 1.0 /
write (*,*) ’ Δt (sec) =’
read (*,*) dt
*initial
2 write (*,*) ’ θ0 (radian) =’
read (*,*) s0
s =❔
v =❔
t =❔
vL=v
* repeat
1 a= ❔
v =❔
w=❔
s =❔
t =❔
write (*,’(3f8.4)’)
if (vL.gt.0.0.and.v.lt.0.0) go to 2
vL=v
go to 1
end
知り合いとやってるのですが出来る気配がありません。
❔部分に何が入るか教えて下さい。
Δ、θは置き換えますよね?
real L
data g, L / 9.8, 1.0 /
write (*,*) ’ Δt (sec) =’
read (*,*) dt
*initial
2 write (*,*) ’ θ0 (radian) =’
read (*,*) s0
s =❔
v =❔
t =❔
vL=v
* repeat
1 a= ❔
v =❔
w=❔
s =❔
t =❔
write (*,’(3f8.4)’)
if (vL.gt.0.0.and.v.lt.0.0) go to 2
vL=v
go to 1
end
知り合いとやってるのですが出来る気配がありません。
❔部分に何が入るか教えて下さい。
Δ、θは置き換えますよね?
908デフォルトの名無しさん
2016/07/30(土) 01:17:58.34ID:CH8BIOrU909デフォルトの名無しさん
2016/07/30(土) 18:19:30.33ID:MnenPn8v >>907
回線切って氏ね
回線切って氏ね
910デフォルトの名無しさん
2016/07/31(日) 23:35:51.92ID:TkjN2Ici911デフォルトの名無しさん
2016/08/01(月) 00:02:16.74ID:018Zh5sQ たぶん運動方程式をたててオイラー法で解くだけでしょ
どの段階で躓いているか分からないと答えようがない
どの段階で躓いているか分からないと答えようがない
912デフォルトの名無しさん
2016/08/01(月) 01:25:45.70ID:qXp6EaAl 宿題全部やってちょうだい感が出てるから、やってくれる人は少なそう
913デフォルトの名無しさん
2016/08/01(月) 12:05:07.12ID:tW3kuaWv エセ左翼の目的は、わざと突っ込みどころが多い主張をすることで自分たちへ注意を向けさせ、
カルトへ向かう非難の矛先を逸らすこと。
国益に反することを言ったり、主張が食い違うもの同士の対立を煽ろうとするので放置し難いが、
主義思想についての洗脳を受けているわけではなく、フリをしているだけなので、
言い負かされてもダメージを負った様子もなく、論点をすり替えられるかスルーされる。
まともに相手をしてはならない。
サヨに対する危機意識が強すぎると、普段は常識的に振舞っている
(又は、サヨから不当に叩かれている)政治家などがズレたことをやろうとした時でも、
許容したり擁護してしまいがちになるので注意が必要。
カルトへ向かう非難の矛先を逸らすこと。
国益に反することを言ったり、主張が食い違うもの同士の対立を煽ろうとするので放置し難いが、
主義思想についての洗脳を受けているわけではなく、フリをしているだけなので、
言い負かされてもダメージを負った様子もなく、論点をすり替えられるかスルーされる。
まともに相手をしてはならない。
サヨに対する危機意識が強すぎると、普段は常識的に振舞っている
(又は、サヨから不当に叩かれている)政治家などがズレたことをやろうとした時でも、
許容したり擁護してしまいがちになるので注意が必要。
914デフォルトの名無しさん
2016/08/01(月) 22:50:33.91ID:qgzcRfyo 時間、速度、角度を出力するつもりでやったのですがコンパイルした時の値が違います
おそらく運動方程式が間違っているのだと思いますが(t,s辺りが違い気がする)どこがどう違うか教えて下さい
real L
data g, L / 9.8, 1.0 /
write (*,*) ’ Δt (sec) =’
read (*,*) dt
*initial
2 write (*,*) ’ θ0 (radian) =’
read (*,*) s0
s =s0
v =0
t =0
vL=v
* repeat
1 a= −g*sin(s)
v =a*t
w=v/L
s =s0+v*t/L
t =t+dt
write(*,*)’t,v,s’
write (*,’(3f8.4)’)t,v,s
if (vL.gt.0.0.and.v.lt.0.0) go to 2
vL=v
go to 1
end
おそらく運動方程式が間違っているのだと思いますが(t,s辺りが違い気がする)どこがどう違うか教えて下さい
real L
data g, L / 9.8, 1.0 /
write (*,*) ’ Δt (sec) =’
read (*,*) dt
*initial
2 write (*,*) ’ θ0 (radian) =’
read (*,*) s0
s =s0
v =0
t =0
vL=v
* repeat
1 a= −g*sin(s)
v =a*t
w=v/L
s =s0+v*t/L
t =t+dt
write(*,*)’t,v,s’
write (*,’(3f8.4)’)t,v,s
if (vL.gt.0.0.and.v.lt.0.0) go to 2
vL=v
go to 1
end
915デフォルトの名無しさん
2016/08/02(火) 00:16:36.76ID:lf/Rfa1x >914
プログラムの問題ではなくて,数式の問題なんだから,物理板で質問した
ほうがいいのじゃないの。
プログラムの問題ではなくて,数式の問題なんだから,物理板で質問した
ほうがいいのじゃないの。
916デフォルトの名無しさん
2016/08/02(火) 01:31:13.87ID:pyAOnFQt >>914
それFortran以前に運動方程式が全然違う。
v=Lω
dθ/dt = ω
として
dθ^2/dt^2 = -(g/L)sinθ
という微分方程式をルンゲクッタ法で解く。
解析力学、振り子とかで検索したら
ttp://homepage1.nifty.com/gfk/furiko.htm
出てくるだろ、ちゃんと調べろ。
それ以前に理学部とかだったら勉強不足だぞ。
それFortran以前に運動方程式が全然違う。
v=Lω
dθ/dt = ω
として
dθ^2/dt^2 = -(g/L)sinθ
という微分方程式をルンゲクッタ法で解く。
解析力学、振り子とかで検索したら
ttp://homepage1.nifty.com/gfk/furiko.htm
出てくるだろ、ちゃんと調べろ。
それ以前に理学部とかだったら勉強不足だぞ。
917デフォルトの名無しさん
2016/08/02(火) 16:12:24.48ID:+RnVB/b2 どなたか「=>」の意味を教えてください
大なりイコールのような条件式ではなく、記号が逆になっている方です。
具体的には、
DO I =1,NCNEST_NUM
D=>NCNEST_DATA(I)
G=>NCNEST_GRIDS(I)
CALL ASSIGN2BLOCK(D,G)
END DO
のようになっています。データの書き込み系だと睨んでいます。
よろしくお願いします。
大なりイコールのような条件式ではなく、記号が逆になっている方です。
具体的には、
DO I =1,NCNEST_NUM
D=>NCNEST_DATA(I)
G=>NCNEST_GRIDS(I)
CALL ASSIGN2BLOCK(D,G)
END DO
のようになっています。データの書き込み系だと睨んでいます。
よろしくお願いします。
918デフォルトの名無しさん
2016/08/02(火) 16:20:52.36ID:e4r/z1Wx919デフォルトの名無しさん
2016/08/02(火) 16:23:27.42ID:W78wvcm1 ⇒
920デフォルトの名無しさん
2016/08/02(火) 16:50:17.87ID:+RnVB/b2 >918
すばやい反応ありがとうございます。
「FORTRAN =>」で検索しても出てこなかったので、非常にありがたいです。
すばやい反応ありがとうございます。
「FORTRAN =>」で検索しても出てこなかったので、非常にありがたいです。
921デフォルトの名無しさん
2016/08/05(金) 23:42:07.06ID:y4inqjRe coarrayをwindows7,gfortranで
gfortran coarray.f90 -fcoarray=lib -lcaf_mpi
と打つと、
cannot find -lcaf-mpi
とでてコンパイルできん
https://gcc.gnu.org/wiki/CoarrayLib
を参考にMPICH2の拡張子msiのやつ(ちょいバージョン古い)を管理者権限でインストールしてPATHも通している
mpiexecも出来てるから、インストールに失敗してはいない
助けてくださいお願いします
gfortran coarray.f90 -fcoarray=lib -lcaf_mpi
と打つと、
cannot find -lcaf-mpi
とでてコンパイルできん
https://gcc.gnu.org/wiki/CoarrayLib
を参考にMPICH2の拡張子msiのやつ(ちょいバージョン古い)を管理者権限でインストールしてPATHも通している
mpiexecも出来てるから、インストールに失敗してはいない
助けてくださいお願いします
レス数が900を超えています。1000を超えると表示できなくなるよ。
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★4 [BFU★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 中国、レアアース輸出制限wwwwwwwwwwwwwwwwwwwwwwww🎌 [329329848]
- おまえらって冷笑系おおすぎじゃね
- 日本をドーム状に覆って気温を一定にしたほうが過ごしやすいんじゃないの?
- 職場の人の雑談あまりにもどうでもよくて混ざらないんだけどさ
- 来月のクリスマス何か予定ある?
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
