2010-05-18 25 views
5

Tengo un vector de 358 números. Me gustaría hacer una integración numérica de este vector, pero no sé cuál es la función de este.¿Cómo hago la integración numérica de un vector en MATLAB?

Descubrí que podemos usar trapz o quad, pero realmente no entiendo cómo integrar sin la función.

+0

Tenga una mirada en mi respuesta a una pregunta similar, donde utilizo para integrar trapz: http://stackoverflow.com/questions/2641809/calculate- area-under-fft-graph-in-matlab/2641824 # 2641824 – Jonas

+0

Agregaré esto como un comentario ya que es demasiado corto para ser una respuesta correcta. La integración sin utilizar las funciones incorporadas de MATLAB requeriría tener en mente un método numérico para su uso. El método trapezoidal es uno de los más simples; simplemente encuentra el área debajo del gráfico entre puntos adyacentes conectados por una línea (suponiendo un intervalo de eje x de 1, ya que no se mencionó ningún intervalo en la pregunta). Bajo tal supuesto, un esquema simple e ingenuo para el vector "fx" sería (fx (2: end) + fx (1: end-1))/2. –

+0

Los esquemas numéricos utilizados por trapz y quad se describen en cierta medida en la documentación, puede buscarlos en el archivo de ayuda de MATLAB o en línea. Si desea una descripción más completa de un algoritmo simple, hágamelo saber y agregaré una respuesta más completa. –

Respuesta

7

No necesita conocer la función para integrarse numéricamente; ese es el punto de trapz y quad. Simplemente pase trapz su vector. Aquí está a link to the documentation.

2

Considere la integración como para encontrar el área bajo la curva, que está formada por su vector. Bueno, no es realmente una curva, sino una cadena poligonal. Lo que está haciendo la función TRAPZ, encuentra la suma de las áreas de cada trapezoide formado por cada dos puntos vecinos en su vector y su proyección en el eje X. Consulte la documentación de la función, si tiene una distancia desigual entre sus puntos o si la distancia no es igual a uno.

Puede leer más acerca de este método, por ejemplo, en Wikipedia.

8

Si conoce el espaciado horizontal de su vector, puede usar trapz para integrarlo sin la función. Por ejemplo, para integrar y=sin(x) de 0 a pi con 358 secciones,

x=0:pi/357:pi; 
y=sin(x); 
area=trapz(x,y); 

Si sólo utiliza trapz(y), obtendrá un número mucho mayor, ya que la distancia entre los puntos de forma predeterminada se asume que es 1. Este problema se puede fijar mediante la multiplicación por la distancia entre los puntos x:

area=pi/357*trapz(y); 
Cuestiones relacionadas