Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

trapz

Integrazione numerica trapezoidale

Descrizione

Q = trapz(Y) calcola l'integrale approssimato di Y tramite il metodo trapezoidale con spaziatura unitaria. La grandezza di Y determina la dimensione lungo cui integrare:

  • Se Y è un vettore, trapz(Y) è l'integrale approssimato di Y.

  • Se Y è una matrice, trapz(Y) integra su ciascuna colonna e restituisce un vettore riga dei valori di integrazione.

  • Se Y è un array multidimensionale, trapz(Y) integra sulla prima dimensione la cui grandezza non è uguale a 1. La grandezza di questa dimensione diventa 1, mentre le grandezze delle altre dimensioni rimangono invariate.

esempio

Q = trapz(X,Y) integra Y rispetto alle coordinate o alla spaziatura scalare specificata da X.

  • Se X è un vettore di coordinate, length(X) deve essere uguale alla grandezza della prima dimensione di Y la cui grandezza non è uguale 1.

  • Se X è una spaziatura scalare, trapz(X,Y) è equivalente a X*trapz(Y).

esempio

Q = trapz(___,dim) integra lungo la dimensione dim utilizzando una qualsiasi delle sintassi precedenti. È necessario specificare Y, mentre la specifica di X è opzionale. Se si specifica X, può essere uno scalare o un vettore di lunghezza pari a size(Y,dim). Ad esempio, se Y è una matrice, trapz(X,Y,2) integra ciascuna riga di Y.

esempio

Esempi

comprimi tutto

Calcolare l'integrale di un vettore in cui la spaziatura tra i punti di dati è pari a 1.

Creare un vettore numerico di dati.

Y = [1 4 9 16 25];

Y contiene i valori delle funzioni per f(x)=x2 nel dominio [1, 5].

Utilizzare trapz per integrare i dati con la spaziatura unitaria.

Q = trapz(Y)
Q = 
42

Questa integrazione approssimativa produce un valore di 42. In questo caso, la risposta esatta è leggermente inferiore, 4113. La funzione trapz sovrastima il valore dell'integrale perché f(x) è concava verso l'alto.

Calcolare l'integrale di un vettore in cui la spaziatura tra i punti di dati è uniforme, ma non uguale a 1.

Creare un vettore dominio.

X = 0:pi/100:pi;

Calcolare il seno di X.

Y = sin(X);

Integrare Y utilizzando trapz.

Q = trapz(X,Y)
Q = 
1.9998

Quando la spaziatura tra i punti è costante, ma non uguale a 1, un'alternativa alla creazione di un vettore per X è quella di specificare il valore scalare della spaziatura. In questo caso, trapz(pi/100,Y) equivale a pi/100*trapz(Y).

Integrare le righe di una matrice in cui i dati hanno una spaziatura non uniforme.

Creare un vettore di coordinate x e una matrice di osservazioni che avvengono a intervalli irregolari. Le righe di Y rappresentano i dati di velocità rilevati ai tempi contenuti in X, per tre prove diverse.

X = [1 2.5 7 10];
Y = [5.2   7.7   9.6   13.2;
     4.8   7.0  10.5   14.5;
     4.9   6.5  10.2   13.8];

Utilizzare trapz per integrare ciascuna riga in modo indipendente e trovare la distanza totale percorsa in ogni prova. Poiché i dati non vengono valutati a intervalli costanti, specificare X per indicare la spaziatura tra i punti di dati. Specificare dim = 2 poiché i dati si trovano nelle righe di Y.

Q1 = trapz(X,Y,2)
Q1 = 3×1

   82.8000
   85.7250
   82.1250

Il risultato è un vettore colonna dei valori di integrazione, uno per ogni riga di Y.

Creare una griglia di valori del dominio.

x = -3:.1:3; 
y = -5:.1:5; 
[X,Y] = meshgrid(x,y);

Calcolare la funzione f(x,y)=x2+y2 sulla griglia.

F = X.^2 + Y.^2;

trapz integra i dati numerici piuttosto che le espressioni funzionali; quindi, in generale, non è necessario conoscere l'espressione per utilizzare trapz su una matrice di dati. Nei casi in cui l'espressione funzionale è nota, è possibile invece utilizzare integral, integral2 o integral3.

Utilizzare trapz per approssimare l'integrale doppio

I=-55-33(x2+y2)dxdy

Per eseguire integrazioni doppie o triple su un array di dati numerici, annidare le chiamate di funzione a trapz.

I = trapz(y,trapz(x,F,2))
I = 
680.2000

trapz esegue prima l'integrazione su x, producendo un vettore colonna. Poi, l'integrazione su y riduce il vettore colonna a uno scalare singolo. trapz sovrastima leggermente la risposta esatta di 680 perché f(x,y) è concavo verso l'alto.

Argomenti di input

comprimi tutto

Dati numerici, specificati come vettore, matrice o array multidimensionale. Per impostazione predefinita, trapz integra lungo la prima dimensione di Y la cui grandezza non è uguale a 1.

Tipi di dati: single | double
Supporto numeri complessi:

Spaziatura tra i punti, specificata come 1 (predefinita), spaziatura scalare uniforme o vettore di coordinate.

  • Se X è uno scalare, allora specifica una spaziatura uniforme tra i punti di dati e trapz(X,Y) è equivalente a X*trapz(Y).

  • Se X è un vettore, allora specifica le coordinate x per i punti di dati e length(X) deve avere la stessa grandezza della dimensione di integrazione in Y.

Tipi di dati: single | double

Dimensione lungo la quale operare, specificata come scalare intero positivo. Se non si specifica la dimensione, per impostazione predefinita si considera la prima dimensione dell'array la cui grandezza non è uguale a 1.

Considerare un array di input a due dimensioni, Y:

  • trapz(Y,1) opera sugli elementi successivi nelle colonne di Y e restituisce un vettore riga.

    trapz(Y,1) column-wise computation

  • trapz(Y,2) opera sugli elementi successivi nelle righe di Y e restituisce un vettore colonna.

    trapz(Y,2) row-wise computation

Se dim è maggiore di ndims(Y), trapz restituisce un array di zeri della stessa grandezza di Y.

Ulteriori informazioni

comprimi tutto

Suggerimenti

  • Utilizzare trapz e cumtrapz per eseguire integrazioni numeriche su insiemi di dati discreti. Utilizzare invece integral, integral2 o integral3 se è disponibile un'espressione funzionale per i dati.

  • trapz riduce a 1 la grandezza della dimensione su cui opera e restituisce solo il valore di integrazione finale. cumtrapz restituisce inoltre i valori di integrazione intermedi, conservando la grandezza della dimensione su cui opera.

Funzionalità estese

espandi tutto

Cronologia versioni

Introduzione prima di R2006a