Algoritmi in C++ (seconda parte)

Documenti analoghi
Algoritmi in C++ (prima parte)

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

Programmazione per competenze del corso Matematica, Quinto anno

UNIVERSITÀ DEGLI STUDI DI PAVIA FACOLTÀ DI INGEGNERIA. Matlab: esempi ed esercizi

LICEO SCIENTIFICO STATALE G. MARCONI FOGGIA

Esercizio 1. Esercizio 2

Equazioni, funzioni e algoritmi: il metodo delle secanti

Contenuti del programma di Matematica. Classe Terza

SIMULAZIONE - 29 APRILE QUESITI

Calcolo Numerico Informatica Manolo Venturin A.A Guida all esame

la velocità degli uccelli è di circa (264:60= 4.4) m/s)

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I Sessione ordinaria

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

Integrazione Numerica. Teoria ed Esempi

x =0 x 1 x 2 Esercizio (tratto dal Problema 1.4 del Mazzoldi)

Le Derivate. Appunti delle lezioni di matematica di A. Pisani Liceo Classico Dante Alighieri

APPLICAZIONI DEL CONCETTO DI DERIVATA

LIMITI E DERIVATE DI UNA FUNZIONE

METODO DI CAVALIERI-SIMPSON (o delle parabole) (per il calcolo approssimato 1 di integrali definiti)

Un serbatoio ha la stessa capacità del cilindro di massimo volume inscritto in una sfera di raggio 60 cm. Quale è la capacità in litri del serbatoio?

Programma svolto di Matematica Classe: 5^A MM

Per il progetto di una piscina, un architetto si ispira alle funzioni f e g definite, per tutti gli x reali, da:

Programmazione per Obiettivi Minimi. Matematica Primo anno

a) Determinare il dominio, i limiti agli estremi del dominio e gli eventuali asintoti di f. Determinare inoltre gli zeri di f e studiarne il segno.

Universita degli Studi di Ancona - Facolta di Ingegneria Laurea in Ing. Elettronica (VO) Ing. Informatica e Automatica - Ing. delle Telecomunicazioni

ESAME DI STATO DI LICEO SCIENTIFICO CORSO SPERIMENTALE P.N.I Sessione suppletiva

(x B x A, y B y A ) = (4, 2) ha modulo

Fondamenti di Informatica T-1 Modulo 2

Raccolta degli esercizi svolti in aula

Programmazione Dipartimento Area Scientifica T. Rossi A.S. 2015/2016

2. SIGNIFICATO FISICO DELLA DERIVATA

Istituto d Istruzione Superiore A. Tilgher Ercolano (Na)

LA CIRCONFERENZA e IL CERCHIO

(Per scaricare il programma: cercare su Google download EffeDiX )

Problema ( ) = 0,!

Conoscenze. L operazione di divisione (la divisione di due polinomi) - La divisibilità fra polinomi (la regola di Ruffini, il teorema. del resto.

CALENDARIO BOREALE 1 EUROPA 2015 QUESITO 1

Analisi Matematica I per Ingegneria Gestionale, a.a Scritto del secondo appello, 1 febbraio 2017 Testi 1

PNI SESSIONE SUPPLETIVA QUESITO 1

PROGRAMMAZIONE GENERALE MATEMATICA-INFORMATICA a.s

IL TANGRAM. Il quadrato della saggezza. Il tangram e un' antica invenzione cinese e forse il più antico puzzle di carattere geometrico.

determinare le coordinate di P ricordando la relazione che permette di calcolare le coordinate del punto medio di un segmento si

ISTOGRAMMI E DISTRIBUZIONI:

Ellisse. DEF: "il luogo dei punti la cui somma delle distanze da due punti dati detti fuochi. è costante"; CONSIDERAZIONI:

Problemi, algoritmi e oggetti

Capitolo 3 RADICI DI EQUAZIONI NON LINEARI CON MATHCAD

Le derivate parziali

CLASSIFICAZIONE DELLE CONICHE AFFINI

La codifica digitale

3. Segni della funzione (positività e negatività)

Distribuzioni di probabilità

ITCG Sallustio Bandini

LE RETTE PERPENDICOLARI E LE RETTE PARALLELE Le rette perpendicolari Le rette tagliate da una trasversale Le rette parallele

Cosa vuol dire misurare l'area di una figura piana a contorno curvilineo?

Integrazioni al corso di Economia Politica (anno accademico ) Marianna Belloc

Calcolo delle derivate

PNI 2014 SESSIONE STRAORDINARIA - QUESITI QUESITO 1

Esame di maturità scientifica, corso di ordinamento a. s

Scheda elaborata dalla prof.ssa Biondina Galdi Docente di Matematica

rapporto tra l'incremento della funzione e l' incremento corrispondente della

Equazione implicita della circonferenza. b= 2 c= 2 2 r 2

1. Traiettorie Determiniamo le equazioni delle due rette su cui si muove ciascuna nave. ( )

Anno 4 Matrice inversa

(1;1) y=2x-1. Fig. G4.1 Retta tangente a y=x 2 nel suo punto (1;1).

PROIEZIONI ORTOGONALI: SEZIONI CONICHE

SESSIONE ORDINARIA 2007 CORSO DI ORDINAMENTO SCUOLE ITALIANE ALL ESTERO - AMERICHE

Problemi di massimo e minimo

Funzioni implicite - Esercizi svolti

A T T E N Z I O N E. Ministero dell Istruzione, dell Università e della Ricerca

Analisi delle curve di titolazione

PNI 2013 SESSIONE STRAORDINARIA - QUESITI QUESITO 1

VETTORI E SCALARI DEFINIZIONI. Si definisce scalare una grandezza definita interamente da un solo numero, affiancato dalla sua unità di misura.

Funzioni di secondo grado

PROGRAMMAZIONE III Geometri. ORGANIZZAZIONE MODULARE (Divisa in unità didattiche) MODULO TITOLO DEL MODULO ORE PREVISTE A Richiami di algebra 30

Gli enti geometrici fondamentali

CAMPO ELETTRICO. F r e = q E r. Newton ;

Equazioni Polinomiali II Parabola

PROGRAMMA di MATEMATICA A. S. 2015/16 PRIVATISTI CLASSE PRIMA Aritmetica: Gli insiemi numerici N, Z, Q con le operazioni e le proprietà.

Punti nel piano cartesiano

IGiochidiArchimede-SoluzioniBiennio 23 novembre 2005

Programma di matematica classe Prima

Capitolo Calcoli di equazioni

Sintesi degli argomenti di fisica trattati (parte uno)

Programmazione Matematica classe V A. Finalità

Breve formulario di matematica

EQUAZIONE DELLA RETTA

Quali condizionisi si possono richiedere sulla funzione interpolante?

Funzioni iperboliche - Wikipedia

Transcript:

Algoritmi in C++ (seconda parte)

Introduzione Obiettivo: imparare a risolvere problemi analitici con semplici programmi in C++. Nella prima parte abbiamo imparato: generazione di sequenze di numeri casuali metodi per generare numeri casuali con una distribuzione di probabilità descritta da una funzione (uniforme, gaussiana, esponenziale...) qualche funzionalità di ROOT per creare i grafici degli istogrammi delle distribuzioni Problemi che affronteremo in questa lezione: ricerca degli zeri di una funzione integrazione numerica di una funzione ricerca degli estremanti di una funzione LabInfoII - Lezione4 2

Ricerca degli zeri di una funzione LabInfoII Lezione4 3

Zeri di una funzione Trovare numericamente gli zeri di funzioni Assumiamo funzioni regolari (continue su un compatto) Consideriamo funzioni con un solo zero nell'intervallo di studio Utilizziamo come esempio la funzione x =~ 0.693147 LabInfoII - Lezione4 4

Il metodo della bisezione Si dimezza l'intervallo x che contiene lo zero finchè non è minore della precisione che interessa La funzione è approssimata all'ordine zero L'intervallo che contiene lo zero si riconosce controllando la concordanza delle y Si restituisce il punto medio dell'intervallo dopo un certo numero di iterazioni LabInfoII - Lezione4 5

La bisezione ricorsiva L'algoritmo è ricorsivo, cioè ad ogni iterazione si ripete la stessa procedura Si può implementare sotto forma di funzione ricorsiva, cioè che richiama se stessa Per interrompere la ricorsione si mette un if di controllo LabInfoII - Lezione4 6

Il metodo delle secanti Si ricerca lo zero nell'intervallo [x 0,x 1 ]. Si trova lo zero della retta secante passante per i punti (x 0,y 0 ) e (x 1,y 1 ). RETTA SECANTE Indichiamo con x 2 lo zero della secante e si ripete la procedura precedente usando i punti (x 2,y 2 ) e (x 1,y 1 ). LabInfoII - Lezione4 7

Il metodo delle secanti Ci si avvicina al punto di zero sfruttando un'approssimazione della derivata della funzione La derivata viene calcolata come la retta per gli estremi dell'intervallo di studio (corda) Il nuovo punto più vicino allo zero è dato dall'intersezione della corda con l'asse x La formula per il punto successivo è: punto di partenza nella direzione data dal rapporto incrementale, verso opposto alla y La funzione è ricorsiva LabInfoII - Lezione4 8

Il metodo delle tangenti (Newton) Se si conosce in maniera analitica la funzione f(x) e la sua derivata prima f'(x)? La tangente alla curva LabInfoII - Lezione4 9

Esercizi Esercizio 1: scrivere un programma che calcoli trovi lo zero della funzione f(x) con le tecniche descritte, alla precisione di 1/10,000 scrivendo gli algoritmi che trovano gli zeri come funzioni del C++ Esercizio 2: modificare la funzione della bisezione in modo che calcoli una volta sola il valore di f in ogni punto considerato Esercizio 3: Calcolare la radice cubica di un numero qualsiasi col metodo della bisezione LabInfoII - Lezione4 10

Integrazione numerica di una funzione LabInfoII Lezione4 11

Integrazione numerica Calcolare numericamente integrali di funzioni Assumiamo funzioni regolari (continue su un compatto) Consideriamo funzioni definite positive (l'integrale è definito a meno di una costante) Utilizziamo come esempio la funzione L'integrale di questa funzione, nell'intervallo [0, 1] è circa: 1.4597 LabInfoII - Lezione4 12

Il metodo montecarlo Contare il numero di punti che cascano al di sotto di una funzione, in proporzione al totale y1 y2 x1 x2 Si generano uniformemente coppie di numeri casuali sull'asse x ed y. Se la coppia di punti si trova sotto la linea (x, f(x)) si incrementa il conto dei punti sotto la curva. La frazione di x presi in un certo intervallo dipende dall'area di f(x) in quell'intervallo. LabInfoII - Lezione4 13

Il metodo dei rettangoli Approssima l'integrale con la somma delle aree di rettangoli costruiti con il valore della funzione nel punto medio dell'intervallo. La funzione è approssimata all'ordine zero. L'intervallo è diviso in nbins passi. La lunghezza di un passo è step, l'area del rettangolo è base x altezza. L'integrale è la somma delle aree. Non è necessario conosce il massimo della funzione. LabInfoII - Lezione4 14

Il metodo dei trapezi Approssima l'area della funzione con la somma delle aree di trapezi costruiti con due estremi della funzione. La funzione è approssimata al primo ordine. La singola area è la superficie del trapezio. LabInfoII - Lezione4 15

Il metodo di Simpson Approssima l'area della funzione con la somma delle aree di parabole costruite con due estremi della funzione ed il loro punto medio. La funzione è approssimata al secondo ordine. a a m m b b La singola area è l'integrale della parabola per i tre punti, che risulta: LabInfoII - Lezione4 16

Esercizi Esercizio 4: scrivere un programma che calcoli l'integrale della funzione f(x) con le varie tecniche descritte, alla precisione di 1/10,000 scrivendo gli algoritmi che calcolano gli integrali come funzioni del C++ confrontare le prestazioni dei vari algoritmi al variare del numero di iterazioni effettuate (precisione, velocità) LabInfoII - Lezione4 17

Ricerca degli estremanti di una funzione LabInfoII Lezione4 18

Estremanti di una funzione Trovare numericamente estremanti di funzioni Assumiamo funzioni regolari (continue su un compatto) Consideriamo funzioni con un solo minimo nell'intervallo di studio. Utilizziamo come esempio la funzione X = - 3.65 LabInfoII - Lezione4 19

Il metodo della trisezione Per trovare il minimo di una funzione servono abbastanza punti da capirne la pendenza. L'intervallo si stringe eliminando il tratto dove il minimo di sicuro non c'è. x0 x2 x3 x1 La funzione è ricorsiva. A seconda di f(x2)>f(x3) si sceglie su che sotto-intervallo iterare. Le differenze sono fatte con segno. LabInfoII - Lezione4 20

Il metodo della sezione aurea Metodo più intelligente per tripartire l'intervallo in cui si cerca il minimo. Si consideri per comodità l'intervallo [0,1], suddiviso in tre parti dipendenti dal valore di r. Come per la trisezione, all'iterazione successiva si considera [0,r] se f(1-r)<f(r) viceversa si sceglie l'intervallo [1-r,1] All'iterazione successiva si vuole riciclare uno dei punti considerati in quella precedente, perciò si impone la condizione: r>0 0 1 r r 1 LabInfoII - Lezione4 21

Il metodo della sezione aurea La velocità dipende dal tempo di calcolo del valore della funzione. Riutilizzando uno dei punti generati in un ciclo successivo, si risparmia (molto) tempo. Bisogna scegliere correttamente la dimensione dei sotto-intervalli. x0 x3 x2 x1 C D B A B=0.618*A LabInfoII - Lezione4 22

Attenzione Il C++ non vede la funzione, conosce solo i punti dove la valuta ciclo precisione 0 1 x 1 0.62 x 2 0.38 x 3 0.24 x 4 0.15 x 5 0.09 x LabInfoII - Lezione4 23

Esercizi Esercizio 5: trovare il minimo della funzione f(x) con il metodo della trisezione e della sezione aurea, con la precisione di 1/10,000 scrivendo gli algoritmi che trovano gli estremanti come funzioni del C++ confrontare i due algoritmi: quale dei due è più veloce? (se non si vedono differenze, provate a rallentare la funzione f(x), introducendo il comando sleep(1) prima del return) LabInfoII - Lezione4 24