wikipaom2015:lez05
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| wikipaom2015:lez05 [2015/04/17 16:40] – [- quad-qag] 168903 | wikipaom2015:lez05 [2015/08/05 16:43] (versione attuale) – 202447 | ||
|---|---|---|---|
| Linea 1: | Linea 1: | ||
| + | ====== Lezione 5: wxMaxima: Integrazione definita, ossia Quadratura gaussiana====== | ||
| + | In questa lezione abbiamo analizzato, con l' | ||
| + | |||
| + | ===== 5.1 Comandi utilizzati in wxMaxima ===== | ||
| + | |||
| + | Sono stati introdotti nuovi comandi per un utilizzo più efficace del manipolatore algebrico. | ||
| + | |||
| + | ==== utilizzo del comando := ==== | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | Con questo comando è possibile **definire una funzione**. La funzione richiede di esplicitare dei parametri, | ||
| + | |||
| + | f(x) : x è semplicemente un segnaposto, dove il primo parametro passato alla funzione verrà sostituito ovunque trovi x dentro l’espressione. | ||
| + | |||
| + | |||
| + | Nel caso si avessero più parametri, questi vengono separati da delle virgole. | ||
| + | |||
| + | define | ||
| + | |||
| + | Questo comando permette di definire le funzioni con la **valutazione all’atto della definizione e non all’atto della chiamata.**\\ Perciò, se scrivo | ||
| + | |||
| + | a0:0\\ | ||
| + | f(x):= a0 + a1*x | ||
| + | |||
| + | il programma mi fornisce come output a0 + a1x.\\ Ma se invece digito | ||
| + | |||
| + | define (f(x), a0 + a1*x) | ||
| + | |||
| + | allora il manipolatore scrive a1x, poichè compie subito la valutazione. | ||
| + | expand | ||
| + | |||
| + | Permette di espandere la funzione in **somma di monomi e ne effettua la semplificazione.** | ||
| + | |||
| + | […. , ….] | ||
| + | |||
| + | Si tratta del comando **lista**. Se si vuole avere un **sistema di equazioni** all’interno del manipolatore si crea una lista di equazioni, dove ogni equazione è separata da una virgola.\\ | ||
| + | In generale una lista può contenere qualunque entità, anche altre liste. | ||
| + | |||
| + | (…) | ||
| + | |||
| + | Le parentesi tonde, a differenza delle quadre, denotano un **blocco**. | ||
| + | |||
| + | Per creare un ciclo di lista invece si deve creare un **costrutto do** | ||
| + | {{: | ||
| + | |||
| + | Il ciclo for permette di ripetere una data operazione più volte. | ||
| + | |||
| + | | ||
| + | |||
| + | **Estrae la lunghezza della lista** in esame, e il ciclo for costruisce un polinomio in cui la x è elevata a ciascuno dei termini della lista creata in precedenza. La lunghezza della lista è il numero degli elementi. | ||
| + | |||
| + | wxplot2d | ||
| + | |||
| + | Permette di **plottare la funzione**, ovvero graficarla. Con wx si indica che la figura è di tipo statico, ovvero che viene rappresentata sulla stessa interfaccia.\\ | ||
| + | Viene scritta in questo modo: | ||
| + | |||
| + | '' | ||
| + | |||
| + | ATTENZIONE: **non posso plottare una funzione che contiene parametri senza averli prima definiti** | ||
| + | |||
| + | | ||
| + | |||
| + | Permette di plottare la funzione **in una nuova finestra**, fuori dal foglio di lavoro. | ||
| + | |||
| + | | ||
| + | |||
| + | Permette di plottare la funzione lungo le 3 dimensioni. | ||
| + | |||
| + | limit | ||
| + | |||
| + | Svolge l’operazione di **limite**. | ||
| + | |||
| + | es) limit (f(x), x, inf) | ||
| + | |||
| + | | ||
| + | |||
| + | Rappresenta un **infinito reale positivo**. | ||
| + | |||
| + | append | ||
| + | |||
| + | Questo è il comando che permette di **accodare una funzione ad un’altra funzione**. | ||
| + | |||
| + | makelist | ||
| + | |||
| + | Si tratta del comando per la costruzione automatica di funzioni di lista. **Crea una lista scorrendo un indice i**. | ||
| + | |||
| + | Un esempio è: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | < | ||
| + | questo codice può essere copiaincollato da/a wxmaxima o fortran | ||
| + | </ | ||
| + | |||
| + | |||
| + | | ||
| + | |||
| + | Permette di effettuare l’**espansione in serie di Taylor**. | ||
| + | |||
| + | Un classico esempio generico sarebbe: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | | ||
| + | |||
| + | È la parola chiave che permette di creare una legenda. | ||
| + | Può ritornare utile impostare manualmente la legenda, creando una lista sul manipolatore algebrico. | ||
| + | {{: | ||
| + | |||
| + | Per convertire in una legenda un numero (ad esempio 1) in una stringa utile per la legenda si usa il comando di conversione in stringa denominato __**string**__. | ||
| + | |||
| + | | ||
| + | |||
| + | È una funzione di libreria che permette di effettuare l’**integrale in forma numerica con il metodo dei trapezi**. | ||
| + | |||
| + | |||
| + | ===== 5.2 Quadratura | ||
| + | Col termine **quadratura** si intende un' | ||
| + | **Si tratta di una forma numerica approssimata per calcolare rapidamente gli integrali di funzione.** | ||
| + | |||
| + | La quadratura gaussiana è una **stima**; non è una delle soluzioni più precise, salvo aumentando i punti di campionamento, | ||
| + | |||
| + | |||
| + | |||
| + | ===== 5.2.1 Quadratura a un punto di integrazione ===== | ||
| + | |||
| + | |||
| + | |||
| + | Si supponga di voler risolvere l’integrale normalizzato su un intervallo [-1,1] (dunque simmetrico rispetto all' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | $$ | ||
| + | G = \sum_{i=1}^n w_i f(x_i) | ||
| + | $$ | ||
| + | |||
| + | La scelta dei punti è totalmente arbitraria, ma se vengono usati i **punti di Gauss** si ottiene la stima migliore, ovvero l' | ||
| + | |||
| + | Si pensi alla funzione campione: | ||
| + | |||
| + | f(x)=a0+a1*x | ||
| + | |||
| + | e si immagini di volerla integrare fissato un punto x1 sull’ asse delle ascisse e un relativo peso w1. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | L’ implementazione attraverso il programma MAXIMA avverrà nel seguente modo: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | proseguendo con l’ algoritmo risolutivo non resta che calcolare G (cioè il risultato della nostra sommatoria), | ||
| + | Implementando: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | si noti che nel residuo sono presenti le variabili x1 w1 a0 a1 contemporaneamente. Sarà necessario inserire una lista di equazioni da risolvere in una apposita lista di incognite: | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | le equazioni sono state risolte attraverso | ||
| + | ===== 5.2.2 Integrazione gaussiana a due punti ===== | ||
| + | |||
| + | È possibile scrivere allo stesso modo un’integrazione a due punti. | ||
| + | Così si avranno due pesi per i due punti: x1, w1, x2, w2, ovvero si hanno 4 incognite in 4 equazioni. | ||
| + | |||
| + | Si parte da una funzione polinomiale che abbia 4 coefficienti su cui fare le derivate del residuo, perciò nel caso specifico sarà una funzione cubica. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Relegando il calcolo ai manipolatori algebrici si ha: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Il polinomio parallelo, secondo Gauss vale: | ||
| + | {{: | ||
| + | |||
| + | Si indaga nel seguito per quali scelte dei punti xi e dei pesi wi l’eguaglianza precedente valga esattamente, | ||
| + | Siccome la precedente eguaglianza deve valere per valori generici dei coefficienti " | ||
| + | {{: | ||
| + | |||
| + | dove tali equazioni devono essere associate all’equazione iniziale. | ||
| + | |||
| + | Definite le incognite che risolvono le equazioni e combinando le equazioni stesse si ottengono i valori delle incognite. | ||
| + | {{: | ||
| + | |||
| + | __Si verifica con facilità che l’equazione iniziale R=0 viene soddisfatta dalla scelta dei due pesi w1 e w2 e dei due punti di Gauss x1 e x2.__ | ||
| + | |||
| + | ** | ||
| + | In generale, la quadratura gaussiana prevede lo stesso approccio per n punti, e integra esattamente un polinomio di grado 2n-1.**\\ | ||
| + | I polinomi di gradi diversi da questi valori possono essere considerati casi particolari di quelli di grado superiore, per cui vengono integrati con il tipo di quadratura adatto a questi ultimi.\\ | ||
| + | es) 2 punti: polinomio di grado 3; quello di secondo grado è un caso particolare di quello di terzo, per cui uso comunque la quadratura a due punti. | ||
| + | |||
| + | Si osserva che, se l’integrale si estende tra valori generici a e b e non tra [-1,1], con opportuni cambi di variabile si può riportare l’intervallo di integrazione tra [-1,1], come richiesto dall’integrazione Gaussiana. | ||
| + | |||
| + | Infine **l’integrale doppio** può essere risolto tramite integrazione gaussiana poiché è definito come due integrali singoli concatenati. La soluzione è derivata dall’**integrazione a due punti sull’intervallo monodimensionale**: | ||
| + | Inoltre nell’integrale doppio tutti i **pesi** sono unitari, dato che la loro **somma deve essere uguale a 4**. | ||
| + | ===== 5.3 Esempi ===== | ||
| + | |||
| + | Per inizializzare una funzione del tipo f(x)=a0+a1*x su MAXIMA è possibile applicare vari metodi. | ||
| + | |||
| + | ==== 1) Assegnare a una variabile il valore di un’ espressione ==== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | |||
| + | (n.b. con questa procedura rimane inalterato il carattere di espressione). | ||
| + | |||
| + | Oppure è possibile mantenerne il carattere di funzione: | ||
| + | |||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== 2) Definire una funzione e valutarla a posteriori ==== | ||
| + | |||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== 3) Eseguire un cambio di variabile ==== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ==== 4) Definire una funzione a priori ==== | ||
| + | |||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | ===== *Bibliografia ===== | ||
| + | -A. Strozzi, Progettazione Assistita di Strutture Meccaniche | ||
| + | |||
| + | -Minimal Maxima | ||
| + | |||
| + | ~~DISCUSSION|Note di redazione~~ | ||
