Вопрос о написании метода трапециевидной интеграции - PullRequest
0 голосов
/ 08 ноября 2018

Привет. В настоящее время я пишу программу на Python, которая делит от 1 до 0 на n кусков и объединяет их на основе количества кусочков, каждая трапеция будет иметь (1-0)/n в качестве равной ширины.

Вот код:

from numpy import sqrt,sin,arange

def f(x):
    return (sin(sqrt(100*x))**2)

def trapezoidal(f, a, b, n):
    h = float(b - a) / n
    s = 0.0
    s += f(a)/2.0

    for i in range(1, n):
        s += f(a + i*h)

    s += f(b)/2.0
    return s * h

print(trapezoidal(f(x), 5, 10, 100))

Ребята, думаете ли вы, что этот код может работать? Кроме того, как вы добавляете последовательность или цикл, который вычисляет область для 1,2,4,8,16 до 2^10?

1 Ответ

0 голосов
/ 08 ноября 2018

неверный отступ. попробуйте это

import numpy as np

 def f(x):
     return (np.sin(np.sqrt(100*x))**2)



def trapezoidal(f, a, b, n):
    h = float(b - a) / n
    s = 0.0
    s += f(a)/2.0
    for i in range(1, n):
        s += f(a + i*h)
        s += f(b)/2.0
    return s * h

print( trapezoidal(f(x), 5, 10, 100))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...