前提・実現したいこと
課題でオイラー法のプログラムを組んでいて、x=0.1,0.2,....1.0の値のみを出力したい。
発生している問題・エラーメッセージ
if文の条件文をx==0.1 or 0.2 or....としたところうまくいかなかったので、いろんな値を入れていくとなぜかx==0.001~0.008まではうまく出力されるがx==0.009以降はエラー等はないが何も出力されない状態になった。
該当のソースコード
python3
1import math 2import numpy as np 3import sys 4sys.setrecursionlimit(10**3) 5def f(y): 6 return y 7 8def t(x): 9 return (math.e)**x 10dx = 0.001 11y = 1.0 12x = 0 13 14with open('euler.txt','w') as u: 15 while x < 1.0: 16 y += f(y)*dx 17 x += dx 18 error = abs(y-t(x)) 19 if x == 0.009: 20 print("xが" "{0:.3f}" "近似値は" "{1:.15f}" "真の値は" "{2:.15f}" "真の値との差は" "{3:.15f}". format(x,y,t(x),error), file=u)
試したこと
if文の条件文をx==0.1 or 0.2 or....としたところうまくいかなかったので、いろんな値を入れていくとなぜかx==0.001~0.008まではうまく出力されるがx==0.009以降はエラー等はないが何も出力されない状態になった。
補足情報(FW/ツールのバージョンなど)
if文の条件文でx==0.1 or 0.2 or....ではなくもっと良い方法などがあれば教えていただけると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/17 10:14