2016-01-10 97 views
-1

我想用積分(Riemann)計算曲線下的面積。我寫了一些代碼,但運行它時會給我帶來問題:NameError: name 'y' is not definedNameError在Python函數中未定義

這是代碼:

from math import * 

def f(x): 
    return y**2 

def integral (A, B, Rectangulos): 
    ancho = (float(B) - float(A))/Rectangulos 
    suma = 0 
    for i in range(Rectangulos): 
     altura = f(A + i * ancho) 
     area = altura * ancho 
     suma = suma + area 
    return suma 

A = int(input("Asigna el valor de A: ")) 
B = int(input("Asigna el valor de B: ")) 

Rectangulos = int(input("Indique la cantidad de rectangulos que desea utilizar \n (Recuerde que mientras mayor sea la densidad, el valor final sera mas cercano al valor deseado): ")) 

print ("El valor aproximado de esta integral es ", integral(A,B,Rectangulos)) 

我怎樣才能解決這個問題?

+0

在函數'f'的返回語句中將'y'更改爲'x'。 – nbro

回答

2

什麼是y?它是不確定的,這就是爲什麼你會得到這個錯誤。你想寫:

def f(x): 
    return x**2 
+0

y ** 2是教授要求我確定的函數 –

+0

我知道你打算做y = A + i * ancho,然後計算f(y)。它會工作,將您的代碼更改爲我所展示的內容。 – Idos

+0

@LuisTrujillo很可能,但它不在'f'範圍內。 –