@Nanch

Как обойти ошибку?

код прямо из методички, но он не работает. Почему - не понимаю
причем если закоментировать последнюю строку с 'trap' всё выполняется604a42dbf3c0d327382158.png
import matplotlib.pyplot as plt
def metod_NK(fun,a,b,N_intervalov,tip) :
    dx=(b-a)/N_intervalov
    if tip=='left':
        x_start=a
        Summ = 0
        for i in range(0,N_intervalov):
            Summ=Summ + fun(x_start+i*dx)*dx
    elif tip == 'trap':
        Summ = 0
        for i in range(0,N_intervalov):
            Summ = Summ + (fun(x_start+i*dx) + fun(x_start+(i+1)*dx))*dx/2
    return Summ

fig = plt.figure(figsize=(15,5))
f = lambda x: x**2
N = 50
n = [i for i in range(1,N+1)]
abs_err_summ_left = [0 for i in range(len(n))]
abs_err_summ_trap = [0 for i in range(len(n))]
for i in range (len(n)):
    abs_err_summ_left[i] = abs(5**3/3-metod_NK(f,0,5,n[i],'left'))
    abs_err_summ_trap[i] = abs(5**3/3-metod_NK(f,0,5,n[i],'trap'))
  • Вопрос задан
  • 132 просмотра
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Не обращаться к переменным, не определённым в текущей области видимости.
Ответ написан
SoreMix
@SoreMix Куратор тега Python
yellow
код прямо из методички

Сомневаюсь

Предположу, что x_start = a должно быть вне if-else
import matplotlib.pyplot as plt
def metod_NK(fun,a,b,N_intervalov,tip) :
    dx=(b-a)/N_intervalov
    x_start = a


Summ так же можно вывести за ифы
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы