積分を使用してグラフの面積を計算しようとしています。
ユーザーは私に3つの数字を与えることになっています:
- x1、x2 – 積分の境界
- N は、プログラムが関数を分割する部分の数です
しかし、私は間違った結果を得続けています。
私が直面した最初の問題は、range が整数しか受け入れないことです。
またz=(x2-x1)/N
、フロートにしようとすると、1 ステップ後にすることができず、フロートにしないとゼロに近づくため、Python はステップがゼロであるというエラーを表示します。
また、どのように要約でき(z*(f(i)+f(i+z)/2)
ますか?
これが私のコードです:
# -*- coding: UTF-8 -*-
import math
def f(x) :
y = (-1/6.0)*(x-1)*(x-2)*(x+2)*(x-4)
return y
x1=int(raw_input ('Δωστε το χ1 οπου αρχιζει η μετρηση του ολοκληρωματος \n ')) #greek letters
x2=int(raw_input ('Δωστε χ2 οπου θελετε να ολοκληρωνεται η μετρηση \n '))
N=int(raw_input('Δωστε τον αριθμο n που θα ειναι το πληθος \n των τραπεζιων που θα χρησιμοπιουνται στη προσσεγγιση \n '))
z=(x2-x1)/N
for i in range(x1,x2,z):
z=float(z)
x1=float(x1)
x2=float(x2)
print (z*(f(i)+f(i+z))/2)