Laboratorio 2 Grafici di funzione in Scilab Metodo di Bisezione

Documenti analoghi
Esercitazione 2. Prima parte

Esercitazione 2. Prima parte

Esercitazione 4. F (x) = x + log x. Prima parte. La definizione che segue è una realizzazione del metodo ad un punto definito dalla funzione h.

Esercizi. 1. Disegnare il grafico qualitativo della seguente funzione:

Esercitazione 4. Prima parte. v($ + 1) = g(v($))

Esercitazione 4. Prima parte. La definizione che segue è una realizzazione del metodo ad un punto definito dalla funzione h. 1

Equazioni e sistemi non lineari

Equazioni e sistemi non lineari

Scale Logaritmiche. Matematica con Elementi di Statistica, Anna Torre a.a

Trasformazioni Logaritmiche

Scale Logaritmiche. Matematica con Elementi di Statistica a.a. 2015/16

Laboratorio di Matematica Computazionale A.A Lab. 4

Scilab: La Grafica. Corso di Informatica CdL: Chimica. Claudia d'amato.

Laboratorio di Matematica Computazionale A.A Lab. 3

Matlab permette di disegnare facilmente dei grafici La prima cosa da fare è costruire una nuova figura :

Equazioni non lineari. Gabriella Puppo

Calcolo Numerico I - A.A Laboratorio 3

Equazioni e sistemi non lineari

Laboratorio 12 Equazioni differenziali ordinarie - Soluzione

Uso avanzato di MATLAB

Esercizio 1. Esercizio 2

Esercizio 1. Errori di cancellazione

Laboratorio di Sperimentazioni di Fisica I MOD A. 14 ottobre 2009

Laboratorio 2 Funzioni, Plot e aritmetica floating point

Utilizzo di index() per determinare la colonna delle x

La formattazione dei dati

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Esercizi di autovalutazione - Matlab Metodi Numerici con Elementi di Programmazione A.A

Introduzione. Corso di Metodi Numerici. 06 Marzo 2019

Laboratorio 3-30 settembre 2005

Laboratorio di INFORMATICA. 15 ottobre 2009

Università degli Studi di Ferrara

1 Esercizi di Matlab. L operatore : permette di estrarre sottomatrici da una matrice assegnata. Vediamo alcuni esempi.

Grafico della funzione y = sen x

SCILAB: Analisi degli errori

Laboratorio 2. Calcolo simbolico, limiti e derivate. Metodo di Newton.

Studio di funzione. Studio di funzione: i passi iniziali

Rappresentazione di curve in tre dimensioni

La funzione esponenziale e logaritmica

Prove d esame Esercizi con Matlab

1. Si scriva una function Matlab che implementa il seguente metodo di punto fisso

Rappresentazione di Dati: Scala lineare Scala logaritmica. Grafici Lin Lin Grafici Lin Log Grafici Log Log

TRE Università degli Studi

Esercitazione n 2 Costruzione di grafici

Corso di Laurea in Ingegneria Energetica POLINOMI IN MATLAB. Bologna, 13 marzo Fondamenti di Informatica L a.a

Laboratorio di Matematica Computazionale A.A Lab. 4

Piano cartesiano e Retta

Laboratorio di matematica le rette e le parabole con excel

Variabile, costante ed espressione

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3

Università degli Studi di Ferrara

1 Esercizi 22. , ossia s : x y = 4. Verifichiamo che il nuovo sistema è equiverso: = 1 ( ) 1 1. ) 2 (1 + 1) = 1 2 = 1 > 0, dunque equiverso.

Esercitazione 6. Istruzioni trattate: poly, ones, horner, gcf, gca.

Introduzione al MATLAB c Parte 2

Laboratorio 10 Metodi Bisezione e Newton

Grafici. Un programma grafico inizia con un comando che chiude una eventuale finestra grafica precedente: close

Università di Venezia Ca Foscari. Corso di Laurea in Informatica. Insegnamento di Calcolo Numerico Prof. F. Sartoretto. Test del 16 maggio 2007

Calcolo del fattore di convergenza

Esercitazione 3. Prima parte

1 Calcoli numerici e algebrici

Compito di Matematica I A.A.2008/09 - C.d.L. in Chimica 16 Novembre 2009 Prof. Elena Comparini

Esercitazione n 2. Costruzione di grafici

Soluzione di Equazioni non lineari

MATLAB:Metodi Numerici per zeri di funzioni.

Introduzione a MATLAB

Per la descrizione dei comandi MATLAB verranno usate le seguenti convenzioni.

Derivazione numerica. Introduzione al calcolo numerico. Derivazione numerica (II) Derivazione numerica (III)

Introduzione al Calcolo Scientifico - A.A

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 3-15/3/2018

Ricevimento del 2 Febbraio 2011

Elementi di Calcolo Scientifico per l Ingegneria A.A

Esame di Calcolo Numerico per Informatica Prof. S. De Marchi Padova, 11 dicembre x k 1 x k 2

Capitolo 2. Equazioni non lineari. 2.1 Metodo di bisezione. 2.2 Ordine dei metodi

ESERCITAZIONE MATLAB

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Esercitazione 5. Prima parte

Analisi Matematica II Corso di Ingegneria Gestionale Compito del (x y) log

Esercizi proposti di Analisi Numerica

CLEAI, matematica generale: esercizi svolti #2

Laboratorio di Matematica Computazionale A.A Lab. 3

Esercitazione 5. Prima parte

Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro;

Lezione 5, 5/11/2014

Esercitazione

ISTRUZIONI PER INIZIARE

f(x) = x e x, prendere come intervallo iniziale [0, 1] e fissare come precisione ε = 10 8.

Laboratorio di Calcolo Numerico

Calibrazione di modelli matematici

Lo studio delle funzioni razionali fratte

Correzione secondo compitino, testo B

1 Esercizi relativi al Capitolo 1

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Metodi di Newton e Punto fisso

Complementi di Matematica A.A Laboratorio 10

Laboratorio di Calcolo Numerico Laboratorio 3: Algoritmi stabili e instabili, Bisezione

1 Cambiamenti di riferimento nel piano

Transcript:

Laboratorio Grafici di funzione in Scilab Metodo di Bisezione Introduciamo i grafici di funzione in Scilab, attraverso un semplice esercizio. Esercizio Grafico di funzioni.. Definire le seguenti variabili x: vettore di estremi e con passo. -->x = [:.:]; y = e x -->y=exp(x); fun= exp(x) -->fun= exp(x) fun = exp(x). Di che tipo sono gli oggetti x, y e fun? Che tipo di oggetto è eval(fun)? x e y sono dei vettori righa: il primo per come è stato scritto, il secondo perchè ottenuto valutando la funzione exp su un vettore riga. fun è una stringa di caratteri. Il comando eval valuta la stringa di caretteri passata in input. Poichè fun è una stringa contenente la variabile x, sarà valutata sul vettore x (che deve prima essere definito). -->clear x -->eval(fun)!--error undefined variable : x at line of function %eval called by : line 7 of function eval called by : eval(fun) -->x = [:.:]; -->yf = eval(fun); Osserviamo che la variabile in input di eval deve essere una stringa. Infatti scrivere: -->eval(x)!--error undefined variable : %c_a_s at line of function eval called by : eval(x)

ci porta ad un errore, mentre va bene: -->eval( x );. Usando le variabili precedentemente definite, disegnare il grafico della funzione y = e x sull intervallo [, ]. Per disegnare il grafico di una funzione reale di variabile reale si utilizza il comando plotd. Il modo più semplice per utilizzarlo è passargli due vettori x e y delle stesse dimensioni contenenti rispettivamente le ascisse e le ordinate dei punti del grafico (il grafico viene disegnato unendo tali punti con dei segmenti). -->scf(); -->plotd(x,y) Con i comandi sopra riportati otteniamo: 6 8 6 7 8 9 Il comando scf(n), dove n è un numero intero non negativo apre l n-esima finestra grafica. Se non è aperta alcuna finestra grafica e digitiamo il comando plot, viene automaticamente aperta la finestra grafica numero. Un ulteriore comando plotd disegnerà il nuovo grafico sulla stessa finestra grafica, senza cancellare il grafico precedentemente disegnato. Proviamo ad esempio a disegnare la funzione y = e x. Vogliamo usare il colore blu, per distinguere il nuovo grafico dal precedente (in nero).

-->plotd(x,-eval(fun),style=) Otteniamo: - - - 6 7 8 9 style=z, dove z è un intero, indica con quale stile deve essere disegnato il grafico. Se z usa dei simboli per disegnare il grafico (z= equivale a disegnare usando dei punti, - per +, - per *,... ). Se z > viene cambiato il colore della linea: per il nero, per il blu, per il verde,.... Se l opzione style non viene espressamente usata il grafico viene disegnato usando una linea nera (come abbiamo visto per il primo grafico).. Disegnare il grafico in scala semilogaritmica (logaritmica solo per le ordinate) della funzione y = e x sull intervallo [, ]. È possibile prevedere come sarà il grafico in scala semilogaritmica della funzione della funzione y = e x? Verificare la risposta tracciando sulla medesima finestra le due funzioni utilizzando colori diversi per i due grafici. Puliamo la finestra grafica: -->clf(); Il comando clf(n) cancella la finestra grafica n-esima. Se tale finestra non è aperta, viene automaticamente generata. clf (senza specificare alcun numero) cancella la finestra grafica attiva. Per disegnare il grafico in scala semilogaritmica usiamo l opzione logflag: -->plotd(x,y,style=,logflag= nl ) e disegniamo inoltre la griglia:

-->xgrid() Otteniamo: 6 7 8 9 L opzione logflag deve essere seguita da una stringa di due caratteri. Il primo per indicare la scala per le ascisse, il secondo per quella delle ordinate. Viene usato il carattere n per indicare l usuale scala ( normale ) ed il carattere l per indicare la scala logaritmica. Avendo noi richiesto logflag= nl, abbiamo indicato a Scilab di disegnare il grafico usando la scala logaritmica per le sole ordinate, cioè quanto ci è richiesto dall esercizio. Otteniamo evidentemente una retta. Questo perchè stiamo disegnando log(y) = log(e x ) = xlog(e), cioè una retta. Il comando xgrid(n), con n, disegna una griglia di colore n (=nero, =blu, =rosso,... ). xgrid equivale a xgrid() e a xgrid(). Il comando xgrid(-) serve per togliere la griglia dal grafico. Poichè log(e x ) = x log(e), disegnando in scala semilogaritmica la funzione y = e x, otterremo una retta con pendenza doppia rispetto alla retta precedentemente disegnata. Verifichiamo quanto appena detto: -->plotd(x,exp(*x),style=,logflag= nl ) Otteniamo:

9 8 7 6 6 7 8 9 Aggiungiamo alla figura il titolo Grafico di exp(x) e di exp(x), la dicitura Scala lineare per l asse x e Scala logaritmica per l asse y: -->xtitle( Grafico di exp(x) e di exp(x), Scala lineare, Scala logaritmica ) Scala logaritmica Grafico di exp(x) e di exp(x) 9 8 7 6 Scala lineare 6 7 8 9

Il comando xtitle( s, s, s ) scrive la stringa s in alto al centro (titolo del grafico), s alla fine dell asse x (etichetta per l asse x) ed s alla fine dell asse y (etichetta per l asse y). Se volessimo ad esempio scrivere solo un etichetta per l asse y, dovremmo passare come s ed s la stringa vuota. Se invece volessimo scrivere solo l etichetta per l asse x dovremmo passare come s la stringa vuota (non dobbiamo obbligatoriamente passare la stringa successiva s). Avremmo potuto disegnare i due grafici con un solo comando, questo ci consente di aggiungere una legenda: -->clf -->plotd(x,[exp(x);exp(*x)],style=[,],logflag= nl,leg= exp(x)@exp(*x) ) -->xgrid -->xtitle(, Scala lineare, Scala logaritmica ) Scala logaritmica 9 8 7 6 Scala lineare 6 7 8 9 exp(x) exp(*x) Attenzione a come devono essere passate le ordinate per disegnare più grafici insieme: x può essere un vettore riga o colonna, ma le ordinate di ciascun grafico devono corrispondere ad una colonna della matrice delle ordinate. In alternativa potevamo anche digitare: -->plotd([x,x ],[exp(x ),exp(*x )],style=[ ],logflag= nl,leg= exp(x)@exp(x) ) oppure: 6

-->plotd(x,y,style=,logflag= nl ); -->plotd(x,exp(*x),style=,logflag= nl ); -->legends(["exp(x)";"exp(*x)"],[,],"ul") Il comando legends prevede: un vettore colonna contenente le stringhe per la legenda, un vettore riga contenente lo stile (l opzione style del plot) e (opzionale) la posizione della legenda (ul per upper-left, ur per upper-right, ll per lower-left, lr per lower-right). Se la posizione non viene specificata, la legenda viene posizionata usando il mouse. Osserviamo che i due grafici potevano anche essere disegnati utilizzando un solo comando (come in precedenza). NOTA BENE Supponiamo di voler disegnare il grafico della funzione y = /x, sull intervallo [, ], allora inseriamo i seguenti comandi: --> x = [:.:]; --> y =./ x; // Nota la presenza dello spazio tra e.!!! --> plotd(x,y) Tali comandi garantiscono la rappresentazione della funzione desiderata. Si noti tuttavia che se in luogo di: --> y =./ x; o dell equivalente: --> y = ()./ x; si esegue il seguente comando: --> y =./ x; // senza spazio tra e. NON si ottiene la funzione desiderata. In questo caso il punto viene attribuito alla cifra per rappresentare il numero decimale. e y diventa il vettore tale per cui x y = se x è un vettore riga (se invece x è un vettore colonna, y viene assunto come quel vettore riga tale per cui y x = ). 7

Esercizio Metodo di bisezione. Si consideri il problema della ricerca di zeri dell equazione non lineare f(x) =, dove f è definita da: f(x) := e x x sin(x), x [, ]. (). Disegnare il grafico della funzione e la retta y = in modo da evidenziare le due soluzioni dell equazione.. Il metodo di bisezione è applicabile per calcolare entrambe le radici? Motivare la risposta. Applicare il metodo, quando possibile, con tolleranza pari a.e-, utilizzando la funzione qssbisez.sci. Si apra con scipad tale funzione per avere maggiori informazioni sul suo utilizzo (leggendo i commenti all inizio del programma). Verificare che il numero di iterazioni effettuate dal programma rispetta la stima teorica. 8