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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

28066閲覧

python3.6でiterableエラーが出ました。

motyaa

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

1グッド

0クリップ

投稿2018/01/09 12:40

編集2018/01/09 12:44

###前提・実現したいこと
python3.6で1/3シンプソンの公式を使って積分を求めています。

###発生している問題・エラーメッセージ

Traceback (most recent call last): File "sinpuson.py", line 23, in <module> v = (h/3) * sum(f1(h*i) + 4*f1(h*(i+1)) + f1(h*(i+2))) TypeError: 'float' object is not iterable

###該当のソースコード

python

1import math 2 3def f1(x): 4 return (x**3-2*x**2+x-1) 5def f2(x): 6 return (math.cos(x)) 7 8N = 1000 9 10a_list = [-2,0] 11b_list = [3,math.pi/2] 12cnt = 0 13v = w = h = h2 = 0 14for i in range(1,N,10): 15 h = (b_list[0]-a_list[0])/i 16 h2 = (b_list[0]-a_list[0])/i/2 17 v = (h/3) * sum(f1(h*i) + 4*f1(h*(i+1)) + f1(h*(i+2))) 18 w = (h/3) * sum(f1(h2*i) + 4*f1(h2*(i+1)) + f1(h2*(i+2))) 19 print(v,w) 20 if abs(v-w) <= 10**(-10): 21 print("(1)\n") 22 print("分割数 N = "+str(n)+"\n") 23 print("近似値 = "+str(v)+"\n") 24 break 25for i in range(1,N,10): 26 h = (b_list[1]-a_list[1])/i 27 h2 = (b_list[1]-a_list[1])/i/2.0 28 v = (h/3) * sum((f2(h*i) + 4*f2(h*(i+1)) + f2(h*(i+2)))) 29 w = (h/3) * sum((f2(h2*i) + 4*f2(h2*(i+1)) + f2(h2*(i+2)))) 30 if abs(v-w) <= 10**(-10): 31 print("(2)\n") 32 print("分割数 N = "+str(n)+"\n") 33 print("近似値 = "+str(v)+"\n") 34 break

###試したこと
floatやintは繰り返し不可能と存じましたが、対策方法がわかりません。

###補足情報(言語/FW/ツール等のバージョンなど)
なし

omochi267👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

sum関数の引数の型がfloatになっています。sum関数に渡せるのはlisttuple等のiterableなものだけです。

sumの3文字を消すだけでうまくいくのではないでしょうか?

投稿2018/01/09 12:48

namnium1125

総合スコア2043

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

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

motyaa

2018/01/09 12:54

sum関数を消去したら解決致しました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問