2016-03-31 13 views
0

Daha önce alt sınır a ve üst sınır arasında birleştirmek için kullandığım kodu değiştirmem söylendi. Bu, başka bir parametre, genişlik ekleyerek yapılır. İntegral daha sonra alan ile çok sayıda dikdörtgenin toplanmasıyla hesaplanabilir (genişlik * f (x)). I değiştirmek zorunda I hesaplamak gereken bir örnek f integralleri hesaplayınF (x) sayısal olarak alt ve üst sınır arasında nasıl birleştirilir?

aşağıda gösterilmiştir (x) = 0 ila 100.

My kod, bu kullanılır olduğu Ürünü hesaplamak için integralleri hesaplamak için bunu nasıl değiştirebilirim?

def product(f, a, b): 
    total = 1 
    for i in range(a, b+1): 
     total *= f(i) 
    return total 
+1

Bana ödev gibi görünüyor: \ – steffen

+0

ve eğer lol ise? @steffen – TurtleDave

+1

Öyleyse, problemi kendiniz çözmek için makul bir niyetiniz varsa, ne kadar yol aldığınızı postalayın ve ev ödevi olduğunu sorunuz. http://meta.stackexchange.com/questions/10811/how-do-i-ask-and-answer-homework-questions – steffen

cevap

1

Düzenlendi:

sizin fonksiyon f(x)x fonksiyonel değeri, böyle bir şey yapabilir hesaplar varsayarsak:

def f(x): # define this according to your function. 
    return x*x 

def integrate(func, a, b, width): 
    total = 0 
    i = a 
    while i <= b: 
     total += func(i) 
     i += width 
    return total * width 

width = 0.01 
integral = integrate(f, 0, 100, width) 
print(integral) 

Çıktı:

333283.3350000302 

Tr integralin değeri 333333.333333, bu yüzden sonuç oldukça doğru.

Düzenleme:

sin veya cos gibi diğer bazı fonksiyonları kullanmak için, böyle fonksiyonu f(x) içine yerleşik işlevleri kullanabilirsiniz: Sonra

def f(x): 
    return math.sin(x) 

0'dan entegre etmek pi, bunu kullanın:

width = 0.01 
integral = integrate(f, 0, math.pi, width) 
print(integral) 

Aktarmayı unutmayın import math kullanarak atlar.

+0

adresine bakın, bu yüzden def notunu (x) bildirebilir, x'i döndürebilir ve sonra nasıl görüntüleyebilirim? cevap? foo'yu geçebilir miyim, sonra 3 parametre? – TurtleDave

+1

, "width" ile sadece bir kez çarpmak daha iyi olmaz mıydı? – steffen

+0

x tanımlamak zorunda değil miyim? – TurtleDave

1

width ürününüzün 0.001 gibi bir değeri olması gerekiyorsa, range dışında bir değer kullanmanız gerekir;

deneyin while döngüsü:

def integral(f, a, b, width): 
    total = 0 
    i = a 
    while i <= b: 
     total += f(i) 
     i += width 
    return total*width 

DÜZENLEME: Böyle kullanabilirsiniz: Eğer yok

def foo(x): 
    return x 
a = 0 
b = 1 
width = 0.001 

integrated = integrate(foo, a, b, width) 
print(integrated) 

Not ilan etmek a, b ve değişken olarak width; Onları doğrudan iletebilirsiniz.

+0

:) sayesinde yaptı. Sнаđошƒаӽ It entegrasyonu @ –

+0

yüzden yakınlaştırılması için, ben de Miles

+0

'i i = b'' fonksiyonel değer eksiktir, b' <. –

İlgili konular