12/04/24 23:36:35.80
設問に1/1は入っていないのだが
869:デフォルトの名無しさん
12/04/24 23:58:21.64
答えをそのまま書いては学習にならんだろう
870:デフォルトの名無しさん
12/04/25 23:27:40.03
FortranとOpenCLの組み合わせの場合も、やっぱGPU側に送るルーチンは特殊なCで書くのか?
871:デフォルトの名無しさん
12/04/26 01:55:24.39
整数Nを読み込み、1+1/1!+1/2!+1/3!+・・・+1/n!の値を計算して出力するプログラム
このプログラムを級数の項数Nを入力するかわりに、DO WHILE文を用いて級数の項の大きさが10**(-4)以下になったとき、級数の和の計算を止めるプログラムに書き換える
さらに、結果の出力として
1)収束した時の項番N
2)級数の和S
3)級数の和SとEXP(1.0)との差
を表示する
夜遅くにすいません。よろしくお願いします
872:デフォルトの名無しさん
12/04/28 01:10:24.07
宿題スレなのか?
n = 1
s = 1
x = 1
do while (log10(x) < 4.0D)
! 階乗の逆数を s に足し込み
! n と x を更新
end do
! 結果出力
873:お願いします
12/04/30 19:21:28.96
fortranについて
2次元配列において(1000,1000)このデータのうち(200:300、100:400)だけ取り出しました。
このときwrite文で書きだす時、取り出したデータだけでなく、配列の個数自体とりだしたいのですがどうすれば
よろしいでしょう?
たとえば
結果が
200 100 10.4←これは配列の中身のデータ
201 100 2.0
202 100 4.8
203 100 5.7
・
・
・
200 101 5.6
201 101 7,9
202 101 7,9
203 101 8,0
・
・
・
200 102 6.8
201 102 15.9
202 102 26.1
・
・
・
298 400 2.2
299 400 3.2
300 400 3.6
このような感じです。よろしくお願いし
874:デフォルトの名無しさん
12/04/30 19:40:00.17
質問の意味がよく分からんが、取り出した部分の総要素数という事なら、COUNT命令でおk?
COUNT( x(200:300, 100:400) )
875:デフォルトの名無しさん
12/05/03 21:48:11.69
初期値X(0)=1としてK=1,2,3・・・の順にX(K)=cos(X(K-1))を繰り返して、|X(K)-X(K-1)|<0.00001になったら反復を打ち切り、
1)反復回数K、2)Xの近似解、3)近似解の誤差を出力するプログラム。DO WHILE文を用いる
876:デフォルトの名無しさん
12/05/03 22:09:42.36
簡単過ぎる。もっと難しいの持って来い。
877:デフォルトの名無しさん
12/05/04 00:01:35.98
基礎演習の宿題なんでお願いします
878:デフォルトの名無しさん
12/05/04 10:11:32.40
program twochannel
implicit none
real :: x
integer :: k
k = 0
x = 1.0
do while ( abs(cos(x) - x) >= 0.00001 )
k = k + 1
x = cos(x)
end do
print *, 'number of iterations', k, ' root', x, ' error', abs(x - cos(x))
stop
end program twochannel
879:デフォルトの名無しさん
12/05/08 11:36:16.14
もう一つあったFortran スレ落ちたねw
880:デフォルトの名無しさん
12/05/09 01:30:31.73
二次探索法のアルゴリズムに従って、解の存在範囲の上限XRと下限XRの初期値を入力し
f(x)=x-cos(x)=0の解を繰り返し処理(DO WHILE)で求め、
1)近似解、2)繰り返し計算の回数、3)方程式f(x)の誤差を表示するプログラム(収束の許容精度EPSは10の-5乗)
881:デフォルトの名無しさん
12/05/09 01:36:39.70
二分探索法だろ、問題分もまともに写せないのかよ。小学校からやり直せ!
882:デフォルトの名無しさん
12/05/09 01:57:45.71
適当に問題文を書き写して末尾に「プログラム。」と書くと
頼まなくても答を書いてくれるプログラム。
883:デフォルトの名無しさん
12/05/09 02:16:52.55
教員側もこのスレ見てたりして
884:デフォルトの名無しさん
12/05/09 02:20:11.69
答え書いてとお願いしているわけではないからセーフ。
885:デフォルトの名無しさん
12/05/09 13:45:54.29
答えもらって丸写ししたら
カンニングと同じなんだけど
底辺大学あたりだと
「人に聞いた」事が評価されるからなぁ
886:デフォルトの名無しさん
12/05/09 19:04:29.06
>>883
見ているw
887:デフォルトの名無しさん
12/05/09 23:58:47.57
program twochan
implicit none
real, parameter :: eps = 1.0e-5
real :: x, xroof, xfloor, xr, xf
integer :: i
1 print *, 'input lower and upper range of x'
read *, xfloor, xroof
if ( f(xfloor) * f(xroof) > 0.0 ) then
print *, 'inappropriate inputs! '
goto 1
end if
xf = xfloor
xr = xroof
x = 0.5 * (xf + xr)
i = 0
do while ( abs( f(x) ) > eps )
i = i + 1
if ( f(x) * f(xr) > 0.0 ) then
xr = x
else
xf = x
end if
x = 0.5 * (xf + xr)
end do
print *, 'a root of equation x - cos(x) = 0 ', x, ' no. of iterations =', i, ' absolute difference ', abs(f(x))
stop
contains
real function f(x)
real, intent(in) :: x
f = x - cos(x)
end function f
end program twochan
888:デフォルトの名無しさん
12/05/10 00:01:01.37
入力例
input lower and upper range of x
0.5 0.7
inappropriate inputs!
input lower and upper range of x
0.5 0.8
a root of equation x - cos(x) = 0 0.7390808
no. of iterations = 13
absolute difference 7.1525574E-06
続行するには何かキーを押してください . . .
先生! おれ DO WHILE 嫌いなんで、条件緩めて下さいw IF () EXIT ; END DO の REPEAT UNTIL 派なんです。