Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


CALCOLO NUMERICO INTR, Dispense di Calcolo Numerico

CALCOLO NUMERICO INTRODUZIONE PRIMA PARTE

Tipologia: Dispense

2018/2019

Caricato il 25/03/2019

Smon
Smon 🇮🇹

4

(1)

5 documenti

1 / 33

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
ALCUNI ESEMPI DI
ALCUNI ESEMPI DI
ALGORITMI DI CALCOLO NUMERICO
ALGORITMI DI CALCOLO NUMERICO
La risoluzione di modelli matematici complessi richiede
spesso l’uso di metodi di calcolo approssimato:
calcolo “numerico”
Riferimenti Bibliografici:
L.M. Barone, E. Marinari, G. Organtini, F. Ricci-Tersenghi,
Programmazione Scientifica, Pearson Education,
Milano, 2006
G. Monegato, Fondamenti di Calcolo Numerico,
Libreria Editrice Universitaria Levrotto&Bella, Torino
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21

Anteprima parziale del testo

Scarica CALCOLO NUMERICO INTR e più Dispense in PDF di Calcolo Numerico solo su Docsity!

ALCUNI ESEMPI DI^ ALCUNI ESEMPI DI

ALGORITMI DI CALCOLO NUMERICOALGORITMI DI CALCOLO NUMERICO La risoluzione di modelli matematici complessi richiedespesso l’uso di metodi di

calcolo approssimato

calcolo “numerico”

Riferimenti Bibliografici:^ ƒ^ L.M. Barone, E. Marinari, G. Organtini, F. Ricci-Tersenghi,^ Programmazione Scientifica

, Pearson Education,

Milano, 2006 ƒ G. Monegato,

Fondamenti di Calcolo Numerico

Libreria Editrice Universitaria Levrotto&Bella, Torino

CALCOLO NUMERICO^ CALCOLO NUMERICO

‰^ Si usa quando:^ ƒ^ non

esistono

algoritmi esatti di risoluzione

, oppure

ƒ^ gli algoritmi esatti

non sono efficienti

(tempo, memoria): alto

costo computazionale ‰ Soluzione di problemi attraverso

algoritmi euristici o

approssimanti

ƒ^ Determinano soluzioni "approssimate" del problema ‰ Ad esempio, si basano su tecniche del tipo: ƒ^ discretizzazione

di domini continui in domini discreti

ƒ^ approssimazioni successive

=> metodi

iterativi

APPROSSIMAZIONI SUCCESSIVE^ APPROSSIMAZIONI SUCCESSIVE ‰^ valore iniziale V

(di primo tentativo) 0 ƒ^ formula iterativa => ottengo V

1

‰^ valore di secondo tentativo V

1

ƒ^ formula iterativa => ottengo V

2

‰^ valore di terzo tentativo V

2

....... L'algoritmo termina quando due valori consecutivi V

e Vi^ i+

sono^ "sufficientemente vicini"

ƒ^ | V^ i+

- V^ |<= i^

ε^

scarto assolutoscarto assoluto

ƒ^ | (V

- V) / V i+1 i

| <=^ ε i+

scartoscarto relativo

relativo

Il valore

ε^ rappresenta la precisione desiderata e vienestabilito arbitrariamente

Note:^ ƒ^ Il^

valore di primo tentativo

dovrebbe essere stimato nel

modo migliore possibile

(conoscenza del problema, ordine

di grandezza, segno, …) ƒ Se ogni successiva approssimazione è più vicina allarisposta corretta e la differenza tende a calare ad ognipasso, l'iterazione converge

(come capirlo su un numero

APPROSSIMAZIONI SUCCESSIVE^ APPROSSIMAZIONI SUCCESSIVE finito di iterazioni?)^ ƒ^ Non tutte le iterazioni convergono (divergenti) o^ convergono in modo soddisfacente per essere utili

CALCOLO DELLA RADICE QUADRATA^ CALCOLO DELLA RADICE QUADRATAEsempio

: ƒ R = 9 ƒ Q1 = 9/2 = 4.5 ƒ Q2 = (4.5 + 9/4.5)/2 = (6.5)/2 = 3.25 ƒ Q3=(3.25+9/(3.25))=(3.25+ 2.769)/2=(6.019)/2=3.0095 ƒ .......

Radice Quadrata: ALGORITMO IN C^ Radice Quadrata: ALGORITMO IN C^ #include <stdio.h>#include <math.h>#define MAX 1000#define EPS 0.00001double radice_q(double R){^ double Q, Qold;int i, fine=0;Qold=R/2;for (i=0; i<MAX && !fine; i++){

Q=(Qold + R/Qold)/2;if (abs((Q-Qold)/Q)<EPS)

fine=1; else Qold=Q;} if (i>=MAX)

printf("Numero iterazioni eccessivo\n"); return Q;}

ESEMPIO: seno() DI UN ANGOLO^ ESEMPIO: seno() DI UN ANGOLO ‰^ Dato un angolo X espresso in radianti, calcolare:

S = seno(X)

‰^ Sviluppo in Serie di Taylor:^3 X^ S = X^ −^ +3!^

57 X X^ −^ 5!^ 7!
+^ ...^ =^

Xi (^) (−1). 2 i^ +^1 (2 i +^ 1)!

∞ ∑ i =^0

⇒^ S^ =^

∞ T ∑ i i =^0

T =^ (−1) i^

2 i^ +^1 X (^) i (2 i +^ 1)!

i^ = −(−1) 2( iX (^) − 1 −1)+^1 ⋅^ (2( i − 1)^ +^ 1)!^

(^2) X =(2 i + 1)2 i^

= − Ti^ −^1 ⋅

(^2) X (^) (2 i + 1)2 i

SENO DI UN ANGOLO^ SENO DI UN ANGOLO

Si arresta lo sviluppo in serie dopo M termini,con M (<= MAXITER) tale che:Passo iterativo:^ ƒ^ Termine i-esimo:^ Ti = (-1)

i^ 2i+1^ X^ / (2i+1)!

i-1= -(-1)

2(i-1)+1(X^

/(2(i-1)+1)! ) *

2 X /((2i+1)2i)

2 = - X /((2i+1)2i )* T

i- se^ S

=^ (−1)

2 i^ +^1 MX i ∑( 2 i +^ 1)! i = 0

2 M^ +^1 X ≤(2 M^ +^ 1)!^

INVOCAZIONE^ INVOCAZIONE

Ad esempio: main(){^ double

v; printf("Dammi

x:^ "); scanf("%lf",

&v); printf("Seno

di^ %lf:

%lf^ (valore

atteso

%lf)\n",

v,^ seno(v),

sin(v));

}

EQUAZIONI: SOLUZIONI APPROSSIMATE^ EQUAZIONI: SOLUZIONI APPROSSIMATE^ ‰^ In problemi di ingegneria

(e anche talora di ingegneria

chimica…)

è necessario spesso trovare i valori delle

radici di un'equazione ‰ Per equazioni lineari o quadratiche la soluzione èsemplice

(esiste forma analitica chiusa)

ƒ^ aX + b = 0 ==>

X = -b/a

2 ƒ aX + bX + c = 0 ==> X = -( b + SQRT(b 1

2 -4ac))/2a

X^ = -( b - SQRT(b^2

2 -4ac))/2a

[^ Hp: ^

2 ∆ = (b

-4ac) >= 0 ]

FUNZIONI CONTINUE: PROPRIETÀ^ FUNZIONI CONTINUE: PROPRIET

À

Proprietà

Se una funzione continua

f(x)^ assume in due punti

a^ e^ b

valori di segno opposto

,^ esiste almeno un valore

ξ^ (o

un numero dispari di punti)

compreso fra a e b in cui

f(x)=

a^

b

f

x

METODO DELLA BISEZIONE^ METODO DELLA BISEZIONE

ƒ^ Dividiamo l'intervallo [a,b] a metà

c = (a + b)/

->^ calcoliamo

f(c)

ƒ^ Se f(c) = 0, la radice è trovata (procedimento terminato) ƒ^ Se f(c) > 0, trascuriamo l'intervallo destro [c, b], poniamo

b = c

e^ ripetiamo la procedura nel nuovo intervallo [a, b] ƒ Se f(c) < 0, trascuriamo l'intervallo sinistro [a, c], poniamo

a =

c^ e^ ripetiamo la procedura nel nuovo intervallo [a, b] ƒ Proseguendo in questo modo o si trova la radice esatta o siraggiunge un intervallo

[a, b] < 2

ε

dove^ ε^ è la precisione desiderata

ƒ^ In^ pratica,

si^ approssima

la^ funzione

con^ la

retta^

che

passa per i punti (a, sign(f(a))), (b, sign(f(b)))

a^

b

c

f

x

… for^ (i=0;

i<JMAX

&&^ !fine;

i++){

Fa=myfun(Xa);

Fb=myfun(Xb); Xm=(Xa+Xb)0.5;Fm=myfun(Xm);if^ (FmFa<0)

else^ Xa=Xm;if (Xa!=Xm) Xb=Xm; if^ ((abs(Xb-Xa)<

xacc) ||^ (Fm==0))

fine=1;

} if (fine)^ return

Xm; else{ printf("troppe

iterazioni\n"); exit();

METODO DELLA BISEZIONE^ METODO DELLA BISEZIONE

CALCOLO DELLE RADICI:^ CALCOLO DELLE RADICI:

CORDE, SECANTI, NEWTON-CORDE, SECANTI, NEWTON

-RAPHSONRAPHSON

Idea di Base:^ Detto

ξ^ lo zero di

f^ (appartenente all’intervallo [a,b]), sia

x^ una arbitraria approssimazione dello zero^0

nell’intervallo [a,b]: ƒ Si approssima la funzione con una retta passante per( x^ ,f(x^ ))0,^0

la cui equazione è^ y=K

(x-x^ ) +f(x 0 0

ƒ^ L’intersezione tra la retta e l’asse delle ascisse dà originealla nuova approssimazione

x della radice^1

f

x