質問するログイン新規登録

質問編集履歴

2

プログラムの更新

2018/01/09 14:07

投稿

motyaa
motyaa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -18,17 +18,16 @@
18
18
  def f2(x):
19
19
  return (math.cos(x))
20
20
 
21
- N = 1000
21
+ N = 10000 # 分割数
22
22
 
23
23
  a_list = [-2,0]
24
24
  b_list = [3,math.pi/2]
25
25
  cnt = 0
26
- for i in range(1,N,10):
26
+ for i in range(1,N,1):
27
- h = (b_list[0]-a_list[0])/i
27
+ h = (b_list[0]-a_list[0])/i # きざみ幅
28
28
  h2 = h/2
29
- v = (h/3) * sum(f1(h*i) + 4*f1(h*(i+1)) + f1(h*(i+2)))
29
+ v = (h/3) * (f1(h*i) + 4*f1(h*(i+1)) + f1(h*(i+2)))
30
- w = (h/3) * sum(f1(h2*i) + 4*f1(h2*(i+1)) + f1(h2*(i+2)))
30
+ w = (h2/3) * (f1(h2*i) + 4*f1(h2*(i+1)) + f1(h2*(i+2)))
31
- print(v,w)
32
31
  if abs(v-w) <= 10**(-10):
33
32
  print("(1)\n")
34
33
  print("分割数 N = "+str(n)+"\n")
@@ -37,8 +36,8 @@
37
36
  for i in range(1,N,10):
38
37
  h = (b_list[1]-a_list[1])/i
39
38
  h2 = h/2
40
- v = (h/3) * sum((f2(h*i) + 4*f2(h*(i+1)) + f2(h*(i+2))))
39
+ v = (h/3) * ((f2(h*i) + 4*f2(h*(i+1)) + f2(h*(i+2))))
41
- w = (h/3) * sum((f2(h2*i) + 4*f2(h2*(i+1)) + f2(h2*(i+2))))
40
+ w = (h2/3) * ((f2(h2*i) + 4*f2(h2*(i+1)) + f2(h2*(i+2))))
42
41
  if abs(v-w) <= 10**(-10):
43
42
  print("(2)\n")
44
43
  print("分割数 N = "+str(n)+"\n")

1

誤字

2018/01/09 14:07

投稿

motyaa
motyaa

スコア12

title CHANGED
File without changes
body CHANGED
@@ -1,11 +1,11 @@
1
1
  ###前提・実現したいこと
2
2
  python3.6で1/3シンプソンの公式を利用したプログラムを実装中です。
3
- その際、きざみ幅がhの場合の近似値vと、きざみ幅をその半分にした場合の近似値wとを計算し、|v^w| <= 10^(-1)となった場合にプログラムを終了し、その際の計算結果を出力するというものです。
3
+ その際、きざみ幅がhの場合の近似値vと、きざみ幅をその半分にした場合の近似値wとを計算し、|v^w| <= 10^(-10)となった場合にプログラムを終了し、その際の計算結果を出力するというものです。
4
4
 
5
5
  ###発生している問題・エラーメッセージ
6
6
 
7
7
  ```
8
- |v^w| <= 10^(-1)となった時の分割数と近似値を出力してbreakするように実装したつもりなのですが、
8
+ |v^w| <= 10^(-10)となった時の分割数と近似値を出力してbreakするように実装したつもりなのですが、
9
9
  実行時に何も表示されなくて困っています。
10
10
  ```
11
11