2016-12-06 4 views
-3

Я не могу установить ничего нового Мне нужно использовать библиотеку python по умолчанию, и мне нужно интегрировать функцию. Я могу получить значение для любого f (x), и мне нужно интегрировать от 0 до 6 для моей функции f (x).Как сделать численное интегрирование в python?

+0

Чтобы избежать вопроса, который был закрыт без ответа, см. [Как спросить] (http://stackoverflow.com/help/how-to-ask) –

ответ

2

В дискретной форме, интеграция просто суммирование, т.е.

enter image description here

где п число выборок. Если мы позволим б-а/п дх (далее «ширина» нашего образца), то мы можем записать это в Python, как например:

def integrate(f, a, b, dx=0.1): 
    i = a 
    s = 0 
    while i <= b: 
     s += f(i)*dx 
     i += dx 
    return s 

Обратите внимание, что мы используем higher-order functions здесь. В частности, f - это функция, которая передается в integrate. a, b - наши границы, и dx по умолчанию - 1/10. Это позволяет нам применять нашу новую интеграционную функцию для любой функции мы хотим, например, так:

# the linear function, y = x 
def linear(x): 
    return x 

integrate(linear, 1, 6) // output: 17.85 

# or using lamdba function we can write it directly in the argument 
# here is the quadratic function, y=x^2 
integrate(lambda x: x**2, 0, 10) // output: 338.35 
-1
def func(): 
    print "F(x) = 2x + 3" 
    x = int(raw_input('Enter an integer value for x: ')) 
    Fx = 2 * x + 3 
    return Fx 

print func() 

с помощью функции входа в питоне, вы можете случайно ввести любой номер вы хотите, и получить функцию или если трудно кодирования это это необходимо, можно использовать для цикла и добавить номера в список, например

def func2(): 
    print "F(x) = 2x + 3" 
    x = [] 
    for numbers in range(1,7): 
     x.append(numbers) 

    upd = 0 
    for i in x: 
     Fx = 2 * x[upd] + 3 
     upd +=1 
     print Fx 

print func2() 

EDIT:, если вы хотите число, чтобы начать отсчет от 0 устанавливается первое значение в диапазоне до 0 вместо от 1

+0

Это оценивает функцию, она не делает никаких интеграция. – Prune

+0

вы можете более подробно объяснить, что вам нужно? – Falcon

+0

Вы оценили функцию в диапазоне [1,6]; плакат нуждается в интеграле по диапазону [0,6]. Я нигде не вижу, что вы имели дело с определенным интегралом данной функции. См. Более ранний ответ для хорошей презентации. – Prune