これらの2つのセクションで、次のエラーメッセージが表示されます。ValueError:配列で配列要素を設定する
def Simpsons(a, b, n, f, x):
h=(b-a)/n
s = 0.
step = a + h
for i in range(1, int(n/2)):
s += 4*f(x)
#step += 2*h
step = a + 2 * h
for i in range(2, int(n/2 - 1)):
s += 2*f(x)
#step += 2 * h
area = (h/3) * (f(a) + f(b) + s)
return area
と
for i in range(0, len(list_n)):
for j in range(0, len(Functions)):
x = np.linspace(a, b, list_n[i])
error_simp[j, i] = Exact_intergrals[j] - Simpsons(0, 1, list_n[i], Functions[j], x)
print(error_simp)
このメッセージを与える:
error_simp[j, i] = Exact_intergrals[j] - Simpsons(0, 1, list_n[i], Functions[j], x)
ValueError: setting an array element with a sequence.
これはなぜでしょうか?私が試したことはすべてそれを取り除かない。
インデントを正確に再現するPythonコードを投稿するかどうかを確認してください。さもなければ、人々が問題を見つけようとしているコードに新しい問題を導入しています。 – khelwood
side remark:nが偶数または奇数の場合、シンプソン(統合)で大文字小文字の区別をする必要があります。シンプソンルールは、最後のインターバルを別々に扱うことで、奇数のインターバルに拡張することができます(最後の3ポイントに放物線を当て、最後の2ポイントのみを統合します)。 –
'error_simp'とは何ですか?形、dtype? RHSは何を生産していますか? – hpaulj