Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
UTCB, Instalaii
BUCURESTI 2010
2
Explicaie
Aceste lecii au fost gandite pentru studenii de la masterat, Facultatea de Instalaii pentru
Construcii din cadrul Universitii Tehnice de Construcii Bucureti. Ele cuprind fragmente din
diverse notie de curs din anii trecui ct i fragmente din unele cri publicate de autor. Din
aceste motive cursul nu este nc bine structurat i va suferi modificri n funcie de modul
concret n care vor decurge leciile cu studenii.
Petrehu Viorel
3
1. Programarea in Scilab i Mathcad
In principiu un limbaj de programare ne ofera urmatoarele:
1.1. Tipuri de date. Instruciuni de intrare ieire.
Fiecare limbaj de programare ofer posibilitatea de a lucra cu anumite tipuri de date: caractere
sau iruri de caractere, valori logice (TRUE, FALSE), numere ntregi, reale sau complexe,
vectori, matrice sau blocuri cu mai multe dimensiuni unde fiecare element al vectorului, matricei
sau blocului este o dat elementar (numr, caracter, valoare logic). Unele limbaje permit
definirea de ctre utilizator a unor tipuri de date compuse din datele standard recunoscute. Aceste
date intr n program prin instruciuni de intrare i sunt extrase n exterior prin instruciuni de
ieire. In timpul rulrii programului sunt identificate prin nume care de regul conin litere i cifre
dar primul caracter din nume trebuie s fie liter. Mai jos sunt date cteva modaliti de intrare-
ieire n Scilab i Mathcad.
Scilab Mathcad
a=[1,2,3;-1,2,4]
Datele se introduc prin atribuire
Datele se introduc prin atribuire
dg=read(nume_fisier, nrlinii, nrcoloane);
Se citeste o matrice dintr-un fisier text
M READBMP "c:\copy\Image1.bmp" ( ) :=
Se citeste o imagine sub forma a trei
matrice (pentru rou, verde i albastru)
Se citeste o matrice dintr-un fisier text si se
atribuie matricea variabilei b
a
Daca nu se pune semnul ; dupa o expresie
atunci valoarea calculata pentru acea
expresie se afiseaz la consol
a=
Semnul = dupa o expresie face ca valoarea
calculata pentru acea expresie sa fie afisata
pe ecran
write('u2-ISO.txt', dgm, '(15(f7.2,3x))');
Se pune in fisierul u2-ISO.txt matricea
dgm, cate 15 elemente pe o linie, fiecare
element pe 7 pozitii din care 2 sunt
zecimale. Intre elemente se lasa 3 spatii
libere.
Matricea a este scris in fiierul text
specificat n instruciune
1.2. Operaii predefinite asupra datelor.
4
Fiecare limbaj de programare ofer instruciuni de calcul cu datele permise: adunri, scderi,
nmuliri, mpriri pentru numere, operaiile logice i, sau, non pentru datele de tip logic,
operaii precum concatenarea, extragerea de subiruri, adugarea sau tergerea de caractere din
irurile de caractere etc. In principiu n documenttia fiecrui limbaj gsim informaiile necesare.
De asemenea fiecare limbaj vine cu o mulime de funcii ce se pot aplica asupra datelor. In
Mathcad aceste funcii se acceseaz prin Insert/Function i din fereastra care apare (Fig. 1)
alegem funcia dorit.
Fig. 1. Inserarea unei funcii n Mathcad.
Alternativ putem introduce o funcie scriind numele i parametrii de intrare de la tastatur. In
Scilab aceasta este singura modalitate de apelare a funciilor. In meniul de ajutor de la Scilab
gsim o list a funciilor disponibile. (Fig. 2)
1.3. Controlul fluxului de calcul (ramificaii n program)
In general fiecare limbaj ofer posibilitatea de a urma o cale sau alta n procesul de calcul n
funcie de rezultatul unui test. Instruciunea general pentru aceast operaie este if. Condiia de
ramificare se exprim n general prin egaliti sau inegaliti i prin operaiile logice. Forma
instruciunii este n Scilab:
if(conditie)
instructiunile pentru cazul n care condiia este adevrat
else
instruciunile pentru cazul n care condiia este fals
end
In Mathcad n loc de else se folosete othewise. Instruciunile n Mathcad nu se scriu de la
tastatur ci se aleg din paleta de instruciuni (Fig.3).
5
Ca un exemplu s calculm valoarea lui variabilei a dac se d x i a depinde de x prin relaia de
mai jos:
+
<
=
cazuri alte in ,
2
1
1 x 0 daca ,
x 1
1
0 x daca , 1
a
2
Fig.2. O parte din funciile disponibile n Scilab
Forma echivalent n Scilab este n figura 4. Programul este editat ntr-un editor de text (de
exemplu editorul Scipad ce nsoete Scilabul), este salvat cu extensia .sce sau .sci i este lansat n
6
execuie din meniul Execute al editorului. Rezultatele calculului apar n fereastra (consola)
programului Scilab (Fig 5).
De remarcat c n Scilab dup liniile de calcul n care nu vrem s se afieze rezultatele la
consol, punem semnul punct i virgul ;. In caz contrar rezultatul este afiat la consol ceea ce
ncetinete execuia.
1.4. Controlul fluxului de calcul (instruciuni de repetiie).
In cazul n care avem de executat de mai multe ori un grup de operaii avem la dispoziie
instruciuni de repetiie. Inceputul i sfritul blocului de repetiie sunt marcate cu cuvinte cheie,
iar numrul de repetiii este determinat de instruciunea utilizat. Avem astfel
Bloc de repetiie n care numrul de repetiii este fixat. Forma acestui bloc n Scilab este :
for variabila=start:sfarsit:pas
instructiunile de calcul
end
La execuie variabila ia valoarea start, se execut instructiunile de calcul, pe urm variabila ia
valoarea start+pas i iar se execut instruciunile, s.a.m.d pn se depete valoarea sfrit.
Numrul de repetiii este
(
+
pas
start - arsit sf
1 , unde [ ] este partea ntreag.
In Mathcad instruciunea for se ia din paleta de programare.
Bloc de repetiie n care numrul de repetiii este determinat de rezultatele din timpul
execuiei. Forma n Scilab al acestui bloc de repetiie este :
while (condiie)
instruciuni de calcul ;
end ;
Att timp ct este adevrat condiia, se execut instruciunile de calcul. Este important ca printre
instruciunile de calcul s fie i unele care modific acea condiie astfel ca ea s devin cndva
fals i s se opreasc repetiia.
In Mathcad instruciunea while se ia din paleta de programare.
Un exemplu de bloc de repetiie n care cunoatem numrul de repetiii este adunarea numerelor
naturale ntre n1 i n2.
Scilab Mathcad
7
n1=3;
n2=10;
suma=0;
for n=n1:n2
suma=suma+n;
end;
suma
n1 3 := n2 10 := suma 0 :=
rezultat
suma suma n +
n n1 n2 .. for
suma
:=
rezultat 52 =
Un exemplu de bloc de repetiie n care n care numrul de repetiii este determinat n cursul
execuiei este nsumarea numerelor de forma
n
x pentru x s zicem 12 . 0 x = , numere care sunt
mai mici de
10
10
|
unde x este mrimea exact iar
x
|
|x
|
se numete eroare relativ.
In multe situaii eroarea relativ este mai semnificativ ca eroarea absolut. De exemplu,
aproximnd pe
0. 002
cu 0,04 avem o eroare absolut
0. 002 0. 04 4. 7214 10
3
foarte mic ce reprezint totui
0.002 0.04
0.002
0. 10557 10, 5%
din valoarea exact. Eroarea
relativ reflect acest lucru
er
0.002 0.04
0.04
0. 11803 12%
. Pentru numere mari, de
exemplu pentru x=2000, o aproximare a lui cu
x
1990
desi d o eroare absolut mare,
ea 10
, aceasta nu reprezint dect
10/2000 0. 005 0, 5%
din x, deci aproximaia este n
multe cazuri acceptabil. Eroarea relativ
ea
10
1990
0, 5%
scoate n eviden mai bine
acceptabilitatea aproximrii.
Pentru vectori eroarea absolut se definete asemntor, nlocuind modulul cu norma
ea ||x x
||
iar eroare relativ prin
er
||x x
||
||x
||
Ca norme
||x||
pe
R
n
se folosesc
1)
||x||
max |x
1
|, |x
2
|, . . . |x
n
|
2)
||x||
2
x
1
2
x
2
2
. . . x
n
2
3)
||x||
1
|x
1
| |x
2
| . . |x
n
|
Exerciiu. Artai c pentru toate cele 3 norme avem: a)
||x|| 0
i
||x|| 0
este echivalent
cu x=0; b)
||x y|| ||x|| ||y||
; c)
||z x|| |z| ||x||
cu
z R
.
14
Pentru funciile definite pe o mulime A cu valori reale se folosete fie norma uniform
||f ||
xA
max |fx|
fie o norm integral dac f este definit pe un interval [a, b] i este de exemplu continu sau
continu pe poriuni i mrginit.
||f || f
2
xdx
Exerciiu. S se arata c normele pentru funcii definite mai sus satisfac a), b), c) din exerciiul
precedent.
Pentru matricele
a Mn, m, R
se utilizeaz frecvent una din normele
j , i
m
1 j
n .. 1 i
a max a
=
=
=
j , i
n
1 j
m .. 1 j
1
a max a
=
=
=
Una este maximul din sumele modulelor elementelor pe linii, iar cealalt este maximul din
sumele pe coloane.
Exerciiu. Fie
|
|
|
\
|
=
1 3 0
1 7 9
4 1 2
a . S se calculeze
||a||
i
||a||
1 .
Exerciiu. S se arate c pe lng proprietile a) b) c) din execiiul ex1, normele de matrice
definite mai sus au i proprietatea d)
||a b|| ||a|| ||b||
.
Norma pe un spaiu vectorial permite definirea distanei ntre vectori precum i noiunea de
convergen a irurilor de vectori. Astfel, distana dintre vectori se definete
dx, y ||x y||
Exerciiu. Utiliznd proprietile a) b) c) ale normei, aa cum sunt enunate n exerciiul ex1, s
se arate c distana are proprietile: a)
dx, y 0
i
dx, y 0
dac i numai dac x=y; b)
dx, y dx, z dz, y
(inegalitatea triunghiului); c)
dx, y dy, x
.
Convergena unui sir
x
n
nN de vectori la vectorul
x
se definete ca fiind echivalent cu
convergena la zero a irului distanelor dintre
x
n i
x
, adic n
lim x
n
x
dac i numai dac
n
lim dx
n
, x 0
.
Exerciiu. S se arate c la fel ca i n cazul convergenei numerelor reale ( ) 0 x , x d lim
n
n
=
este echivalent cu
c 0, nc N
astfel c
n nc
rezult
dx
n
, x c
.
15
Exerciiu. Fie
a M2, 2, R
o matrice i fie irul de matrice
a
n
I
2
1
1!
a
1
2!
a
2
. . .
1
n!
a
n
. S se arate c irul e convergent n raport cu
|| ||
i
|| ||
2 . Dac
|
|
\
|
=
0 1
1 0
a s se calculeze
n
n
a lim
.
Exerciiu S se arate c irul de vectori
x
k
kN cu
x
k
R
n
converge la
x R
n
dac i
numai dac pentru fiecare poziie
1 i n
avem
x
k
i
x
i
.
Exerciiu. S se determine limita irului de vectori din R
3
|
|
\
|
|
\
| +
=
n
n cos
, n ,
n
1 n
x
n
n
n
.
2.2. Aproximarea funciilor prin polinoame
Calculul aproximativ al valorilor unei funcii complicate, utiliznd doar cele patru operaii
elementare care sunt direct implementate n microprocesor, se face prin nlocuirea funciei iniiale
f prin o funcie mai simpl, ale crei valori s fie uor de calculat, i care s difere suficient de
puin de f.
2.2.1 Polinomul Taylor
Cele mai simple funcii calculabile prin adunri i nmuliri sunt polinoamele. Formula lui Taylor
fx fa
x a
1!
fa
x a
2
2!
fa . . . .
x a
n
n!
f
n
a R
n
x, a
cu ( )
( )
( )
( )
( ) ( ) x 1 a f a , x R
1 n
! 1 n
a x
n
1 n
+ =
+
+
+
cu
p 0, 1
, ne furnizeaz polinoame care
aproximeaz bine funciile n jurul unui punct dat a. Dezvoltri uzuale sunt
1 x
a
1
a
1!
x
aa 1
2!
x
2
. .
aa 1a 2. . a n 1
n!
x
n
rest
sinx x
x
3
3!
x
5
5!
. . . 1
n x
2n1
2n 1!
restul
cosx 1
x
2
2!
x
4
4!
. . . 1
n x
2n
2n!
restul
e
x
1
x
1!
x
2
2!
. . .
x
n
n!
restul
etc.
2.2.2 Polinomul de interpolare
Date punctele
x
i
, y
i
i0,1,..n cu
x
i distincte, exist un singur polinom P de grad mai mic sau
egal cu n astfel ca
Px
i
y
i pentru i=0,1,..n. Acest lucru se vede imediat scriind
16
Px a
0
a
1
x . . . a
n
x
n
. Condiiile
Px
i
y
i pentru i=0,1,..n conduc la un sistem de n+1
ecuaii cu n+1 necunoscute pentru coeficienii
a
0
, a
1
, . . a
n , al crui determinant
n
n
2
n n
n
2
2
2 2
n
1
2
1 1
x . x x 1
. . . . .
. . . . .
x . x x 1
x . x x 1
D =
este nenul i deci
a
0
, a
1
, . . a
n sunt unic determinai. Acest polinom se numete polinomul de
interpolare a datelor
x
i
, y
i
i0,1,..n .
Acest polinom poate fi scris rapid fr a rezolva sistemul
( )
( )( ) ( )
( )( ) ( )
( )( ) ( )( )( )
( )( ) ( )( )( )
( )( ) ( )
( )( ) ( )
1 n n 1 n 0 n
1 n 1 0
n
n i 1 i i 1 i i 1 i 0 i
n 1 i 1 i 1 0
i
n 0 2 0 1 0
n 2 1
0 n
x x ... x x x x
x x ... x x x x
y
...
x x x x x x ... x x x x
x x x x x x ... x x x x
y
....
x x ... x x x x
x x ... x x x x
y x L
+
+
+
+
+
+
=
sau concis
( )
|
|
\
|
=
= = j i
j
n
i j , 0 j
i
n
0 i
n
x x
x x
y x L
Verificarea este imediat. Aceast form a polinomului de interpolare se numete forma
Lagrange.
Observaie. Dac se schimb ordinea punctelor
x
i
, y
i
pentru o funcie
f : a, b R
, ct de bine aproximeaz polinomul Lagrange
funcia f pe
a, b
? Avem propoziia
Propoziia 2.1. Daca f este de clasa n+1 pe [a,b] i
L
n este polinomul de interpolare care
coincide cu f n
x
0
, x
1
, . . x
n din
a, b
atunci
( ) ( )
( )
( )
( )
( )( ) ( )
n 1 0
1 n
n
x x ... x x x x
! 1 n
f
x L x f
+
=
+
(2.2.2.1)
unde
x
i
x
j
,
|
\
|
|
|
=
:=
pas 0.01 := valori a a pas + , b .. :=
0 1 2 3 4
0
0.5
1
f valori ( )
L
n
valori ( )
valori
18
0 1 2 3 4
0
0.5
1
grficele pentru n=10
1
0
f valori ( )
L
n
valori ( )
3.14 0 valori
0 1 2 3 4
0.5
0
0.5
1
grficele pentru n=60
1
0.149
f valori ( )
L
n
valori ( )
3.14 0 valori
Se vede c pentru n=10 aproximarea este mai bun ca pentru n=3, n acord cu teorema. Pentru
n=60 ns vedem c cele dou grafice difer semnificativ la capete, pe cnd conform teoremei
diferena ar trebui s fie infim. Cauza este c n teorem diferena
|fx L
n
x|
este estimat
n ipoteza c facem exact calculele pentru f(x) i
L
n
x
pe cnd n realitate n calculator se
lucreaz cu aproximativ 15 cifre semnificative. Rotunjirile la fiecare operaie, n cazul multor
operaii i mai ales n cazul unora, ca mprirea la numere mici, pot conduce n final la erori mari
de rezultat, cum este cazul aici.
Exerciiu. S se scrie polinomul de interpolare pentru datele
x -1 0 2 4 5
y 1 -1 1 0 2
Exerciiu S se estimeze eroarea la evaluarea lui
sinx
pentru
x 0, m
prin polinomul de
19
interpolare cu nodurile
0,
m
3
,
2m
3
,
m
.
2. 2.3 Diferene divizate i polinomul de interpolare sub forma Newton
O metod de calcul a polinomului de interpolare este prin diferene divizate. Date
punctele x 0
, x
1
, . . x
n n intervalul
a, b
i o funcie
f : a, b R
, definim diferenele
divizate ale lui f astfel
| |
( ) ( )
i 1 k i
k i 1 i i 1 k i k i 1 i
1 k i k i 1 i i
i 1 i
i 1 i
1 i i
x x
] x ,.. x , x [ f ] x , x ,.. x [ f
] x , x ,.. x , x [ f
x x
x f x f
x , x f
=
+ +
+ + + + + +
+ + + +
+
+
+
Definiia este inductiv i permite calculul din aproape n aproape al diferenelor. O metod
sistematic de calcul al lor este schema lui Aitken. Se dau
x
0
0
, x 1
2
,
x
2
1
,
x
3
4
,
fx
0
2
,
fx
1
3
, f
x
2
2
,
fx
3
10
. Punem valorile n urmtorul tabel
x 0 2 1 4
fx 2 3 2 10
fx
o
, x
1
32
20
1
2
fx
1
, x
2
23
12
1
3
fx
2
, x
3
102
41
8
5
fx
o
, x
1
, x
2
1
3
1
2
10
1
6
fx
1
, x
2
, x
3
8
5
1
3
42
19
30
fx
o
, x
1
, x
2
, x
3
19
30
1
6
40
7
60
In cele ce urmeaz vrem s demonstrm
Propoziia 2.2. Polinomul de interpolare pentru datele ( ) ( )
n .. 1 , 0 i i i
x f , x
=
se scrie
( ) ( ) | |( ) ( )( )
| |( )( ) ( )
1 n 1 0 n 1 0
1 0 2 1 0 0 1 0 0 n
x x .. x x x x x ,.. x , x f
.. x x x x ] x , x , x [ f x x x , x f x f x N
+
+ + + =
20
Pentru demonstraia propoziiei avem nevoie de a trece n revist cteva proprieti ale
diferenelor divizate.
Propoziia 2.3. Diferenele divizate au urmtoarele proprieti
1. | |
( )
( )
j i
i j
i
x x
x f
n
0 i
n 1 0
x ,.. x , x f
=
=
2. Dac
i
0
, i
1
, . . i
n este o permutare a numerelor 0,1,..n atunci , | | | |
n 1 0 i i i
x ,.. x , x f x ,... x , x f
n 1 0
= ,
deci diferenta divizat nu depinde de ordinea n care se iau punctele .
3. ( )| | | | | |
n 1 0 n 1 0 n 1 0
x ,... x , x g x ,... x , x af x ,... x , x g f + = +
4. ( ) ( ) | |( ) ( )
n 0 n 1 0 n
x x ... x x x ,... x , x , x f x L x f + = .
5. | |
( )
( )
! n
f
n 1 0
n
x ,... x , x f
= unde
\
|
+
=
+ +
=
=
In mod asemntor se poate trece de la k la k+1, completnd inducia.
2. este evident din 1.
3. este evident din 1.
4. Avem, notnd ( ) ( )( ) ( ) ( )
n i 1 0
x x .. x x ... x x x x x =
21
L
n
x
i0
n
x x
0
x x
1
. . . x x
i
. . x x
n
x
i
x
0
x
i
x
1
. . . x
i
x
i
. . x
i
x
n
fx
i
i0
n
fx
i
x
i
xx
i
x
0
x
i
x
1
. . . x
i
x
i
. . x
i
x
n
ox
i0
n fx
i
x
i
xx
i
x
0
x
i
x
1
...x
i
x
i ..x
i
x
n
fx
xx
0
xx
1
...xx
i
..xx
n
fx
xx
0
xx
1
...xx
i
..xx
n
ox
fx, x
0
, x
1
, . . x
n
x x
0
x x
1
. . . x x
i
. . x x
n
fx
Avem deci
( ) ( ) | |( )( ) ( ) ( )
n i 1 0 n 1 0 n
x x .. x x ... x x x x x ,.. x , x , x f x L x f + =
5. Punctul 4. al propoziiei pentru ( ) ( )
1 n .. 0 i i i
x f , x
=
i x=x n ne d
( ) ( ) | |( )( ) ( ) ( )
1 n n i n 1 n 0 n 1 n 0 n n 1 n n
x x .. x x ... x x x x x ,.. x , x f x L x f
+ =
Comparnd aceast formul cu formula restului pentru polinomul Lagrange gsim formula de la
punctul 5.
CCTD.
Demonstraia propoziiei 2.2. Pentru n=1, ( ) ( )
( ) ( )
( )
0 x x
x f x f
0 1
x x x f x N
0 1
0 1
+ =
este de gradul 1
i coincide cu f n
x
0 i
x
1 deci ( ) ( ) x L x N
1 1
. Presupunnd prin inducie c
( ) ( ) x L x N
1 n 1 n
, avem din definiia lui
N
n
x
,
( ) ( ) | |( ) ( )
1 n 0 x ,.. 1 0 1 n n
x x ... x x x , x f x N x N
n
+ = . Deci
N
n
x
i
N
n1
x
i
pentru i=0,1..n-1 i
din ipoteza
N
n1
x L
n1
x
aceste valori coincid cu
fx
i
. Acum
( ) ( ) | |( ) ( )
( ) | |( ) ( )
( ) x f
x x ... x x x ,... x , x f x L
x x ... x x x ,... x , x f x N x N
n
1 n n 0 n n 1 0 n 1 n
1 n n 0 n n 1 0 n 1 n n n
=
+ =
+ =
conform cu punctul 4. al propoziiei precedente. Prin urmare
N
n
x
este un polinom de grad n
ce coincide cu
fx
n punctele
x
0
, . . x
n , deci
N
n
x L
n
x
CCTD.
Observaie. Polinomul de interpolare sub forma
N
n
x
se calculeaz cu mai puine operaii
aritmetice dar necesit calculul prealabil al diferenelor divizate.
22
Observaie. Polinomul de interpolare nu depinde de ordinea n care lum punctele
n 0
x ,.. x .
Observaie. Diferenele divizate aproximeaz derivata unei funcii. Punctul 5. al propoziiei 2.2
ne arat c atunci cnd
x
1
x
0 ,
x
2
x
0
,
..
x
n
x
0 i f este de clas
C
n
avem
| |
( )
( )
! n
x f
n 1 0
0
n
x ,.. x , x f . Plecnd de la aceast observaie definim diferena divizat cu noduri
multiple
( )
( )
! n
x f
ori 1 n
0 0 0
0
n
x ,... x , x f =
(
(
+
.
Definiie. Expresia ( ) x N
n
se numete forma Newton a polinomului de interpolare.
Exemplu. Polinomul de interpolare pentru datele din schema Aitken de mai sus este
( ) ( ) ( )( ) ( )( )( ) 1 x 2 x 0 x
60
7
2 x 0 x
6
1
0 x
2
1
2 x N
3
+ + + + =
Diferenele divizate necesare scrierii polinomului se gsesc n stnga tabelului.
Exerciiu. S se scrie forma Newton a polinomului de interpolare pentru datele
x 1 2 3 1
y 1 2 1 0
2.2.4 Diferene divizate cu noduri multiple. Polinomul Hermite
S presupunem c avem n+1 puncte distincte
x
i
c
i0..n puncte n
a, b
astfel ca pentru
c 0
s avem
x
i
c
x
i . Atunci diferenele divizate
fx
0
c
, x
1
c
, . . x
k
c
au o limit cnd
c 0
.
Demonstraie. Pentru k=1, dac
x
0
c
x
0
, x
1
c
x
1
x
0 avem
| |
( ) ( )
( )
0
0 1
0 1
1 0
x f
x x
x f x f
x , x f
=
Dac
x
0
x
1 atunci
| |
( ) ( ) ( ) ( )
| |
1 0
0 1
0 1
0 1
0 1
1 0
x , x f
x x
x f x f
x x
x f x f
x , x f =
=
Presupunem c
fx
0
c
, x
1
c
, . . x
k
c
=
0 1 k
k 1 0 1 k 2 1
1 k k 1 0
x x
x ,.. x , x f x ,.. x , x f
x , x ,.. x , x f
23
deoarece diferenele divizate nu depind de ordinea punctelor, putem presupune
x
0
x
1
. . x
k1 . Dac
x
0
x
k1 atunci din ipoteza de inducie rezult c expresia de mai
sus are limit cnd
c 0
. Dac
x
0
x
1
. . x
k1 atunci expresia din formula are limit
cnd
c 0
egal cu
( )
( )
0
k
! k
1
x f conform cu observaia de la sfrituul seciunii precedente
CCTD.
Definiie. Numim diferen divizat cu noduri multiple
fx
0
, x
1
, . . x
k
lim
c0
fx
0
c
, x
1
c
, . . x
k
c
limit care exist conform propoziiei precedente.
Polinoamele Newton construite cu punctele
x
i
c
, fx
i
c
i0..n puncte n
a, b
astfel ca
pentru
c 0
s avem
x
i
c
x
i . Atunci
( ) | |( ) | |( )( )
| |( )( ) ( )
( ) | |( ) | |( )( )
| |( )( ) ( )
n 1 0 n 1 0
1 0 2 1 0 0 1 0 0
n 1 0 n 1 0
1 0 2 1 0 0 1 0 0
x x .. x x x x x ,.. x , x f ..
x x x x x , x , x f x x x , x f x f
x x .. x x x x x ,.. x , x f ..
x x x x x , x , x f x x x , x f x f
+ +
+ +
+ +
+ +
Demonstrie. Deoarece diferenele divizate au limit cnd
c 0
rezult c i polinoamele de
interpolare sub forma Newton tind la o limit.
CCTD.
Definiie. Polinomul limit dat de propoziia precedent se numete polinomul de interpolare
Hermite notat
H
n
x
.
Observaie. Polinomul Hermite ca limit de polinoame Newton ce nu depind de ordinea n care
sunt luate punctele ( )
n .. 0 i i
x
=
nu depinde nici el de aceast ordine.
Exemplu. S se determine polinomul de interpolare Hermite pentru
fx
3
x
i nodurile
x
0
1
,
x
1
1
,
x
2
2
,
x
3
2
.
Avem schema lui Aitken
24
x 1 1 2 2
fx 1 1
3
2
3
2
1
3
3
2 1
2
0. 123
1
3
2
2/3
0. 21
3
2 1
2
1
3
21
0. 203. .
1
3
2
2/3
3
2 1
2
21
0. 08. . .
1
3
2
2/3
3
2 1
2
21
3
2 1
2
1
3
21
21
0. 283. . .
Am utilizat | | | | ( ) 3 / 1 1 f 1 , 1 f x , x f
! 1
1
1 0
= = = , | |
( ) ( )
1 2
1 f 2 f
2 , 1 f
= , | | ( )
3 / 2
3
1
! 1
1
2 2 f 2 , 2 f
= = etc. Avem
deci
( ) ( ) ( ) ( ) ( ) 2 x 1 x .. 283 . 0 1 x .. 203 . 0 1 x
3
1
1 x H
2 2
3
+ + =
Polinomul de interpolare Hermite are calitatea c n punctele multiple el si derivatele pn la un
anumit ordin coincid cu funcia i derivatele ei pn la un anumit ordin. Mai precis avem
propoziia:
Propoziia 2.6. Fie
n 1 l k l k 1 k k 1 k 1 0
x .. x x .. x x x .. x x < = = <
+ + + +
, deci coincid cu
k
x
l+1 puncte. Dac aceste puncte sunt noduri de interpolare pentru f atunci
( ) ( )
( ) ( )
( )
( )
( )
( )
=
=
=
k
l
k
l
n
k k n
k k n
x f x H
...
x f x H
x f x H
Demonstraie. Polinomul
H
n
x
nu depinde de ordinea punctelor
n 0
x ,.. x . Lum punctele n
ordinea
x
k
,
x
n 0 l k 1 k
x ,... x , x ,..
+ +
. Avem
( ) ( ) ( )( ) ( )( )
( )
( )( )
| |( )
| |( ) ( ) .. x x x x x , x , x ,.. x , x f
x x x , x ,.. x , x f
x x x f
! l
1
.. x x x f
! 2
1
x x x f
! 1
1
x f x H
0
1 l
k 1 0 l k 1 k k
1 l
k 0 l k 1 k k
l
k k
l 2
k k k k k n
+ +
+
+ + + =
+
+ +
+
+ +
de unde sunt evidente relaiile .
CCTD.
25
Exemplu. S se scrie polinomul de interpolare pentru
f : a, b R
cu nodurile
2
b a
, a
+
,
2
b a+
,
b . Vom avea
( ) ( ) ( )
( )
( ) ( )
( )
C
B A
f
) b ( f a f f f ) x ( f
b a x
a b
a f ) b ( f
f a f
2
b a
! 1
1
2
b a
2
b a
2
b a
2
b a
2
a b
2
b a
+
+ +
+ +
=
=
cu
( ) ( )
( )
2
a b
2
b a
f a f
f
A
2
a b
2
b a
=
+
( )
( ) ( )
2
a b
f a f
a b
a f ) b ( f
2
a b
2
b a
B
=
2
a b
A B
C
=
Deci polinomul este
( )
( ) a x
2
b a
x C
2
b a
x A
2
b a
x
2
b a
f
2
b a
f x H
2
2
3
\
| +
+
|
\
| +
+
|
\
| +
\
| +
+
|
\
| +
=
Eroarea de interpolare pentru polinomul Hermite poate fi estimat din eroarea pentru polinomul
Lagrange, deoarece polinomul Hermite este o limit de polinoame Lagrange.
Propoziia 2.7. Fie
fa, b R
de clas
C
n
i fie
x
0
, x
1
, . . x
n n+1 puncte n
a, b
. Atunci
pentru
x a, b
|H
n
x fx|
max
a,b
|f
n1
|
n 1!
|x x
0
x x
1
. . x x
n
|
CCTD.
Calculul practic al polinomului Newton de face prin determinarea diferenelor divizate care intr
n expresia lui. In pseudocod calculul diferenelor divizate ce intr n expresia polinomului arat
astfel (x i y reprezint datele de intrare, indicii vectorilor ncepnd cu zero):
26
dd x y , ( ) n length x ( ) 1
d y
d
n i
d
n i
d
n i 1
x
n i
x
n i k
i 0 n k .. for
k 1 n .. for
d
:=
Dup ce diferenele se pun n vectorul dif, prin dif=dd(x,y), polinomul se calculeaz cu
procedura:
N t ( ) val dif
n
val val t x
n i
( ) dif
n i
+
i 1 n .. for
val
:=
Ca un exemplu, pentru
x 1, 2, 3, 4, 5
,
y 1, 2, 5, 3, 6
se obine:
1 2 3 4 5
2
0
2
4
6
6
9.263 10
3
y
i
N t ( )
5 1 x
i
t ,
Exerciiu. S se scrie sub forma Newton polinomul de interpolare datele
x 1 2 3 4 5
y 1 2 5 3 5
Exerciiu. S se scrie polinomul de interpolare sub forma Newton
N
4
x
pentru funcia
fx x
cu nodurile
x 1, 2, 3, 4, 5
.
Exerciiu. S se scrie polinomul de interpolare Hermite
H
4
x
pentru
fx x
cu nodurile
x 1, 1, 1, 3, 5
.
27
Exerciiu. Punnd pe calculator formulele pentru polinoamele de la cele dou exerciii
precedente s se studieze care aproximeaz mai bine pe
fx x
pe
1, 5
.
Exerciiu. S se determine un polinom
px
astfel ca
p1 1
,
p
1 0
,
p
1 1
,
p2 0
,
p3 p
3 2
.
Exerciiu. S se estimeze eroarea maxim la evaluarea funciei
fx sinx
pe
0, m
prin
polinomul Hermite cu nodurile
0, 0, m/2, m/2, m, m
.
2.2.5 Diferene finite
In cazul in care punctele x sunt echidistante se poate scrie polinomul de interpolare cu ajutorul
diferenelor finite.
Anume fie
f : R R
i
h 0
. Definim diferenele finite la dreapta ale funciei f n x prin:
1.
1
fx fx h fx
2.
k
fx
k1
fx h
k1
fx
Avem de exemplu
2
fx
1
fx h
1
fx
fx 2h fx h fx h fx
fx 2h 2fx h fx
Prin inducie se arat
k
fx
k0
n
1
k
C
n
k
fx kh
Diferenele divizate pot fi calculate cu ajutorul diferenelor finite la dreapta dac reeaua de
puncte
x
i
x
1
x
0
1
fx
0
h
2. fx
0
, x
1
, x
2
fx
1
,x
2
fx
1
,x
0
x
2
x
0
1
f x
1
h
1
f x
0
h
2h
2
fx
0
2!h
2
Prin inducie se arat
fx
0
, x
1
, . . x
k
k
fx
0
k!h
k
Polinomul de interpolare cu noduri echidistante, sub forma Newton, n care se nlocuiesc
diferenele divizate cu ajutorul diferenelor finite devine
28
( ) ( )
( )
( )
( )
( )( )
( )
( )( ) ( ) ( )
( )
( )( ) ( ) ( ) h 1 n x x .. h x x x x
h ! n
x f
.. h 1 k x x .. h x x x x
h ! k
x f
..
h x x x x
h ! 2
x f
x x
h ! 1
x f
x f x N
0 0 0
k
0
n
0 0 0 k
0
k
0 0
2
0
2
0
0
0 n
+
+
+
+
+ =
Dac notm
x x
0
th
gsim
( )
( ) ( )
( )
( )
( ) ( )
( )
( ) ( ) 1 n t ... 1 t t
! n
x f
...
1 k t .. 1 t t
! k
x f
1 t t
! 2
x f
t
! 1
x f
x f ) th x ( N
0
n
0
k
0
2
0
0 0 n
+
+
+
+ = +
In mod analog putem defini diferenele finite la stnga prin
( ) ( ) ( ) h x f x f x f . 1 =
( ) = x f . 2
k
( ) ( ) h x f x f
1 k 1 k
Prin inducie, ca n cazul diferenelor finite la dreapta rezult
( ) ( ) ( ) ( ) ( ) ( )
( ) ih x f C
kh x f 1 .. h 2 x f C h x f C x f x f
i
k
k
0 i
k 2
k
1
k
k
=
+ + + =
=
Diferenele divizate se pot exprima cu ajutorul diferenelor finite dac reeaua este echidistant
x
i
x
0
ih
. Avem
( ) ( )
( ) ( ) ( )
( ) ( )
( ) ( )
( ) ( )
( )
2
n
2
h
x f
h
x f
2 n n
1 n 2 n n 1 n
n 1 n 2 n 2 n 1 n n
n
1 n n
1 n n
n 1 n 1 n n
h ! 2
x f
h 2
x x
x , x f x , x f
x , x , x f x , x , x f
h
x f
x x
x f x f
x , x f x , x f
1 n n
= =
= =
Prin inducie rezult
( )
( )
k
n
k
k n 1 n n
h ! k
x f
x ,.. x , x f
=
Polinomul de interpolare se scrie
29
( ) ( ) ( )( ) ( )( )( )
( )( )( ) ( )
( )
( )
( )
( )
( )( )
( )
( )( ) ( )
1 1 n n
n
n
n
1 n n
2
n
2
n
n
n
1 1 n n 0 1 n n
1 n n 2 n 1 n n n 1 n n n n
x x .. x x x x
h ! n
x f
.. x x x x
h ! 2
x f
x x
h ! 1
x f
x f
x x .. x x x x x ,.. x , x f ..
x x x x x , x , x f x x x , x f x f x N
+ =
+ +
+ + =
Cu schimbarea de variabil
x x
n
ht
avem
( ) ( )
( ) ( )
( )
( )
( ) ( )
( )
( ) ( ) 1 n t .. 1 t t
! n
x f
...
1 k t .. 1 t t
! k
x f
.. 1 t t
! 2
x f
t
! 1
x f
x f th x N
n
n
n
k
n
2
n
n n n
+ +
+
+ +
+
+
+ = +
2.2.6 Derivare numeric
Am vzut cum se poate construi un polinom care s coincid cu o funcie dat pe o
mulime de puncte
x
0
, x
1
. . x
n . Am putea aproxima derivata funciei ntr-un punct prin derivata
polinomului de interpolare. S vedem ce formule se obin pentru derivat i care este eroarea de
aproximare.
Fie deci
f : a, b R
de clas
C
i fie
P
n
x
polinomul de interpolare cu nodurile
echidistante
x
i
x
0
ih
, i=0..n. Avem, utiliznd diferene finite la dreapta
( )
( ) ( )
( ) ( )
( ) ( )
|
|
\
|
+ +
=
+
=
.. 2 t 6 t 3
! 3
f
1 t 2
! 2
x f
! 1
x f
h
1
dt
th x dN
h
1
dx
x dN
x
dx
df
2
3
0
2
0
0 n n
sau utiliznd diferene finite la stnga
( )
( ) ( )
( ) ( )
( )
( )
( )
|
|
\
|
+ + +
+ +
=
+
=
.. 2 t 6 t 3
! 3
x f
1 t 2
! 2
x f
! 1
x f
h
1
dt
th x dN
h
1
dx
x dN
x
dx
df
2 n
3
n
2
n
n n n
In particular pentru
x x
0 n prima formul de derivare avem
t 0
( ) ( )
( ) ( )
|
|
\
|
+
=
.. 2
! 3
f
! 2
x f
! 1
x f
h
1
x N x
dx
df
3
0
2
0
0 n 0
iar pentru
x x
n n a doua formul de derivare avem
t 0
30
( ) ( )
( ) ( )
|
|
\
|
+
=
.. 2
! 3
f
! 2
x f
! 1
x f
h
1
x N x
dx
df
3
n
2
n
n n n
Formule analoage se pot obine pentru
x x
i utiliznd fie diferene la dreapta fie la stnga. De
asemenea forma Lagrange a polinomului de interpolare permite exprimarea sub alt form a
derivatelor aproximative.
Pentru estimarea erorii plecm de la:
fx N
n
x fx, x
0
, x
1
, . . x
n
x x
0
x x
1
. . x x
n
Se poate demonstra c dac
f
este de clas
C
atunci
fx, x
0
, x
1
, . . x
n
este de clas
C
ca
funcie de n+2 argumente. Avem atunci
f
x N
n
x
fx, x
0
, x
1
, . . x
n
x
x x
0
x x
1
. . x x
n
fx, x
0
, x
1
, . . x
n
i0
n
x x
0
x x
1
. . x x
i
. . x x
n
de unde
( ) ( ) ( ) ( )
( ) ( )( ) ! n h 1 x ,.. x , x , x f x N
x x x ,.. x , x , x f x N x f
n n
n 1 0 0 0 n
i 0
n
1 i
n 1 0 0 0 n 0
+ =
+ =
Tinnd seama c ( )
( )
( )
( )! 1 n
f
n 1 0 0
1 n
x ,.. x , x , x f
+
+
= obinem urmtoarea
Propoziia 2.8
( ) ( )
( )
n
1 n
0 n 0
h
1 n
| f | max
| x N x f |
+
+
In mod asemntor gsim
|f
x
i
N
n
x
i
| Ch
n
unde C este o constant ce nu depinde de
punctele
x
0
, x
1
, . . x
n
.
Dac aproximm derivatele de ordin superior ale funciei f prin derivatele corespunztoare ale
polinomului de interpolare gsim
|f
k
x
i
N
n
k
x
i
| Ch
n1k
unde
k n
. Constanta C nu
depinde de punctele
x
i
a, b
.
Exerciii
1. Se dau datele
1 0 2 - 1 - 1 f(x)
3 2,5 2 1,5 1 x
a. S se scrie polinomul de interpolare cu diferene finite la dreapta i cu diferene finite la stnga.
b. S se determine valorile aproximative ale derivatei n x=1, x=1 i x=3.
c. S se determine valorile aproximative ale derivatei de ordin doi i trei n x=0.
31
2. S se detemine formula pentru derivata aproximativ n
x x
i utiliznd forma Lagrange a
polinomului de interpolare pe o reea de puncte
x
i
x
0
ih
, i=0..n.
3. S se scrie formulele pentru derivatele de ordin 2 i 3 ale polinomului de interpolare sub forma
Newton, pe o reea de puncte
x
i
x
0
ih
, i=0..n, n
x x
0 . S se determine formulele de
majorare a erorii
|f
x
0
N
n
x
0
|
i
|f
x
0
N
n
x
0
|
.
2.2.7 Funcii spline
Se numete funcie spline pentru datele ( )
i i
y , x , i=0..n din
2
R unde
n 1 0
x .. x x < < <
o funcie | | R x , x : s
1 0
cu proprietile:
1.
s
este de clas
C
2
pe
x
0
, x
1
2. pe fiecare interval
x
i
, x
i1
s este polinom de gradul 3
3. ( )
i i
y x s = pentru i=0..n
Avem urmtorul rezultat
Propoziia 2.9 In condiiile de mai sus exist o unic funcie spline pentru care avem n plus
( ) 0 x s
0
= i ( ) 0 x s
n
= .
Demonstraie. Notm cu ( )
i i
x s m = i fie
1 i i i
x x h
= , i=1..n. Deoarece ( ) x s este pe
| |
i 1 i
x , x
un polinom de gradul unu, avem pe acest interval
( )
i
1 i
i
i
i
1 i
h
x x
m
h
x x
m x s
=
Integrnd de dou ori rezult
( )
( ) ( )
i
1 i
i
i
i
i
i
3
1 i
i
i
3
i
1 i
h
x x
f
h
x x
e
h 6
x x
m
h 6
x x
m x s
= (2.2.7.1)
pe intervalul
x
i1
, x
i
.
Condiiile ( )
1 i 1 i
y x s
= i ( )
i i
y x s = ne dau
6
h
m y f
6
h
m y e
2
i
i i i
2
i
1 i 1 i i
=
=
(2.2.7.2)
In acest fel condiiile 2 i 3 sunt sartisfcute. Funcia spline este determinat dac se cunosc cei
n 1
coeficieni
m
i pe care i determinm din condiia ca
s
s fie de clas
C
2
. Funcia s
este continu din cerinele 2 i3. Ca
s
i
x
i
, x
i1
condiia
s
x
i
0 s
x
i
0
devine
32
i
1 i i
1 i
i 1 i
1 i
1 i
i
1 i i
1 i
i
h
y y
h
y y
m
6
h
m
3
h h
m
6
h
+
+
+
+ +
= +
+
+ (2.2.7.3)
pentru i=1,2..n-1. Avem deci n-1 ecuaii pentru n+1 necunoscute
m
0
, m
1
, . . m
n . Ecuaiile
precedente se pot scrie sub o form mai comod nmulindu-le cu
1 i i
h h
6
+
+
. Rezult
i 1 i i i 1 i i
c m b m 2 m a = + +
+
(2.2.7.4)
unde
|
|
\
|
+
=
+
=
+
=
+
+
+ +
+
+ i
1 i i
1 i
i 1 i
1 i i
i
1 i i
1 i
i
1 i i
i
i
h
y y
h
y y
h h
6
c ,
h h
h
b ,
h h
h
a (2.2.7.5)
pentru i=1,2,..n-1. Cele dou condiii suplimentare ( ) ( ) 0 x s x s
n 0
= = se scriu
0 m
0 m
n
0
=
=
(2.2.7.6)
Obinem deci un sistem liniar de n+1 ecuaii pentru cele n+1 necunoscute
n 0
m ,.. m .
Matricea sistemului este
|
|
|
|
|
|
|
|
\
|
=
1 0 0 ... 0 0 0 0
b 2 a ... 0 0 0 0
... ... ... ... ... ... ... ...
0 0 ... b 2 a 0
0 0 0 ... 0 b 2 a
0 0 0 ... 0 0 0 1
M
1 n 1 n
2 2
1 1
unde
=
= =
=
1 n ,... 2 , 1 i daca 2
n i sau 0 i daca 1
M
i , i
cazuri celelalte in 0 M
0 M
1 n ,.. 2 , 1 i pentru b M
0 M
1 n ,... 2 , 1 i pentru a M
j , i
1 , 0
i 1 i , i
n , 1 n
i i , 1 i
=
=
= =
=
= =
+
Termenii liberi ai sistemului sunt
1 - 1,2..n = i pentru c D
n = i sau 0 = i pentru 0 D
i i
i
=
=
Acest sistem determin unic pe ( )
t
n 1 0
m ,.. m , m m = prin D M m
1
= , deci determin unic
funcia spline pe fiecare interval | |
i 1 i
x , x
.
CCTD.
Funcia spline determinat de teorema precedent se numete funcie spline standard.
33
Observaie. In locul condiiilor ( ) ( ) 0 x s x s
n 0
= = se utilizeaz uneori condiiile ( ) =
0
x s ,
( ) =
n
x s . In acest caz in locul condiiilor 0 m , 0 m
n 0
= = avem
|
|
\
|
= +
|
|
\
|
= +
n
1 n n
n
n 1 n
1
0 1
1
1 0
h
y y
h
6
m 2 m
h
y y
h
6
m m 2
(2.2.7.7)
Si in acest caz sistemul are diagonala dominant, deci are soluie unic.
Funcia spline standard are o proprietate interesant de minim. Anume fie
| | ( ) { } n .. 0 i pentru y x f ; C a clas de este f | R x , x : f C
i i
2
n 0
= = =
Pentru funciile f din C definim
( ) ( )dx x f f
2
x
x
n
0
=
Avem atunci
Teorema 2.10. Dac s este funcia spline standard atunci
( ) ( ) s f
pentru orice C f .
Demonstraie. Avem, pentru
f C
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
( ) ( ) ( ) ( )
( )
( ) ( ) s f
dx x s x s x f 2 | x s x s x f 2 s f
dx x s x s x f 2 | x s x s x f 2 s f
dx x s x s x f 2 dx x s dx x f dx s f s f 0
0 x s ca pentru 0
x
x
n
1 i
y x s x f ca pentru 0
x x
n
1 i
x
x
n
1 i
0 x s x s deoarece 0
x x
n
1 i
x
x
2
x
x
2
x
x
2
x
x
i
1 i
i i i
i
x x
1 i
i
1 i
n 0
i
x x
1 i
n
0
n
0
n
0
n
0
=
+ =
+ =
= =
= =
=
= = =
=
=
=
= = =
=
=
Deci
f s 0
.
CCTD.
2.2.8 Ajustarea datelor prin metoda celor mai mici ptrate
Dac mulimea datelor
x
i
, y
i
s fie minim. Minimul expresiei de mai sus indic
34
( )
p ... 2 , 1 i pentru 0
a
a ,.. a , a E
i
p 2 1
= =
pentru i=1..p.
Rezolvarea sistemului este dificil n multe situaii, sistemul fiind n general neliniar i uneori
singular. In cazul cnd sistemul este liniar rezolvarea lui este relativ simpl. De exemplu avnd
tabelul de date
x 1 1.5 2 3 5 5.5 6 8 10
y 2 4 6 5 2 -1 -3 -2 2
i cutnd o funcie de forma
( )
2
3 2 1 3 2 1
x a x a a a , a , a , x f + + =
pentru ajustarea datelor, gsim
( ) ( )
2
i
2
i 3 i 2 1
i
3 2 1
y x a x a a a , a , a E + + =
Sistemul devine
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
= + +
= + +
= + +
i
2
i i 3
4
i i 2
3
i i 1
2
i i
i i i 3
3
i i 2
2
i i 1 i i
i i 3
2
i i 2 i i 1 i
y x a x a x a x
y x a x a x a x
y a x a x a 1
i dac este nesingular atunci are soluie unic. Chiar dac sistemul este singular funcia are
un minim i programele standard de matematic precum scilab sau matlab l determin.
Se vede c n general dac funcia model este
fx, a
1
, a
2
, . . a
p
a
1
a
2
x . . a
p
x
p1
atunci
( ) ( )
2
i
1 p
i p i 2 1
i
p 2 1
y x a .. x a a a ,.. a , a E + + + =
iar sistemul devine
1,2,..p = k pentru
N a M
k l l , k
p
1 l
=
=
unde
2 l k
i i l , k
x M
+
= i
i
1 k
i i k
y x N
= .
In cazul exemplului numeric considerat cu funcia model
fx, a
1
, a
2
, a
3
a
1
a
2
x a
3
x
2
avem
M
9
42
271.5
42
271.5
2.059 10
3
271.5
2.059 10
3
1.704 10
4
\
|
|
|
|
=
N
15
25.5
63.75
|
\
|
|
|
=
35
a
7.116
2.097
0.144
|
\
|
|
|
=
Pe grafic se vd punctele date i curba de tip funcie de gradul doi care ajusteaz aceste date
0 2 4 6 8 10
4
2
0
2
4
6
6
3
y
f t ( )
10 1 x t ,
Modelul ales nu este prea bun, graficul lui f(x) trecnd prea departe de punctele date. O funcie
model de forma
fx, a
1
, a
2
, a
3
, a
4
a
1
a
2
x a
3
x
2
a
4
x
3
ne d pentru coeficieni valorile
a
2.658
7.022
1.858
0.121
|
\
|
|
|
|
|
=
iar graficul arat astfel:
36
0 2 4 6 8 10
5
0
5
10
6
3.659
y
f t ( )
10 1 x t ,
Modelul pare mai bun ca cel din cazul precedent.
Un program care s determine o formul potrivit pentru ajustarea unor date
experimentale ar trebui s aib memorate un numr mare de de funcii model
fx, a
1
, a
2
, . . a
p
depinznd de unul sau mai muli parametri i o metod de a determina minimul expresiei
( ) ( )
2
i p 2 1 i i
y a ,.. a , a , x f pentru fiecare model. Modelul pentru care
( ) ( )
2
i p 2 1 i
n
1 i
y a ,.. a , a , x f
n
1
R =
=
are cea mai mic valoare este n principiu modelul cel mai bun. Divizarea cu n este fcut pentru
a anula efectul numrului de puncte asupra lui R.
Pentru minimizarea lui
Ea
1
, a
2
, . . a
p
exist un algoritm numit "Levenberg-Marquardt" care
este implementat n mai multe programe ca de exemplu scilab sau matlab. Amnumte asupra
felului cum se apeleaz acest algoritm n scilab se pot afla n fiierul de help, funcia lsqrsolve.
Pentru funcii
f : R
m
R
depinznd de
x
x
1
, x
2
, . . x
m
tehnica ajustrii este aceeai, doar
c funciile model depind de
x
R
m
, deci sunt de forma
fx
, a
1
, . . a
p
. Avem
( ) ( ) ( )
2
i p 2 1 i
i
p 2 1
y a ,.. a , a , x f a ,.. a , a E =
unde
( )
m
m , i 2 , i 1 , i i
R x ,... x , x x =
In continuare descriem modul n care se poate minimiza n scilab expresia E .
Ca date de intrare avem un tabel cu date "msurate"
x
i
, y
i
, a
1
, . . a
p
. Se cere determinarea parametrilor
a
1
, . . . a
p
astfel ca E s fie minim.
Procedura scilab pentru determinarea parametrilor este lsqrsolve care are forma
37
[a,v,[info]]lsqrsolve(a0,e,n,[stop],[diag])
unde:
I. a este vectorul cu componentele cutate
a
1
, . . a
p
.
II. v este vectorul cu diferenele
fx
i
, a
1
, . . a
p
y
i pentru valoarea lui a gsit de program
III. info este numr a crui valoare depinde de modul de terminare al programului: 0 - parametrii
de intrare sunt incoreci; 1-algoritmul estimeaz atol (vezi intrarea stop), adic eroarea relativ
ntre a i soluia exact, a fost atins; 2 - a fost atins numrul maxim maxeval (vezi intrarea stop)
de evaluri pentru funcia e; 3 - atol este o valoare prea mic i nu poate fi atins; 4 - iteraiile nu
progreseaz satisfctor
IV. a0 este un vector cu valori iniiale pentru a
V. e este o funcie de forma ( ) n , a e unde a este vectorul parametrilor ( )
p 1
a ,.. a iar n este
numrul de date ( )
i i
y , x
\
|
=
n n
2 2
1 1
y a , x f
...
y a , x f
y a , x f
n , a e
VI. stop este un vector opional cu conduiii de oprire a algoritmului, stop=[etol, atol, gol,
maxeval, epsfcn, factor], cu valorile implicite [1.d-8,1.d-8,1.d-5,1000,0,100]. Semnificaiile unor
parametri sunt
atol: eroarea relativ maxim admis intre dou valori iterative consecutive ale lui a (dac se
obine o eroare relativ mai mic, programul se oprete)
maxeval: numrul maxim de apeluri ale funciei e (dac se atinge acest maxim, programul se
oprete)
VII. diag este un vector de ponderi
Un exemplu de utilizare a acestei rutine este dat mai jos.
a1=1;a2=-1;a3=2;a4=0.5;
a0=[10;10;-10;10];
a=a0;
//definim o functie model
deff('y=F(x)','y=a1*x(1)+a2*x(2)+a3*sin(x(3))+a4*x(4)*x(5)');
//definim o matrice de date
data=rand(500,5);
//definim y=F(x)
y=zeros(500,1);
for i=1:500
x=data(i,1:5);
y(i)=F(x);
end
//stop=[1.d-10, 1.d-12, 1.d-5, 50000, 0, 100];
38
//ne pregatim de optimizare
//functia de optimizat
function dif=e(a,n)
dif=a(1)*data(:,1)+a(2)*data(:,2)+a(3)*sin(data(:,3))...
+a(4)*data(:,4).*data(:,5)-y;
endfunction
//este apelat rutina de optimizare
[a,v]=lsqrsolve(a0,e,size(data,1));
a
norm(v,'inf')
Rezultatele ntoarse sunt
a =
! 1. !
! - 1. !
! 2. !
! 0.5 !
Valorile exacte ale parametrilor sunt 1, -1, 2, 0.5.
Norma vectorului diferenelor ( ) ( )
n .. 1 i
i p 1 i
y a ,.. a , x f
=
este 4.441D-16 .
In programul de mai sus am construit pe y dup formula
( )
5 , i 4 , i 4 3 , i 3 2 , i 2 1 , i 1 i
x x a x sin a x a x a y + + + = i am cerut programului s determine
a
1
, a
2
, a
3
, a
4
plecnd de la
a0 10, 10, 10, 10
n funcia model
( ) ( )
5 4 4 3 3 2 2 1 1 4 3 2 1
x x a x sin a x a x a a , a , a , a , x f + + + =
Demonstraie. b. Fie irul
x
n
nN construit dup regula de la punctul b. Avem
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( )
1 0
1 n
n 1 n
1 0
2
2 1 2 1 3 2
1 0 1 0 2 1
x , x d x , x d
inductie prin ...
x , x d x , x d x f , x f d x , x d
x , x d x f , x f d x , x d
=
=
=
Acum, utiliznd aceste inegaliti rezult
( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( )
1 0
n
1 0
p
n
1 0
1 p n
1 0
1 n
1 0
n
p n 1 p n 1 n 1 n 1 n n p n n
x , x d
1
x , x d
1
1
x , x d .. x , x d x , x d
x , x d .. x . x d x , x d x , x d
=
+ + +
+ +
+ +
+ + + + + +
ceeea ce arat c irul
x
n
nN este Cauchy, deci convergent.
c. Fie
x limita irului
x
n
nN . Inegalitatea
dx
n
, x
np
o
n
1o
dx
0
, x
1
pentru
p
ne
d
dx
n
, x
o
n
1o
dx
0
, x
1
.
a. Dac
x i
y
sunt soluii ale ecuaiei
ft t
atunci
dx, y dfx , fy odx, y
cu
o 1
ceea ce se poate doar pentru
x y
.
CCTD.
41
3.2 Sisteme liniare
Ca aplicaie s considermn sistemul b Ax = cu matricea
|
|
|
|
|
|
\
|
=
n , n 1 n , n 2 , n 1 , n
n , 1 n 1 n , 1 n
n , 2 2 , 2 1 , 2
n , 1 1 , 2 1 , 1
a a .. a a
a a .. .. ..
.. .. .. .. ..
a .. a a
a .. a a
A
avnd diagonala dominant, adic
1 n , n 2 , n 1 , n n , n
n , k 1 k , k 1 k , k 1 , k k , k
n , 1 3 , 1 2 , 1 1 , 1
a .. a a a
..
a .. a a .. a a
..
a .. a a a
+
+ + >
+ + + + >
+ + + >
Atunci ecuaia b Ax = se scrie D Cx x + = unde
|
|
|
|
|
|
|
\
|
=
0 ..
0 .. .. ..
.. .. .. .. ..
.. 0
.. 0
C
n , n
1 n , n
n , n
2 , n
n , n
1 , n
1 n
n , 1 n
2 , 2
n , 2
2 , 2
1 , 2
1 , 1
n , 1
1 , 1
1 , 2
a
a
a
a
a
a
1 n , a
a
a
a
a
a
a
a
a
a
adic
i , i
j , i
a
a
j , i
C = dac
i j
i
C
i,i
0
, iar vectorul
D
are componentele
i , i
i
a
b
i
D = . Avem
n continuare
C 1
(utilizm norma
, deci
( ) ( ) ( ) y x C y x C D Cy D Cx = + +
de unde rezult c aplicaia
x Cx D
este o contracie. Aplicnd teorema contraciei obinem
Teorema 3.2 Fie sistemul liniar Ax=B cu matricea A avnd diagonala dominant. Scriind
sistemul sub forma
x Cx D
cu C i D dai mai sus, obinem soluia sistemului placnd de la
un
n 0
R x
> <
arbitrar i construind irul recurent
B Cx x
k 1 k
+ =
> < > + <
sau n detaliu
i
k
j j , i
n
1 j
1 k
i
D x C x + =
> <
=
> + <
Avem n plus
> < > <
> <
1 0
C 1
C k
x x x x
k
.
CCTD.
Ca exemplu, fie sistemul
42
5 1 2
1 5 2
3 1 5
x
1
x
2
x
3
1
2
1
Sistemul se scrie
x
1
x
2
x
3
0
1
5
2
5
1
5
0
2
5
3
5
1
5
0
x
1
x
2
x
3
1
5
2
5
1
5
plecnd cu
x
0
1
1
1
gsim
x
1
0
1
5
2
5
1
5
0
2
5
3
5
1
5
0
1
1
1
1
5
2
5
1
5
2
5
1
5
3
5
apoi
x
2
0
1
5
2
5
1
5
0
2
5
3
5
1
5
0
2
5
1
5
3
5
1
5
2
5
1
5
2
5
14
25
2
25
etc. Un criteriu de oprire al calculelor este
> + < > < 1 k k
x x cu
c
ales dinainte.
Metoda de rezolvare cuprins n teorema ti se numete metoda Iacobi.
O variant de rezolvare a sistemului Ax=B cu matrice A avnd diagonala dominant este metoda
Gauss-Seidel. Aceast metod const n a alege pentru calculul lui
x
k1
cele mai noi
componente calculate. Aceasta nseamn
i
k
j j , i
n
1 i j
1 k
j j , i
1 i
1 j
1 k
i
D x C x C x + + =
> <
+ =
> + <
=
> + <
Convergena este asigurat dac
C 1
i n princiupiu
x
k
x
la fel de repede ca n
metoda Iacobi.
Exemplu. S se rezolve sistemul Ax=B unde matricea A ete tridiagonal, adic
A
i,i
[
i ,
A
i,i1
o
i i A i,i1
,
i deci
43
|
|
|
|
|
|
\
|
=
n n
1 n 1 n
2 2 2
1
0
0 0
0 0
A
1
cu diagonala dominant, adic
|[
i
| |o
i
| |,
i
|
.(vom lua
o
1
0
i
,
n
0
aceti coeficieni
neaprnd n sistem). Pentru rezolvare putem scrie sistemul sub forma
x fx
cu
( ) ( )
( ) ( )
( ) ( )
n 1 n n n n
1 2 1 1 1
i 1 i i 1 i i i i
/ x b x f
/ x b x f
1 - 2..n = i pentru / x x b x f
=
=
=
+
Plecnd cu un
> <0
x iniial arbitrar putem calcula irul
> <k
x din metoda Iacobi.
Exercise S se rezolve sistemul
4x
1
x
2
1
x
i1
4x
i
x
i1
2 pentru i2..999
x
999
4x
1000
2
3.3 Sisteme neliniare
Fie sistemul
0 ) x ( f =
sau n detaliu
( )
( )
( )
=
=
=
0 x ,... x , x f
..
0 x ,.. x , x f
0 x ,.. x , x f
n 2 1 n
n 2 1 2
n 2 1 1
unde
|
|
|
|
|
|
\
|
=
n
2
1
x
x
x
x , ( )
( )
( )
( )
|
|
|
|
|
|
\
|
=
x f
x f
x f
x f
n
2
1
. Se cere rezolvarea sistemului. Un exemplu posibil este
sistemul
= + +
= + +
0 4 x x x x
0 5 x x x 2 x
2
2 2 1
3
1
3
2
2
2 1
2
1
Cum nu avem formule de rezolvare exact ar fi utile metode da gsire a unor soluii
aproximative, eventual cu preul unui numr mare de calcule.
44
In primul rnd simplificm sistemul. Dezvoltarea Taylor a lui
f
n jurul lui
> <0
x a sistemului
ne d
( ) ( ) ( ) ( ) ( )
( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( )
2
0
n n
0
n
n
0
2 2
0
2
n 0
1 1
0
1
n 0
n
2
0
n n
0
n
2
0
2 2
0
2
2 0
1 1
0
1
2 0
2
2
0
n n
0
n
1
0
2 2
0
2
1 0
1 1
0
1
1 0
1
R x x x
x
f
..
x x x
x
f
x x x
x
f
x f 0
...
R x x x
x
f
..
x x x
x
f
x x x
x
f
x f 0
R x x x
x
f
..
x x x
x
f
x x x
x
f
x f 0
+
+ +
+ =
+
+ +
+ =
+
+ +
+ =
> < > <
> < > < > < > < > <
> < > <
> < > < > < > < > <
> < > <
> < > < > < > < > <
Neglijnd resturile
R
2 n dezvoltrile Taylor precedente obinem
( ) B x x A
0
=
> <
cu
( )
> <
=
0
j
i
j , i
x
x
f
A
sau mai pe scurt
( )
> <
=
0
x Df A
i
) x ( f B
0
i i
> <
=
Sistemul snl-l este liniar i are soluia
( ) ( ) ( )
> <
se calculeaz aproximativ prin
h
) x ( f ) h x ( f +
. Convergena nu este garantat pentru orice punct
> <0
x de plecare.
Un exemplu de program de calcul n scilab este dat n continuare.
//rezolvarea sistemelor neliniare
n=2; //nr. de necunoscute
function y=f(x) //sistemul de ecuatii
y=zeros(n,1)
y(1)=x(1)^3+x(1)*x(2)+x(2)^3-4
y(2)=x(1)^4+x(1)+x(2)^4-5
endfunction
eps=0.0001;//criteriul de oprire er=||xi-xu||<eps
h=0.0001 ; //pasul pentru calculul derivatelor
xi=[1;1] ; //x initial
er=eps+1 ; // ne asiguram ca er>eps la inceput
a=zeros(n,n); //a va contine derivatele partiale
while er>eps
val=f(xi);
46
for i=1:n
xi(i)=xi(i)+h;
a(:,i)=(f(xi)-val)/h;
xi(i)=xi(i)-h;
end
xu=xi-inv(a)*f(xi);
er=norm(xi-xu);
xi=xu
end
xi
Rulnd acest program vedem cum de la x initial egal cu (1,1) se ajunge treptat la soluie.
Rezultatele intermediare pn la soluie sunt
xi =
! 1.999925 !
! 0.2500563 !
xi =
! 1.6056548 !
! 0.3939978 !
xi =
! 1.414201 !
! 0.7429919 !
xi =
! 1.3494285 !
! 0.7910389 !
xi =
! 1.3430232 !
! 0.7973520 !
xi =
! 1.3429552 !
! 0.7974139 !
xi =
! 1.3429552 !
! 0.7974139 !
Au fost suficiente 7 iteratii pentru a determina soluia cu precizia eps=0.0001.
47
4. Integrare numeric
4.1. Integrale simple
Fie f:[a,b]-->R.Unele metode de calcul aproximativ al integralei I f x dx
a
b
=
( ) se bazeaz
pe urmtoarele :
i) pentru un nN se divide [a,b] n n pri egale prin x
i
=a+(b-a)i/n, deci x x
b a
n
i i
=
1
,
0<=i<=n.
ii) pe fiecare interval [x
i-1
,x
i
] avem f x dx
b a
n
f
x x x x
t
g t
dt
i i i i
i
x
x
i
i
( )
( )
(
( )
) =
+
+
2 2 2
1 1
1
1
1
,
deci avem de evaluat integrale pe intervalul [-1,1].
iii) pentru o integral J g t dt
i i
=
( )
1
1
procedm astfel:
iii
1
) se aproximeaz g(t), t[-1,1], printr-un polinom de interpolare cu nodurile t
k
0<=k<=p, distincte, i anume: P t g t l t
b a
n
f
x x x x
t l t
i i k k
i i i i
k k
k
p
k
p
( ) ( ) ( ) ( ) ( ) = =
+
+
= =
2 2 2
1 1
0 0
(vezi polinomul Lagrange).
iii
2
)
( )
J g t dt P t dt
b a
n
f
x x b a
n
t l t dt
C
b a
n
C f
x x x x
t C g t
i i i
i i
k k
k
k
p
k
i i i i
k k i k
k
p
k
p
= =
+
+
=
=
+
+
=
=
= =
( ) ( ) ( ) ( )
( )
1
1
1
1
1
1
1
0
1 1
0 0
2 2 2
2 2 2
iv) I J
b a
n
C f
x x x x
t I
i
i
n
k
i i i i
k
k
p
i
n
a
=
+
+
=
=
= =
1
1 1
0 1
2 2 2
( ) formula Newton-Cotes
v) eroarea:
( )
( )
er I I J J
g
p
t t t t t t d
E
t
conform restului la polinomul Lagrange
n
b a f
p
E
E a b
n
E a
a i ia
i
n
i
p
i
n
p
p
p
p
p
p
=
+
=
+
=
=
+
=
+
+
+
+
+
1
1
1
0 1
1
1
1
2
2
1
1
1
1
2 1
1
max
( )!
( )( )...( )
max
!
( , )
(
( )
( )
, ) b
48
Observaii
i) Dac nodurile nu-s distincte teoria rmne valabil, cu aceeai formul pentru eroare, dar n
I
a
apar i derivatele lui f n punctele multiple (conform cu polinomul Hermite de interpolare).
ii) Formula de la iii
2
) d rezultate exacte pentru f (sau g
i
) polinom de grad mai mic sau egal cu p
deoarece n acest caz g
i
coincide cu polinomul de interpolare P
i
(t).
iii) Dac formula de la iii
2
) se ntmpl s dea rezultate exacte dac f (sau g
i
) este un polinom
arbitrar de grad <=q>p, atunci integrala pe [a,b] este dat de iv), iar eroarea este dat de v)
unde n loc de p se poate lua q iar ( )( ) ( )( ) ( )
E t t t t t t t t t t dt
p p q
=
+
| ... .. |
0 1 1
1
1
, punctele
t
p+1
,..t
q
fiind luate arbitrare n [-1, 1].
Exemplul 1. Fie p=1, t
0
=-1, t
1
=1, => l
0
(t)=(t-1)/(-1-1); l
1
(t)=(t+1)/(1+1); =>C
0
=C
1
=1 , E=4/3
=>formula iv) devine:
( ) I
b a
n
f x f x
b a
n
f a f b f x
i i
i
n
i
i
n
+ =
+ +
|
\
= =
2 2
2
1
1 1
1
( ) ( ) ( ) ( ) ( ) (4.1.1)
numit formula trapezelor.
Eroarea e majorat, conform cu v) de er
b a f
n
( ) max|
( ) 3 2
2
12
. Rmne ca exerciiu
programarea calculului unei integrale prin aceast metod.
Exemplul 2. p=3; t
0
=-1; t
1
=-1/3; t
2
=1/3; t
3
=1; C
0
=1/4; C
1
=3/4; C
2
=3/4; C
3
=1/4; E=784/3645; =>
formula iv) devine:
I
b a
n
f a f b
f x f
x x
f
x x
i
i
n
i i i i
i
n
=
+
+ +
+ |
\
|+
+ |
\
|
|
\
|
|
\
|
=
=
2 4
1
2
3
4
2
3
2
3
1
1
1 1
1
( ) ( )
( ) (4.1.2)
Eroarea e majorat, conform cu v) de er
b a
f
n
49
174960
1
5
4
4
( )
max
( )
. Rmne ca exerciiu
de programat calculul unei integrale prin formula (2).
Exemplul 3. p=2, t
0
=-1; t
1
=0; t
2
=1. Rezult C
0
=1/3; C
1
=4/3; C
2
=1/3. Se constat c formula iii
2
)
d rezultate exacte pentru f=polinom de grad<=q=3>p=2. Prin urmare integrala, dup gruparea
termenilor, este, conform cu formula iv):
I
b a
n
f a f b f x f
x x
i
i i
i
n
i
n
=
+ + +
+ |
\
|
|
\
= =
6
2 4
2
1
1 1
1
( ) ( ) ( ) (4.1.3)
numit formula lui Simpson.
Potrivit observaiei iii), dac lum t
3
=0, gsim E=4/15, deci eroarea este majorat
(conform cu foemula v)) de:
( )
er
b a
f
n
5
4
4
2880
1
max
( )
. Rmne ca exerciiu programul de calcul
al unei integrale prin formula (3).
Exemplul 4. p=3; fie t
i
rdcinile polinomului Legendre de grad 4: ((x
2
-1)
4
)
(4)
t
0
= -0.86113631159405257522, t
1
= -0.3399810435848562648,
t
2
= 0.3399810435848562648 t
3
= 0.86113631159405257522.
Se gsete: C
0
=C
3
=0,3478548451, C
1
=C
2
=0,6521451549. Formula iv) ne d valoarea
integralei aproximative:
49
I
b a
n
C f
x x x x
d
k
i i i i
k
k
p
i
n
=
+
+
= =
2 2 2
1 1
0 1
( ) (4.1.4)
Din cauza alegerii speciale a punctelor t
i
, n acest caz se poate arta c integrala este exact
pentru f(t) polinom de grad cel mult q=2*p+1=7>p=3, deci, conform cu observaia iii), eroarea
este de forma er
A f
n
max
( ) 8
8
, ceea ce arat o foarte rapid scdere a erorii cu creterea lui n.
4.2.Integrale duble
Fie D={(x,y)R
2
; a<=x<=b, ( ) ( ) x y x }. In aceste condiii
I f x y dxdy dx f x y dxdy
b a
n
C f x y dxdy
b a
n
C
x x
m
C f x y
x
x
a
b
D
k ik
x
x
k
p
i
n
k
ik ik
l
l
p
j
m
ik ikjl
k
p
i
n
ik
ik
= =
= =
= = = =
( , ) ( , ) ( , )
( ) ( )
( , )
( )
( )
( )
( )
2
2 2
0 1
0 1 0 1
(4.2.1)
unde n i m reprezint numrul de diviziuni dup Ox, respectiv Oy ale intervalelor de integrare,
x a
b a
n
i
i
= +
, x
x x x x
k
ik
i i i i
=
+
+
1 1
2 2
, y x
x x
m
j
ikj ik
ik ik
= +
( )
( ) ( )
,
y
y y y y
l
ijkl
ikj ik j ikj ik j
=
+
+
, , 1 1
2 2
.
Formula de mai sus nu e cea mai economic. Dac domeniul este un dreptunghi, atunci se
mai grupeaz unii termeni.
4.3.Formule de tip Gauss pentru integrale duble i triple
Pentru integrale duble nu exist un domeniu standard natural aa cum este intervalul [-
1,1] pentru integrale simple. Indiferent care ar fi p+1 puncte distincte, putem determina n general
C
0
,..C
p
astfel ca formula
( )
=
=
f x y dxdy C f
i i i
i
p
D
( , ) ,
0
s fie adevrat pentru p+1 polinoame independnte. O formul de integrare de tipul de mai sus o
vom numi de tip Gauss dac d rezultate exacte pentru q+1>p+1 polinoame independente
f ( , ) . Dac lum domeniul standard triunghiul ( ) { } , | , , 0 1 0 1 1 + atunci
exist mai multe formule de acest tip. In continuare punctele
( )
P
i i i
, sunt marcate prin numere.
In cte un tabel alturat se dau coordonatele punctelor i coeficienii C.
50
Pentru integrale triple pentru pentru volumul
V= ( ) { } , , | , , , 0 1 0 1 0 1 1 + + avem:
Formula ( ) ( ) f d d d C f
i i i i
i
V
, , , , =
este adevrat
pentru ( ) f
a b c
, , = dac a+b+c 3.
4.4. Exerciii
1. S se programeze calculul unei integrale prin metoda trapezelor .
2. S se programeze calculul unei integrale prin metoda de tip Newton-Cotes
3. S se programeze calculul unei integrale prin metoda Simpson.
4. S se programeze calculul unei integrale duble prin metoda trapezelor.
5. S se programeze calculul unei integrale duble prin metoda Simpson.
6. S se programeze calculul unei integrale duble prin metoda.
7. Cum ar arta formulele analoage cu (5) pentru o integral tripl? S se programeze calculul
unei integrale triple prin utilizarea metodei trapezelor pentru fiecare integral simpl.
4.5 Programe
Mai jos este programul corespunztor metodei Gauss unidimensioinle.
program IntGauss;
const tmic:array[1..4]of real=(-0.8611363115,-0.3399810436,
0.3399810436, 0.8611363115);
c:array[1..4]of real=(0.3478548451,0.6521451549,
Punctul
C
1 1/3 1/3 -27/96
2 1/5 1/5 25/96
3 3/5 1/5 25/96
4 1/5 3/5 25/96
rezultat exact pentru
a b
a b 0 3 +
C
a a a -2/15
b b b 3/40
b b c 3/40
b c b 3/40
c b b 3/40
a=1/4; b=1/6; c=1/2
51
0.6521451549,0.3478548451);
{ s-au declarat t
i
i C
i
ca n teorie, dar din obinuin indicii
s-au luat ntre 1 i 4 n loc de 0-3}
var deplasare:array[1..4]of real;
a,b,pas,jumatepas,xref,x,s:real;
n,i,j,k:integer;
function f(x:real):real; {funcia de integrat}
begin
f:=x*x+sin(x)/(1+x);
end;
BEGIN
write('GAUSS a b=');readln(a,b); write('n=');readln(n);
pas:=(b-a)/n;jumatepas:=pas/2;
for k:=1 to 4 do deplasare[k]:=(tmic[k]+1)*jumatepas;
x x x x
d x deplasare k
in acest fel se fac mai putine calcule in formula
i i i i
k i
+
+
= +
1 1
1
2 2
4
[ ];
( )
s:=0;xref:=a-pas;
for i:=1 to n do
begin
xref:=xref+pas;
for k:=1 to 4 do
begin
x:=xref+deplasare[k];
s:=s+f(x)*c[k]; {se adun termenul corespunztor din formula (4)}
end;
end;
s:=s*jumatepas; {se inmultete suma cu (b-a)/(2n), ca n (4) }
writeln('GAUSS s=',s:10:6);
readln;
END.
Mai jos dm programul de calcul al unei integrale duble dup formula (5) n cazul cnd pentru
integrale simple se folosete metoda Gauss (formula (4)).
Program IntGauss2;
const p=3;
tmic:array[0..p]of real=(-0.8611363115,-0.3399810436,
0.3399810436, 0.8611363115);
c:array[0..p]of real=(0.3478548451,0.6521451549,
0.6521451549,0.3478548451);
a:real=0; b:real=1; n:integer=4; m:integer=4;
var pxj, s, xik, pyj, sik, yikjl:real;
52
i, k, j, l:integer;
function fi(x:real):real;{marginea de jos a domeniului}
begin
fi:=x*x;
end;
function psi(x:real):real;{marginea de sus a domeniului}
begin
psi:=4;
end;
function f(x,y:real):real;{funcia de integrat}
begin
f:=1/(1+x*x+y);
end;
BEGIN
write('a,b=');readln(a,b);write('n,m=');readln(n,m);
pxj:=(b-a)/(2*n); s:=0; {s este suma din (5) i se iniializeaz cu 0}
for i:=1 to n do
for k:=0 to p do
begin
xik:=a+pxj*(2*i-1)+pxj*tmic[k]; {se calculeaz x
ik
pentru formula 5}
pyj:=(psi(xik)-fi(xik))/(2*m);
sik:=0;
for j:=1 to m do
for l:=0 to p do
begin
yikjl:=fi(xik)+pyj*(2*j-1)+pyj*tmic[l];{se calculeaz y
ikjl
din 5}
sik:=sik+c[l]*f(xik,yikjl);
end;
s:=s+c[k]*pyj*sik;
end;
s:=s*pxj;
writeln('integrala este:',s:10:5);
readln;
END.
53
6. Metode Numerice Pentru Ecuaii Difereniale Ordinare
6.1. Problema Cauchy pentru ecuaii difereniale ordinare i sisteme de ecuaii difereniale
O ecuaie diferenial ordinar de ordinul nti este o ecuaie n care necunoscuta este o
funcie y(x) ce depinde de o singur variabil i care satisface o relaie de tipul
( ) ( ) ( ) x y , x f x ' y = (1)
O ecuaie diferenial are n general o infinitate de soluii i pentru selectarea uneia
singure se impun condiii suplimentare. Cea mai utilizat condiie n acest sens este condiia
Cauchy. Problema Cauchy const n determinarea unei funcii y(x) astfel ca
=
=
0 0
y ) x ( y
)) x ( y , x ( f ) x ( y
(2)
Aici f este o funcie continu, de regul satisfcnd aa numita condiie Lipschitz n variabila y
(dac este de clas
1
C atunci condiia este ndeplinit) definit pe un domeniu din plan, iar
( )
0 0
y , x este un punct din acel domeniu. Se demonstreaz la cursul de analiz c n condiii
generale problema Cauchy are o unic soluie cel puin pe o vecintate a punctului ( )
0 0
y , x . De
exemplu ecuaia xy ' y = admite soluiile ( )
2
x
2
1
Ce x y = unde C este o constant arbitrar. Condiia
Cauchy ( ) 1 0 y = impune C=1 i unica soluie a problemei ( )
2
x
2
1
Ce x y = , ( ) 1 0 y = este
( )
2
x
2
1
e x y = . In mod analog, un sistem de ecuaii difereniale ordinare este un sistem n care
necunoscutele sunt funcii de o variabil real ( ) ( ) ( ) x y ,... x y , x y
n 2 1
, legate ntre ele prin relaii de
forma:
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
=
=
=
x y ,... x y , x y , x f x ' y
....... .......... ..........
x y ,... x y , x y , x f x ' y
x y ,... x y , x y , x f x ' y
n 2 1 n n
n 2 1 2 2
n 2 1 1 1
(3)
Sistemele de ecuaii au i ele n general o infinitate de soluii. Pentru a selecta o soluie unic cel
mai frecvent se utilizeaz condiii de tip Cauchy:
( )
( )
( )
=
=
=
0 , n 0 n
0 , 2 0 2
0 , 1 0 1
y x y
..........
y x y
y x y
(4)
In continuare vom utiliza notaia vectorial
54
|
|
|
|
|
\
|
=
n
2
1
y
y
y
y
,
|
|
|
|
|
\
|
=
n
2
1
' y
' y
' y
' y
(5)
( )
( )
( )
( )
|
|
|
|
|
\
|
=
n 2 1 n
n 2 1 2
n 2 1 1
y ,... y , y , x f
...... ..........
y ,... y , y , x f
y ,... y , y , x f
y , x f (6)
Cu aceasta problema Cauchy pentru sisteme se scrie:
( )
( )
=
=
> <0
0
y x y
y , x f ' y
(7)
In cazul sistemelor de ecuaii vom nota componentele unui vector prin
n 2 1
y .. , y , y i dac avem
de a face cu iruri de vectori vom utiliza notaia ... y ... , y , y
n 2 1 > < > < > <
pentru vectorii din ir. Am
ales aceast notaie lund ca model notaia
> <j
M din Mathcad pentru coloana j a matricei M.
Exemplul 1. Sistemul de ecuaii difereniale:
=
=
1 2
2 1
y ' y
y ' y
are soluiile ( )
x
2
x
1 1
e C e C x y
+ = , ( )
x
2
x
1 2
e C e C x y
+ = . Dac se impun condiiile Cauchy
( ) ( ) 1 0 y , 1 0 y
2 1
= = se obine 0 C , 1 C
2 1
= = i de aici soluia unic a problemei Cauchy.
6.1.1 Metode numerice programate direct
Pentru ecuaiile la care nu se poate gsi soluia sub form de formul se caut soluii
aproximative sub form de tabel: pentru anumite valori ale lui x se dau valorile aproximative ale
soluiei.
Metoda Euler. Pentru funcia y(x) soluie a ecuaiei difereniale ) y , x ( f ' y = avem dezvoltarea
Taylor
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) + + = + + = + ' ' y
2
h
x y , x f h x y ' ' y
2
h
x ' y h x y h x y
2 2
(8)
Putem calcula aproximativ pe ( ) h x y + plecnd de la ( ) x y prin formula
( ) ( ) ( ) ( ) x y , x f h x y h x y + = + (9)
Eroarea pe care o facem este de ordinul ( )
2
h O . Dup un numr
h
L
n = pai, erorile se
acumuleaz i ne putem atepta la o eroare de ordinul ( ) ( ) ( ) ( ) h O h O L h O
h
L
h O n
2 2
= = = .
Deducem de aici urmtoarea metod de calcul aproximativ pentru soluia y(x):
i) Se d ecuaia (sau sistemul) ) y , x ( f ' y = cu condiia Cauchy ( )
0 0
y x y = . Se cere s se
determine soluia pe intervalul | | L x , x
0 0
+ .
ii) Alegem un pas h>0 i divizm intervalul | | L x , x
0 0
+ prin punctele
55
L x nh x x ... h 2 x x h x x x
0 0 n 0 2 0 1 0
+ = + = < < + = < + = < .
iii) Determinm valorile aproximative
i
y ale soluiei y(x) n punctele
i
x prin formula:
( )
+ = + =
=
+ + i i i 1 i i 1 i
0 0
y , x f y y , h x x
date y , x
(10)
Formula (10) este formula (9) n care x este nlocuit cu
i
x , iar y(x) este nlocuit cu ( )
i i
x y y i
ne d ( )
1 i 1 i
x y y
+ +
. Obinem astfel un tabel de valori care reprezint forma numeric a soluiei
aproximative:
n 2 1 0
n 2 1 0
y ... y y y
x ... x x x
(11)
Conform cu observaiile de dup formula (9) este de ateptat ca eroarea ( ) | y x y |
i i
n toate
punctele
i
x , i=0,1,...n s fie de forma ( ) h O deci s tind la zero cnd h tinde la zero. In puncte
intermediare punctelor
i
x soluia aproximativ poate fi obinut din (11) prin interpolare.
Pentru problema Cauchy la sisteme de ecuaii difereniale (7), formula Euler (10) de rezolvare
numeric se scrie:
( )
+ = + =
> < > < > + <
+
> <
i
i
i 1 i
i 1 i
0
0
y , x f h y y , h x x
date sunt y , x
(12)
Programarea n Mathcad a formulelor (10) sau (12) pentru rezolvarea numeric a ecuaiilor sau
sistemelor de ecuaii difereniale este simpl i o ilustrm pentru sistemul:
( )
( )
+ =
+ =
+ =
x y e ' y
x cos 1 e y ' y
x sin y e y ' y
1
y
3
y
3 2
3
x
2 1
1
1
, cu condiia Cauchy
|
|
|
\
|
=
|
|
|
\
|
=
1
0
0
y
y
y
0 x
3
2
1
(12)
Se poate verifica uor c soluia exact este
( ) ( ) ( ) ( )
x
3 2 1
e x y , x sin x y , x 0 y
= = = (13)
Vom compara soluia aproximativ cu soluia exact.
Programul Mathcad.
ORIGIN 1
Sistemul
f x y , ( )
y
2
e
x
y
3
+ sin x ( )
y
3
e
y
1
1 cos x ( ) +
e
y
1
y
1
+ x
|
\
|
|
|
|
|
|
:=
Pe
0
x l notm n Mathcad xi, iar pe
> <0
y l notm yi.
Intervalul xi 0 := L 1 :=
Conditia initiala
yi
0
0
1
|
\
|
|
|
:=
56
Numarul de pasi pentru integrare pe [xi, xi+L]:
n 20 := h
L
n
:=
Punctele in care vom determina solutia aproximativa
i 1 n 1 + .. := xx
i
xi i 1 ( ) h + :=
Rezolvare_E x xi
y yi
S y
y y h f x y , ( ) +
x x h +
S augment S y , ( )
i 2 n 1 + .. for
S stack xx
T
S ,
( )
S
:=
sol Rezolvare_E
T
:=
sol
1 2 3 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
0 0 0 1
0.05 0.05 0.05 0.95
0.1 0.1 0.1 0.902
0.15 0.15 0.149 0.857
0.2 0.2 0.199 0.814
0.25 0.249 0.247 0.773
0.3 0.299 0.295 0.734
0.35 0.349 0.343 0.697
0.4 0.398 0.389 0.662
0.45 0.447 0.434 0.628
0.5 0.497 0.479 0.596
0.55 0.546 0.521 0.565
0.6 0.595 0.563 0.536
0.65 0.643 0.603 0.508
0.7 0.692 0.641 0.482
0.75 0.74 0.677 0.456
0.8 0.788 0.711 0.432
0.85 0.836 0.744 0.408
0.9 0.883 0.774 0.386
0.95 0.93 0.802 0.365
1 0.977 0.827 0.344
=
57
Graficul solutiilor
0 0.2 0.4 0.6 0.8
0
0.5
1
trace 1
trace 2
trace 3
sol
2
sol
3
sol
4
sol
1
In programul de mai sus am utilizat indici de la 1 la n+1 n loc de 0..n pentru c am declarat
ORIGIN=1. Rezolvarea este coninut n procedura Rezolvare unde soluiile aproximative la
x=xi, x=xi+h, xi+2h, ... x=xi+L sunt puse ca i coloane consecutive n matricea S i la urm se
mai adaug o linie la matricea S, anume linia cu valorile lui x. Cnd se afieaz rezultatele n
matricea sol, matricea S este transpus, aa c pe prima coloan avem valorile lui x, pe a doua
coloan avem valorile lui
1
y , pe a treia valorile lui
2
y i pe a patra valorile lui
3
y . Comparaea
soluiei aproximative cu cea exact (13) se poate face prin erorile absolute
max sol
2
xx
( )
0.043 =
max sol
3
sin xx ( )
( )
0.024 =
max sol
4
e
xx
( )
0.06 =
sau prin erorile relative
max
sol
2
xx
sol
2
|
\
|
|
|
0.016 =
max
sol
3
sin xx ( )
sol
3
|
\
|
|
|
0.01 =
max
sol
4
e
xx
sol
4
|
\
|
|
|
0.02 =
Se vede c erorile relative nu depesc 2%.
Spunem c metoda lui Euler are o precizie de ordinul unu pentru c ( ) ( ) h O | y x y |
i i
= pentru
toate punctele | | L x , x x
0 0 i
+ . O metod numeric se numete de ordin p dac
58
( ) ( )
p
i i
h O | y x y | = pentru toate punctele | | L x , x x
0 0 i
+ . O metod de ordin p>1 este mai
bun ca o metod de ordin 1 pentru c atunci cnd 0 h rezult c eroarea absolut
( ) | y x y |
i i
tinde mai repede la zero.
Exist i metode mai precise de rezolvare numeric a ecuaiilor sau sistemelor de ecuaii
difereniale. Mai jos dm formulele pentru cteva metode utilizate frecvent. Formulele sunt
scrise pentru ecuaii dar ele sunt valabile sub aceeai form i pentru sisteme. In acest caz ar fi
trebuit s scriem formulele cu notaia
> <i
y pentru vectori i f pentru funcia f. Cititorul poate
face singur aceast adaptare.
Metoda Euler perfecionat
( )
\
|
+ + + =
+ i i i i i 1 i
0 0
y , x f
2
h
y ,
2
h
x f h y y
date sunt y , x
(14)
Metoda Euler mbuntit
( ) ( ) ( ) ( )
+ + + + =
+ i i i i i i i 1 i
0 0
y , x f h y , h x f y , x f
2
h
y y
date sunt y , x
(15)
Metoda Euler implicit (sau predictor corector)
( ) ( ) ( )
+ + =
+ + + 1 i 1 i i i i 1 i
0 0
y , x f y , x f
2
h
y y
date sunt y , x
(16)
Formulele (16) conin pe
1 i
y
+
implicit i pentru a-l determina avem de rezolvat o ecuaie la
fiecare pas. S-ar putea n diverse manuale aceste formule s poarte alte nume dar acest lucru este
puin important. Aceste trei metode sunt de ordinul 2, deci mai precise ca metoda Euler simpl.
Metoda Runge-Kutta de ordinul 4
( )
( )
( )
+ + + + =
+ + =
|
\
|
+ + =
|
\
|
+ + =
=
+ =
+
+
+ +
4 k 3 k 2 2 k 2 1 k
6
1
y y
3 k y , h x f h 4 k
2
2 k
y ,
2
h
x f h 3 k
2
1 k
y ,
2
h
x f h 2 k
y , x f h 1 k
h x x
astfel y , x la trecem y , x la de
date sunr y , x
i 1 i
i i
i i
i i
i i
i 1 i
1 i 1 i i i
0 0
(17)
Aceast metod este de ordinul 4. Exist i alte formule de tip Runge-Kutta de ordinul 4.
Metodele numite uneori multipas utilizeaz pentru calculul lui
1 i
y
+
valorile lui y determinate la
civa pai anteriori, . etc , y , y , y
2 i 1 i i
. Prin contrast, metodele menionate mai sus se numesc
metode unipas.
Unele din aceste metode multipas dau pe
1 i
y
+
explicit n funcie de cteva valori anterioare
(metode Adams-Bashfort) ca de exemplu:
59
( ) ( ) ( )
+ =
+ 1 i 1 i i i i 1 i
1 1
0 0
y , x f y , x f 3
2
h
y y
: calculam 1 i pentru
2) ordin de Euler exemplu (de
2 ordin de unipas metoda o cu calculeaza se y , x
date sunt y , x
(18)
Metoda este de ordin 2.
O metod mai precis
( ) ( ) ( ) ( )
+ + =
+ 2 i 2 i 1 i 1 i i i i 1 i
2 2 1 1
0 0
y , x f 5 y , x f 16 y , x f 23
12
h
y y
: calculam 2 i pentru
4) ordin de Kutta unge R exemplu (de
3 putin cel ordin de unipas metoda o cu calculeaza se y , x , y , x
date sunt y , x
(19)
Metoda este de ordinul 3.
O metod de ordinul 4 se scrie astfel:
( ) ( ) ( ) ( ) ( )
+ + =
+ 3 i 3 i 2 i 2 i 1 i 1 i i i i 1 i
3 3 2 2 1 1
0 0
y , x f 9 y , x f 37 y , x f 59 y , x f 55
24
h
y y
: calculam 3 i pentru
4) ordin de Kutta unge R exemplu (de
4 putin cel ordin de unipas metoda o cu calculeaza se y , x , y , x , y , x
date sunt y , x
(20)
Aceste metode sunt mai rapide dect Runge-Kutta dar primele valori trebuie calculate printr-o
metod unipas de acelai ordin de preczie cel puin.
Alte metode multipas dau pe
1 i
y
+
ca soluie a unei ecuaii algebrice care conine i valorile y la
civa pai anteriori (metode Adams-Moulton):
( ) ( ) ( ) ( )
+ =
+ + + 1 i 1 i i i 1 i 1 i 1 i
1 1
0 0
y , x f y , x f 8 y , x f 5
12
h
y
avem 1 i pentru
4) ordinul de Kutta unge R exemplu (de
3 putin cel ordin de unipas metoda o cu calculeaza se , y , x
date sunt y , x
(21)
60
Metoda este de ordinul 3.
O metod mai precis:
( ) ( ) ( ) ( ) ( )
+ + + =
+ + + 2 i 2 i 1 i 1 i i i 1 i 1 i i 1 i
2 2 1 1
0 0
y , x f y , x f 5 y , x f 19 y , x f 9
24
h
y y
: calculam 2 i pentru
4) ordin de Kutta unge R exemplu (de
4 putin cel ordin de unipas metoda o cu calculeaza se , y , x , y , x
date sunt y , x
(22)
Metoda este de ordinul 4.
Pentru programarea n Mathcad a acestor metode urmm modelul de programare al
metodei Euler. Avem de schimbat doar procedura Rezolvare. Mai jos indicm cum arat aceast
procedur pentru cteva din metodele (14)-(22).
Procedura de rezolvare pentru metoda Euler implicit (formula (16)).
Rezolvare_EI x xi
y yi
S y
yp y h f x y , ( ) +
yc y
h
2
f x y , ( ) f x h + yp , ( ) + ( ) +
yp yc
yc y
h
2
f x y , ( ) f x h + yp , ( ) + ( ) +
yp yc
1 yc +
10
6
> while
y yc
x x h +
S augment S y , ( )
i 2 n 1 + .. for
S stack xx
T
S ,
( )
S
:=
sol Rezolvare_EI
T
:=
Erorile relative pentru sistemul (12) cu acelai pas h de integrare sunt n cazul metodei
implicite mai mici ca n cazul metodei Euler simple ceea ce era de ateptat deoarece metoda
implicit este de ordinul 2 pe cnd metoda Euler simpl este de ordinul 1.
61
max
sol
2
xx
sol
2
|
\
|
|
|
2.923 10
4
=
max
sol
3
sin xx ( )
sol
3
|
\
|
|
|
4.569 10
4
=
max
sol
4
e
xx
sol
4
|
\
|
|
|
2.181 10
4
=
Rezolvarea ecuaiei ( ) ( ) ( )
1 i 1 i i i i 1 i
y , x f y , x f
2
h
y y
+ + +
+ + = se face n procedura Rezolvare
astfel:
i. In program
i
x apare sub forma x, iar
i
y sub forma y i calculm un candidat la soluia
sistemului ( ) ( ) ( )
1 i 1 i
y , h x f y , x f
2
h
y y
+ +
+ + + = , anume ) y , x ( f h y yp + = , adic acel
1 i
y
+
dat de
metoda Euler simpl. Acest candidat se numete predictor.
ii. Imediat se calculeaz un corector al acestui candidat prin formula
( ) ( ) ( ) yp , h x f y , x f
2
h
y yc + + + = care este mai apropiat de ecuaia (16) pentru
1 i
y
+
.
iii. Intr-un ciclu while se repet operaiile de nlocuire a predictorului cu corectorul i de calcul al
unui nou corector pn eroarea relativ ntre predictor i corector este suficient de mic (n cazul
nostru de
6
10
\
|
|
k3 h f x
h
2
+ y
k2
2
+ ,
|
\
|
|
k4 h f x h + y k3 + , ( )
yu y
k1 2 k2 + 2 k3 + k4 +
6
+
yu return
:=
Rezolvare_AM4 S yi
F
1
f xi yi , ( )
y2 rk4 f xi , yi , h , ( )
x2 xi h +
S augment S y2 , ( )
F
2
f x2 y2 , ( )
y3 rk4 f x2 , y2 , h , ( )
x3 x2 h +
S augment S y3 , ( )
F
3
f x3 y3 , ( )
yp S
i
h f xx
i
S
i
,
|
\
|
+
yc S
i
h
24
9f xx
i 1 +
yp ,
( )
19 F
i
+ 5 F
i 1
F
i 2
+
( )
+
yp yc
yc S
i
h
24
9f xx
i 1 +
yp ,
( )
19 F
i
+ 5 F
i 1
F
i 2
+
( )
+
yp yc
1 yc +
10
6
> while
S augment S yc , ( )
F
i 1 +
f xx
i 1 +
S
i 1 +
,
|
\
|
i 3 n .. for
S stack xx
T
S ,
( )
S return
:=
sol Rezolvare_AM4
T
:=
Restul programului este ca la metoda Euler simpl. Constatm c erorile relative sunt mai mici i
ca cele din metoda Euler implicit, ceea ce era de ateptat deoarece metoda aceasta este de
ordinul 4.
63
max
sol
2
xx
sol
2
|
\
|
|
|
1.08 10
6
=
max
sol
3
sin xx ( )
sol
3
|
\
|
|
|
1.159 10
6
=
max
sol
4
e
xx
sol
4
|
\
|
|
|
7.186 10
7
=
Ecuaiile difereniale de ordin superior sunt ecuaii n care funcia necunoscut intr
mpreun cu derivate de ordin mai mare ca unu. Forma standard a unei asemenea ecuaii este:
( ) ( )
( )
1 n n
y ,.... ' ' y , ' y , y , x f y
= (23)
Ecuaia (23) este echivalent cu sistemul
( )
=
=
=
n 2 1 n
3 2
2 1
y ,... y , y , x f ' y
..........
y ' y
y ' y
(24)
Corespondena ntre ecuaia (23) i sistemul (24) este ( ) ( ) x y x y
1
, ( ) ( ) x y x ' y
2
,...
( )
( ) ( ) x y x y
n
1 n
= = =
=
1 n 0
1 n
1 0 0 0
1 n n
v x y ... , v x ' y , v x y
y ,.... ' ' y , ' y , y , x f y
(25)
Aceast problem Cauchy pentru ecuaia diferenial de ordinul n devine cnd se trece la forma
(24) o problem Cauchy pentru sistemul de ecuaii difereniale ordinare echivalent:
( )
=
=
=
n 2 1 n
3 2
2 1
y ,... y , y , x f ' y
..........
y ' y
y ' y
cu condiia
( )
( )
( )
=
=
=
1 n 0 n
1 0 2
0 0 1
v x y
. ..........
v x y
v x y
(26)
Acest sistem poate fi tratat numeric prin orice metod (10) sau (14)-(22) discutate mai nainte.
6.1.2 Proceduri existente n Mathcad pentru rezolvarea problemei Cauchy
In sistemul Mathcad exist implementate proceduri de rezolvare a ecuaiilor difereniale
ordinare:
rkfixed(init, x1, x2, nrpuncte, F) rezolv sistemul F de ecuaii prin metoda Runge-Kutta de
ordinul 4 (formulele (17)) utiliznd un pas fix h pentru integrare.
64
Rkadapt(init, x1, x2, nrpuncte, F) rezolv sistemul F de ecuaii prin metoda Runge-Kutta de
ordinul 4 (formulele (17)) utiliznd un pas h variabil care se alege automat n procedur pentru
controlul preciziei soluiei.
Bulstoer(init, x1, x2, nrpuncte, F) rezolv sistemul F de ecuaii prin metoda Bulirsch-Stoer.
In aceste proceduri parametrii de intrare sunt:
init este un numr sau un vector cu condiiile iniiale, adic soluia n x1.
x1 este x initial, marginea din stnga a intervalului de integrare.
x2 este x final, captul din dreapta a intervalului de integrare.
nrpuncte este numrul de puncte ntre x1 i x2 n care se returneaz soluia apoximativ, n plus
fa de punctul x1.
F este funcia ce determin sistemul ( ) y , x F ' y = .
Rezultatul acestor proceduri este o matrice care pe prima coloan are valorile lui x, iar pe
celelalte coloane valorile funciilor necunoscute calculate n punctele x din prima coloan.
In exemplul urmtor rezolvm sistemul (12) prin procedurile din Mathcad.
ORIGIN 1
Sistemul
f x y , ( )
y
2
e
x
y
3
+ sin x ( )
y
3
e
y
1
1 cos x ( ) +
e
y
1
y
1
+ x
|
\
|
|
|
|
|
|
:=
Intervalul x1 0 := x2 1 := nrpuncte 40 :=
Conditia initiala
yinitial
0
0
1
|
\
|
|
|
:=
sol Rkadapt yinitial x1 , x2 , nrpuncte , f , ( ) :=
65
sol
1 2 3 4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
0 0 0 1
0.025 0.025 0.025 0.975
0.05 0.05 0.05 0.951
0.075 0.075 0.075 0.928
0.1 0.1 0.1 0.905
0.125 0.125 0.125 0.882
0.15 0.15 0.149 0.861
0.175 0.175 0.174 0.839
0.2 0.2 0.199 0.819
0.225 0.225 0.223 0.799
0.25 0.25 0.247 0.779
0.275 0.275 0.272 0.76
0.3 0.3 0.296 0.741
0.325 0.325 0.319 0.723
0.35 0.35 0.343 0.705
0.375 0.375 0.366 0.687
=
0 0.2 0.4 0.6 0.8
0
0.5
1
trace 1
trace 2
trace 3
sol
2
sol
3
sol
4
sol
1
Rezolvarea prin metodele implementate n Mathcad este de preferat deoarece sunt implementate
mai eficient.
In afar de aceste metode avem posibilitatea de a rezolva un sistem de ecuaii difereniale
ordinare printr-un bloc Odesolve. Un asemenea bloc se ncepe prin cuvntul Given, se continu
cu scrierea ecuaiilor i a condiiilor iniiale i se ncheie prin cuvntul Odesolve sub forma
solutia:=Odesolve(necunoscutele, variabila indepndent, valoarea final a variabilei de
integrare, numrul de pai n care e calculat soluia aproximativ)
De remarcat c soluia furnizat de Odesolve este o funcie care se obine prin interpolare cu
funcii spline din valorile numerice calculate ntr-un numr de puncte intermediare ntre valoarea
iniial a variabilei inependente i valoarea final. Numrul de puncte intermediare este ultimul
argument din Odesolve i este opional. Dac nu se d atunci este luat automat 1000. Rezolvarea
problemei (12) ntr-un bloc Odesolve se poate face ca n programul urmtor:
66
Given
x
y1 x ( )
d
d
y2 x ( ) e
x
y3 x ( ) + sin x ( ) y1 0 ( ) 0
x
y2 x ( )
d
d
y3 x ( ) e
y1 x ( )
1 cos x ( ) +
y2 0 ( ) 0
x
y3 x ( )
d
d
e
y1 x ( )
y1 x ( ) + x y3 0 ( ) 1
s1
s2
s3
|
\
|
|
|
Odesolve
y1
y2
y3
|
\
|
|
|
x , 1 , 1500 ,
(
(
(
:=
t 0 0.01 , 1 .. :=
0 0.2 0.4 0.6 0.8
0
0.5
1
trace 1
trace 2
trace 3
s1 t ( )
s2 t ( )
s3 t ( )
t
Este de observat faptul c n definirea sistemului ntr-un bloc Odesolve se utilizeaz y1(x), y2(x),
y3(x) cu sublinierea variabilei de care depind y1, y2, y3, iar egalitile sunt date prin egal ngroat
(Ctrl =). De asemenea n instruciunea Odesolve, numele funciilor necunoscute se introduc ntr-o
matrice coloan. Rezultatul nu mai este o matrice ca n cazul procedurilor rkfixed, Rkadapt sau
Bulstoer ci este format dintr-un numr de funcii egal cu numrul de necunoscute. Aceste nume
ale funciilor rezultat poate s difere de numele din sistem sau se pot alege aceleai nume ca n
sistem. Astfel, am fi putut scrie
y1
y2
y3
|
\
|
|
|
Odesolve
y1
y2
y3
|
\
|
|
|
x , 1 , 1500 ,
(
(
(
:=
n loc de
s1
s2
s3
|
\
|
|
|
Odesolve
y1
y2
y3
|
\
|
|
|
x , 1 , 1500 ,
(
(
(
:=
cu acelai efect.
Exerciii
1. Se d problema Cauchy
67
( )
+ =
=
+ +
=
1 3 3
2 3 2
2
2
2
1
1
y y ' y
y y x sin ' y
2
y y 1
x
' y
,
( )
( )
( )
=
=
=
1 1 y
1 1 y
0 1 y
3
2
1
a. S se scrie cte un program de rezolvare a problemei prin fiecare din metodele (10), (14)-(22).
b. S se rezolve problema folosind procedura Rkadapt.
c. S se rezolve problema folosind procedura Bulstoer.
d. S se rezolve problema folosind un bloc Odesolve.
2. S se traseze graficul soluiei problemei Cauchy ( ) ( ) 0 0 ' y , 1 0 y , 0 x y ' y x ' ' y
2
= = = + + , pe
intervalul [0, 1].
3. Soluia problemei Cauchy ( ) ( ) a 0 ' y , 1 0 y , 1 xy
a 1
1
' ay ' ' y
2
= = =
+
+ variaz n funcie de
parametrul a. S se traseze graficul valorilor soluiei n x=1 n funcie de parametrul a, tiind c
parametrul a variaz n intervalul [-1.1].
6.2 Probleme cu condiii n mai multe puncte pentru ecuaii i sisteme de ecuaii difereniale
ordinare
6.2.1 Scheme cu diferene finite pentru probleme bilocale
Fie urmtoarea problem: s se determine R ] l , 0 [ : y , de clas C
2
pe (0,l) i continu pe
[0,l] astfel nct:
=
=
= +
b ) l ( y
a ) 0 ( y
) l , 0 ( x pentru ) x ( f y ) x ( c ' ' y
(1)
unde q i f sunt funcii continue pe [0,l], 0 c .
Se demonstreaz c problema are soluie unic. Pentru determinarea aproximativ a acestei
soluii putem proceda astfel:
a) Divizm intervalul [0,l] n n subintervale egale: l x ... x x 0
n 1 0
= < < < = si notm cu x
i
punctele de diviziune. Fie h=l/n, distana ntre dou puncte de diviziune consecutive.
b) Prin dezvoltarea Taylor a lui ( ) h x y
i
i ( ) h x y
i
+ n raport cu h gsim c n punctul
x
i
avem
y x
y x y x y x
h
O h
i
i i i
' ' ( )
( ) ( ) ( )
( ) =
+
+
+ 1 1
2
2
2
(2)
Inlocuim valorile y(x
i
), pe care oricum nu le cunoatem, prin necunoscutele y
i
. Inlocuind (2) n
(1) i neglijnd termenii O(h
2
) gsim pentru y
i
sistemul:
68
=
=
= = +
+
+
b y
a y
1 n ,..., 2 , 1 i , ) x ( f y ) x ( c
h
y y 2 y
n
0
i i i
2
1 i i 1 i
(3)
Deoarece am neglijat nite termeni cnd am nlocuit (2) n (1), soluia sistemului (3) nu va
fi exact y(x
i
) dar termenii neglijai fiind mici, ( )
2
h O , se demonstreaz c avem
lim| ( ) |
h
i i
y x y
=
0
0 n toate punctele | | 1 , 0 x
i
. Aceast metod de discretizare a ecuaiei
difereniale se numete metoda diferenelor finite.
Pentru rezolvarea sistemului (3), l scriem sub forma:
y a
A y B y C y D pentru i n
y b
i i i i i i i
n
0
1 1
1 2 1
=
+ + = =
=
+
, , ... (4)
unde
) x ( f h D ; 1 C )); x ( c h 2 ( B ; 1 A
i
2
i i i
2
i i
= = + + = = (5)
Prin rezolvarea sistemului se determin aproximativ valorile y(x
i
). Programul
corespunztor problemei
=
=
+ = +
0 ) 1 ( u
0 ) 0 ( u
x x 2 xu ' ' u
3 2
(6)
este urmtorul:
REZOLVAREA UNEI PROBLEME BILOCALE PRIN METODA DIFERENTELOR FINITE
Pentru rezolvarea problemei bilocale -u''+cu=f, u(s)=a, u(d)=b pe intervalul
[s, d], definim urmatoarele functii
c x ( ) x := f x ( ) 2 x
2
+ x
3
:=
s 0 := d 1 := a 0 := b 0 :=
Solutia exacta este:
uex x ( ) x x
2
:=
n 10 := h
d s
n
:= i 0 n .. := x
i
s h i + :=
Matricea sistemului liniar:
M
0 0 ,
1 := M
n n ,
1 :=
i 1 n 1 .. := M
i i ,
2 h
2
c x
i
( )
+ := M
i i 1 ,
1 := M
i i 1 + ,
1 :=
69
M
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
10
1 0 0 0 0 0 0 0 0 0
-1 2.001 -1 0 0 0 0 0 0 0
0 -1 2.002 -1 0 0 0 0 0 0
0 0 -1 2.003 -1 0 0 0 0 0
0 0 0 -1 2.004 -1 0 0 0 0
0 0 0 0 -1 2.005 -1 0 0 0
0 0 0 0 0 -1 2.006 -1 0 0
0 0 0 0 0 0 -1 2.007 -1 0
0 0 0 0 0 0 0 -1 2.008 -1
0 0 0 0 0 0 0 0 -1 2.009
0 0 0 0 0 0 0 0 0 0
=
Termenii liberi
L
0
a := L
n
b := i 1 n 1 .. := L
i
h
2
f x
i
( )
:=
Solutia aproximativa:
y M
1
L :=
Solutia exacta:
i 0 n .. := ye
i
uex x
i
( )
:=
0 0.2 0.4 0.6 0.8
0
0.1
0.2
y
ye
x
Se vede c practic soluia aproximativ se suprapune peste soluia exact.
Exerciii
1. S se rezolve ecuaia ( ) ( ) 0 2 y , 1 1 y , x xy 3 ' ' y
2
= = = + pe intervalul [1,2].
2. S se modifice programul de mai sus pentru rezolvarea ecuaiei
( ) ( ) ( ) ( ) ( ) = = = + + b y , , a y , x f y x q ' y x p ' ' y (problema nu are soluie pentru orice p i q).
6.2.2 Metoda elementului finit pentru probleme bilocale
In cele ce urmeaz este explicat i exemplificat utilizarea metodei elementului finit pentru
rezolvarea unei probleme bilocale pe intervalul I=(0,1). Problema creia i cutm o soluie este
urmtoarea:
70
( ) ( ) ( ) ( ) ( )
( ) ( )
= =
= +
0 1 u , 0 0 u
0 x c ), 1 , 0 ( x x f x u x c x u
(P)
unde c i f sunt continue pe I. Soluiile clasice ale acestei probleme sunt funcii
( ) ( ) I C I C u
0 2
care verific cerinele (P). In cele ce urmeaz notm cu V spaiul
funciilorcontinue pe I, care se anuleaz la capetele intervalului i care au derivate de ordinul 1 cu
excepia eventual a unei mulimi finite de puncte. In plus cerem ca integralele pe I ale ptratelor
derivatelor s fie finite.
Definim R V V : a , R V : L , R V : J prin
( ) ( ) ( ) ( ) ( ) ( ) ( ) x d x v x u x c x v x u v , u a
I
+ =
( ) ( ) ( ) x d x v x f v L
I
=
( ) ( ) ( ) v L v , v a
2
1
v J =
In continuare considerm urmtoarele probleme
( ) ( )
V v v L v , u a
V u
(PV)
( ) ( )
v J inf u J
V u
V v
(MV)
Avem urmtorul rezultat
Propoziia 1. a) Dac problema (P) are soluia u atunci u este soluie i pentru problemele (PV)
i (MV).
b) Dac una din problemele (PV) sau (MV) are o soluie de clas
2
C atunci aceea este soluie
i pentru problema (P) .
Nu intrm n detalii de demonstraie ale acestei teoreme. Teorema ne spune c pentru a rezolva
problema (P) este suficient a rezolva probleme (PV), iar pentru problema (PV) vom indica o
metod numeric.
Definim pentru R h , 0 h > , un spaiu finit dimensional V V
h
i vom cuta n
h
V o
funcie
h
u care s fie soluie a unei probleme asemntoare cu problema (PV). Vom arta pe
urm c pentru 0 h rezult u u
h
.
Pentru definirea spaiului
h
V alegem
1 n
1
h
+
= ,
=
+
rest n 0
] x , x [ x
] x , x [ x
x w
1 i i h
x x
i 1 i h
x x
i
1 i
1 i
pentru i=1, 2,..., n. Graficul unei asemenea funcii arat astfel (graficul este fcut din Mathcad)
71
0 0.5 1
0
0.5
1
Graficul functiei w(i,x)
0.98
0
submatrixpg 0 , ngr , 1 , 1 , ( )
0
1 0 submatrixpg 0 , ngr , 0 , 0 , ( ) p
j
,
Fie
h
V spaiul vectorial generat de funciile
i
w de mai sus. Este un spaiu finit dimensional, de
dimensiune n i o funcie din
h
V este liniar pe orice interval ] x , x [
i 1 i
. Graficul unei astfel de
funcii arat ca n figura urmtoare:
0 0.2 0.4 0.6 0.8 1
0
0.5
1
1.5
2
1.509
0
submatrix pg 0 , ngr , 1 , 1 , ( )
0
1 0 submatrix pg 0 , ngr , 0 , 0 , ( ) p
j
,
Pentru o funcie
h
V v avem dezvoltarea ( )
i i
n
1 i
w x v v =
=
pentru c n ambii membri avem
funcii liniare pe intervalele ] x , x [
i 1 i
i care iau n punctele
i
x valorile ( )
i
x v . Definim
problema urmtoare, asemntoare cu (PV)
( ) ( )
=
h h h h h
h h
V v , v L v , u a
V u
(Ph)
In spaiul finit dimensional
h
V avem
i i
n
1 i
h
w u =
=
(sol)
Inlocuind pe
h
u n (Ph) rezult
( ) n .. 1 j , w L w , w a
j j i i
n
1 i
= =
|
|
\
|
=
sau
B A =
unde
( ) ( )
( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
= =
+ = = = =
x d x w x f w L B
x d x w x w x c x w x w ) w , w ( a ) w , w ( a A A
R , 1 , n M B , R , n , n M A
i
I
i i
j i j i
I
i j j i i , j j , i
72
Avem B A
1
= (inversarea matricei A se arat c este posibil). Cu aceste valori
determinate avem soluia aproximativ
h
u dat de (sol).
In ce privete calitatea aproximrii soluiei exacte a problemei (P) de ctre soluia
h
u a
problemei (Ph) avemurmtorul rezultat
Propoziia 2. Dac problema P are soluia ( ) ( ) I C I C u
0 2
atunci soluia
h
u a problemei
(Ph) satisface o inegalitate de forma ( ) Ch dx | x u ) x ( u |
I
2
h
h
p
i 1
x p
i
if
p
i 1 +
x
h
p
i
x p
i 1 +
if
0 otherwise
:= dw i x , ( )
1
h
p
i 1
x p
i
if
1
h
p
i
x p
i 1 +
if
0 otherwise
:=
Matricea sistemului liniar (indicii sunt intre 0 si n-1)
i 1 n .. := j 1 n .. :=
A
i 1 j 1 ,
p
i 1
p
i 1 +
x dw i x , ( ) dw j x , ( ) c x ( ) w i x , ( ) w j x , ( ) + ( )
d :=
73
A
0 1 2 3 4 5 6 7 8 9
0
1
2
3
4
5
6
7
8
9
22.006 -10.998 0 0 0 0 0 0 0 0
-10.998 22.011 -10.997 0 0 0 0 0 0 0
0 -10.997 22.017 -10.995 0 0 0 0 0 0
0 0 -10.995 22.022 -10.994 0 0 0 0 0
0 0 0 -10.994 22.028 -10.992 0 0 0 0
0 0 0 0 -10.992 22.033 -10.991 0 0 0
0 0 0 0 0 -10.991 22.039 -10.99 0 0
0 0 0 0 0 0 -10.99 22.044 -10.988 0
0 0 0 0 0 0 0 -10.988 22.05 -10.987
0 0 0 0 0 0 0 0 -10.987 22.055
=
Termenii liberi
i 1 n .. := B
i 1
p
i 1
p
i 1 +
x f x ( ) w i x , ( )
d :=
A
1
B :=
Solutia
uh x ( )
1
n
i
i 1
w i x , ( ) ( )
=
:=
Graficul solutiei aproximative si al solutiei exacte
k 0 ngr .. := tg
k
s k
d s
ngr
+
|
\
|
|
:= fg
k
uh tg
k
( )
:= feg
k
uex tg
k
( )
:=
0 0.2 0.4 0.6 0.8
0
0.1
0.2
fg
feg
tg
Se vede c soluia aproximativ, fg, practic se suprapune peste soluia exact, feg.
Este de remarcat c att n metoda diferenelor finite ct i n metoda elementului finit, matricea
sistemului liniar care se obine are elemente nenule doar n apropierea diagonalei principale.
Exerciii
1. S se modifice programul de mai sus pentru rezolvarea problemei ( ) ( ) ( ) ( ) x f x u x c x ' ' u = + pe
intervalul [a,b] i ( ) ( ) = = b u , a u .
2. S se modifice programul de mai sus prin utilizarea funciilor model
74
( )
( )( )
=
+
=
rest in 0
] x , x [ x daca ,
h
x x x x
x w
1 i 1 i
2
1 i 1 i
i
.
6.3 Utilizarea blocului Odesolve din Mathcad pentru probleme bilocale
Aa cum am utilizat blocul Odesolve pentru rezolvarea problemei Cauchy, se poate utiliza i
pentru rezolvarea problemelor bilocale. Pentru aceasta se introduc n interiorul blocului condiiile
la capete, n locul condiiilor Cauchy. In cele ce urmeaz rezolvm problema
( ) ( ) ( ) ( ) x f x u x c x u = + pe intervalul ( ) 1 , 0 , cu condiiile ( ) ( ) 0 1 u 0 u = = . Este aceeai
problem care a fost rezolvat mai nainte prin diferene finite i prin element finit.
REZOLVAREA UNEI PROBLEME BILOCALE PRIN BLOCUL Odesolve
Pentru rezolvarea problemei bilocale -u''+cu=f, u(s)=a, u(d)=b pe intervalul
[s, d], definim urmatoarele functii
c x ( ) x := f x ( ) 2 x
2
+ x
3
:=
s 0 := d 1 := a 0 := b 0 :=
Given
2
x
u x ( )
d
d
2
1 ( ) c x ( ) u x ( ) + f x ( )
u s ( ) a
u d ( ) b
sol Odesolve u ( ) x , 1 , [ ] :=
Graficul solutiei
x s s 0.01 + , d .. :=
0 0.5 1
0
0.1
0.2
sol x ( )
x
Observaie. In instruciunea ] d , x ), u [( Odesolve : sol = trebuie neaprat ca funcia necunoscut, u,
75
s fie introdus ntr-o matrice, chiar dac este o singur necunoscut.
Exerciii
1. S se caute soluii ntr-un bloc Odesolve pentru problemele:
a. ( ) ( ) ( ) 0 1 ' y , 1 2 y , 1 0 y , x y 2 ' y 3 ' ' ' y = = = = +
b.
( )
( )
( )
=
=
+ =
+ =
0 1 y
1 0 y
x sin y ' y
x y ' y
2
1
1 2
2 1
c. ( ) 2 1 ' y , 1 ) 1 ( y ) 0 ( y , x y x 2 ' ' y
2
= = + = +
6.4 Metoda tirului pentru probleme bilocale
Metoda tirului pentru problema
( )
=
=
=
b y
) a ( y
) y , x ( f ' ' y
(1)
unde a<b, const n ghicirea unei valori astfel ca problema Cauchy
( )
=
=
=
a ' y
) a ( y
) y , x ( f ' ' y
(2)
s aib calitatea c ( ) = b y . In acest caz traiectoria calculat pentru problema Cauchy (2), prin
oricare din metodele studiate n capitolul 6.1, reprezint soluia problemei bilocale (1). Pentru a
determina o astfel de valoare privim pe ( ) b y , unde y(x) este soluia problemei (2), ca o funcie
G ce depinde de , deci ( ) ( ) b y G = . Condiia ( ) = b y este echivalent cu ( ) = G . Avem
astfel de rezolvat ecuaia algebric ( ) = G pentru care putem utiliza funcia root sau un bloc
solve. Soluia problemei
( ) ( ) ( ) ( )
=
=
= +
0 ) 1 ( u
0 ) 0 ( u
x f x u x c x u
(3)
unde ( ) x x c = i ( )
3 2
x x 2 x f + = o cutm n Mathcad pe aceast cale.
76
ORIGIN 1
REZOLVAREA UNEI PROBLEME BILOCALE PRIN METODA TIRULUI
Problema
2
x
u x ( )
d
d
2
c x ( ) u x ( ) + f x ( )
u a ( ) 0 u b ( ) 0
unde
c x ( ) x := f x ( ) 2 x
2
+ x
3
:= a 0 := b 1 :=
Transformam ecuatia in sistem:
F x y , ( )
y
2
c x ( ) y
1
f x ( )
|
\
|
|
|
:=
Functia G() este definita ca valoarea lui y
1
in punctul b. y
1
si y
2
se calculeaza cu Rkadapt.
G ( ) S Rkadapt
0
\
|
|
0 , 1 , 1 , F ,
(
(
S
2 2 ,
return
:=
Determinam pe
2 :=
Given
G ( ) 0
Find ( ) :=
Solutia cautata
sol Rkadapt
0
\
|
|
0 , 1 , 100 , F ,
(
(
:=
Graficul solutiei
0 0.5 1
0
0.1
0.2
sol
2
sol
1
Constatm c s-a obinut aceeai soluaie ca i prin metodele anterioare.
77
Exerciii
1. S se caute o soluie pentru y''+sin(x) y' +y=x, y(0)=1, y(3)=0.
2. Cutai o soluie pentru sistemul ( ) ( ) x y y y sin sin '
3 2 1
+ + = , x y y y =
4 2 2
' ,
) sin(
1
1
'
3 2
2
3
y
y
y +
+
= , ( )
3 1 4
cos ' y y y + = , pentru | | 1 , 0 x , cu condiiile ( ) ( ) 1 0 0
2 1
= = y y ,
( ) 2 1
3
= y , ( ) 1 2
4
= y . Indicaie: Se formeaz forma un sistem algebric ( ) ( ) 1 G , 2 a F = , = ,
unde ( ) , F este ( ) 2 y
3
i ( ) , G este ( ) 2 y
4
, funciile ( ) ( ) ( ) ( ) x y , x y , x y , x y
4 3 2 1
fiind soluiile
sistemului dat cu condiiile Cauchy ( ) ( ) ( ) ( ) = = = = 0 y , 0 y , 1 0 y , 1 0 y
4 3 2 1
.
3. S se determine soluia sistemului
x
y
0
d
d
x
y
1
d
d
x
y
1
d
d
|
\
|
|
|
|
|
|
|
|
x y
1
sin x ( ) + y
2
+
y
0
1
1 y
1
( )
2
+ sin x ( )
2
+
+ cos y
2
( ) +
sin y
0
y
1
+ ( ) y
2
(
(
(
(
(
cu condiiile ( ) ( ) ( ) ( ) 2 0 0 0 2 0
2 1 0 0
= = = y y y y .
78
7. Metode Numerice Pentru Ecuaii Cu Derivate Pariale
Modelarea matematic a unui fenomen conduce foarte frecvent la ecuaii difereniale cu
derivate pariale. Rezolvarea ecuaiilor cu derivate pariale este mai dificil dect rezolvarea
ecuaiilor difereniale ordinare i determinarea soluiei sub forma unei formule se poate face doar
n cazuri foarte particulare. Pentru determinarea soluiilor n cazurile cnd nu exist formule
pentru soluia exact s-au eleborat la fel ca pentru ecuaiile difereniale ordinare metode
numerice. Metodele numerice cele mai cunoscute sunt cele cu diferene finite i metoda
elementului finit.
Metoda diferenelor finite const n aproximarea derivatelor prin diferene finite i
nlocuirea lor n ecuaia dat. Se obine astfel n locul ecuaiei difereniale un sistem algebric
unde necunoscutele sunt valorile soluiei cutate n anumite puncte. In exemplele care urmeaz se
va explica metoda n detaliu. Metoda elementului are la baz principii variaionale aa cum vom
vedea mai departe.
In general evoluia unui fenomen are loc ntr-un anumit domeniu din spaiu. Legea de
evoluie a fenomenului este codificat n ecuaia diferenial, starea iniial a fenomenului este
indicat prin date ce poart numele de condiii iniiale, iar influena mediului extern la frontiera
domeniului n care evolueaz fenomenul este indicat prin date ce poart numele de condiii la
limit. Pentru ecuaiile difereniale importante ce descriu fenomene reale aceste trei condiii
asigur existena i unicitatea soluiei.
7.1. Rezolvarea ecuaiei cldurii prin metoda diferenelor finite
Ecuaia urmtoare
) t , x ( f
x
u
) t , x ( a
t
u
2
2
2
=
(1)
descrie propagarea cldurii ntr-un mediu unidimensional (o bar de exemplu). Dac bara este
finit, domeniul pe care se caut solutia este
} t 0 ; l x 0 ; R ) t , x {( D
2
< < < < = (2)
Pentru a avea soluie unic urmtoarele condiii suplimentare se impun:
) x ( u ) 0 , x ( u
0
= (condiia iniial) (3)
) t ( ) t , 0 ( u
1
= (condiiea la frontiera x=0 a barei) (4)
) t ( ) t , l ( u
2
= (condiia la frontiera x=0 a barei) (5)
Exist i alte tipuri de condiii la frontier care apar n practic dar noi ne vom ocupa doar de
condiii la frontier de tipul (4)+(5). Exist formule care dau soluia ecuaiei (1) n domeniul (2)
i care satisfac condiiile (3)-(5), sub form de serii, care sunt ns slab convergente. Rezolvarea
numeric const n divizarea domeniului ntr-o reea cu pasul h dup x i cu pasul q dup t, ca n
figur:
79
O
x
t
x
i
t
j
l
Avem x
i
=h*i i t
j
=q*j . Valoarea funciei u(x
i
,t
j
) se aproximeaz prin u
i
j
.
Derivata nti n raport cu t se aproximeaz n punctul ( )
j i
t , x prin
( ) ( ) ( )
q
u u
t t
t , x u t , x u
t
t , x u
1 j
i
j
i
1 j j
1 j i j i j i
,
iar derivata a doua n raport cu x n (x
i
,t
j
) se aproximeaz standard prin valorile functiei u n cele
trei puncte orizontale marcate pe desen prin
( ) ( ) ( ) ( )
2
j
1 i
j
i
j
1 i
1 i i
j 1 i j i j 1 i
2
j i
2
h
u u 2 u
x x
t , x u t , x u 2 t , x u
x
t , x u
+
+
+
=
Cum u(x
i
,t
j
) nu se cunosc, se folosesc simbolurile u
i
j
n locul lor. Inlocuind derivatele pentru
u(x,t) n punctele (x
i
,t
j
) n ecuaia diferenial (1), obinem o ecuaie algebric pentru fiecare
punct (x
i
,t
j
):
) t , x ( f
h
u u 2 u
) t , x ( a
q
u u
j i
2
j
1 i
j
i
j
1 i
j i
2
1 j
i
j
i
=
+
(6)
Sistemul acestor ecuaii se scrie:
( )
( )
=
=
= = + +
+
jq u
jq u
1 n ,... 2 , 1 i D u C u B u A
2
j
n
1
j
0
i
j
1 i i
j
i i
j
1 i i
(7)
2
j i
1 j
i i
j i
2
i j i
2
i j i
2
i
h
q
r unde si
) t , x ( f q u D
r ) t , x ( a C , 1 r ) t , x ( a 2 B , r ) t , x ( a A
: unde
=
=
= = =
(8)
Fie n=l/h numrul de noduri pe orizontal. Din condiiile (3)-(5) cunoatem
) t ( u
) t ( u
) x ( u u
j 2
j
n
j 1
j
0
i 0
0
i
=
=
=
(9)
Pentru rezolvarea sistemului (7)+(9) procedm astfel:
80
0) Cazul j=0. In acest caz u
i
0
, pentru i=0,1,2,..n se cunosc din (9)
1) Cazul j=1. Ecuaiile (7) pentru j=1 formeaz un sistem tridiagonal pentru necunoscutele u
i
1
,
i=1,2,..n-1. Coeficienii A
i
, B
i
, C
i
, D
i
se pot calcula cunoscnd u
i
0
, f, q, h, iar u
0
j
i u
n
j
se cunosc
din (9). Se rezolv acest sistem i se obin valorile u
i
1
.
2) Cazul j=2. Deoarece cunoatem valorile u
i
1
de la cazul j=1 putem determina coeficienii
ecuaiilor (7) pentru j=2 i obinem un sistem tridiagonal pentru u
i
2
, i=1,2,..n-1, care se rezolv.
3) Mai departe este clar: de ndat ce tim pe u
i
k
, i=1,2,..n-1, putem determina coeficienii
ecuaiilor (7) pentru j=k+1 i deci aflam valorile u
i
k+1
prin rezolvarea sitemului tridiagonal
obtinut. Din aproape n aproape se pot determina valorile u
i
j
pentru orice i i j.
Convergena valorilor
j
i
u ctre valoarea soluiei exacte ( )
j i
t , x u este asigurat de teorema
urmtoare:
Teorema 1. n condiiile de mai sus avem:
} | ) t , x ( f | max T | ) t ( u | max |, ) t ( | max |, ) t ( | max max{ | u | max
T t 0
l x 0
0
l x 0
1
T t 0
1
T t 0
T t 0
l x 0
j
i
j
i
+ (10)
i 0 q , 0 h cand 0 | u ) t , x ( u |
j
i j i
.
Inegalitatea (10) asigur c u
i
j
nu cresc necontrolat i c u
i
j
sunt bune aproximaii pentru
u(x
i
,t
j
), cnd h i q sunt mici.
Aceast metod se numete schema implicit deoarece aflarea valorilor pentru u de la un
nivel la altul al variabilei t se face prin rezolvarea unui sistem liniar (7).
Mai exist posibilitatea de aproximare a derivatei
( )
t
t , x u
j i
prin:
( ) ( ) ( )
q
u u
t t
t , x u t , x u
t
t , x u
j
i
1 j
i
j 1 j
j i 1 j j i
=
+
+
+
Pentru derivata de ordin doi n raport cu x utilizm aceeai aproximaie ca n cazul schemei
implicite. Inlocuind n ecuaia (1) aceste derivate obinem dup aranjarea expresiei:
( ) ( ) ( )
j i
j
1 i
j
i
j
1 i
2
j i
j
i
1 j
i
t , x qf u u 2 u
h
q
t , x a u u + + + =
+
+
(11)
La ecuaia (15) se mai adaug condiiile iniiale i la frontier (9). Metoda aceasta de aproximare
a ecuaiei cldurii se numete metoda explicit pentru c din (11) se pot determina explicit
valorile
1 j
i
u
+
i=0,1,2..n cunoscnd valorile la un timp anterior
j
i
u , i=0,1,2..n. Astfel, pentru j=0
valorile
j
i
u sunt date de condiia iniial, iar pentru celelalte valori j se determin din (11) i
condiiile la frontier. Dei determinarea valorilor
j
i
u este mai simpl ca n cazul metodei
implicite, aceast metod are dezavantajul c pentru a avea convergena
0 q , 0 h cand 0 | u ) t , x ( u |
j
i j i
trebuie ca ntre paii q i h s existe relaia
( ) t , x a max 2
1
h
q
2
t , x
2
(12)
Exemplu: S se determine soluia ecuaiei cldurii:
81
< = =
=
< < < <
025 . 0 t 0 , 0 ) t , 1 ( u ) t , 0 ( u
1 x 0 , ) x sin( ) o , x ( u
025 . 0 t 0 , 1 x 0 , ) t , x ( u
x
) t , x ( u
t
2
2
Programul n MathCad (metoda implicit)
Avem ( ) 1 t , x f , 1 ) xt ( a = = , 0 ) x ( u
0
= , 0 ) t (
1
= , 0 ) t (
2
= . Notm a(x,t)=ap=1 n prgram i
alegem timpul maxim pn la care se determin soluia aproximativ T=0.2. Lungimea barei o
notm L=1. Divizarea pe axa Ox o facem cu pasul h=0.1, iar pe axa Ot cu pasul q=0.01. Numrul
de pai pe Ox este n=L/h, iar pe Ot este m=t/q. O variant de program n Mathcad este
urmtoarea:
ap 1 := f x t , ( ) 0 := L 1 := T 0.2 := h 0.1 := q 0.01 :=
u0 x ( ) sin x ( ) :=
1
t ( ) 0 :=
2
t ( ) 0 :=
n
L
h
:= m
T
q
:=
i 0 n .. := x
i
i h := j 0 m .. := t
j
j q :=
r
q
h
2
:=
Initializam cu zero matricea solutiei aproximative
i 0 n .. := j 0 m .. := u
i j ,
0 :=
Punem conditiile initiale si la limita
i 0 n .. := u
i 0 ,
u0 x
i
( )
:=
j 0 m .. := u
0 j ,
1
t
j
( )
:= u
n j ,
2
t
j
( )
:=
82
Rezolvare
M
i j ,
0
j 0 n .. for
i 0 n .. for
M
i i ,
2 ap r 1
M
i i 1 ,
ap r
M
i i 1 + ,
ap r
D
i
1 u
i j 1 ,
q f x
i
t
j
,
( )
+
( )
i 1 n 1 .. for
M
0 0 ,
1
M
n n ,
1
D
0
u
0 j ,
D
n
u
n j ,
s M
1
D
u
i j ,
s
i
i 1 n 1 .. for
j 1 m .. for
u
:=
U Rezolvare :=
U
Valorile pe Ox sunt ntre 0 i 1, iar pe Ot ntre 0 i 0.2. In grafic apare valoarea maxim a
indicilor pe ambele axe, iar indicii n matricea U variaz ntre 0 i 10 respectiv 0 i 20.
83
Se constat c soluia scade rapid cu creterea lui t, n acord cu soluia exact care este
) t sin( e ) t , x ( u
t
2
=
.
Programul Mathcad pentru metoda explicit.
In acest caz am ales h=0.1 dar q trebuie ales astfel ca
ap 2
1
h
q
2
ce satisface condiiile la
limit nule i condiia initial este data de:
< <
<
=
l x
2
l
pentru x l
2
l
x 0 pentru x
) x , 0 ( u .
7.2. Rezolvarea problemei Dirichlet pentru ecuaia lui Laplace
O problem frecvent n tehnic este determinarea unei funcii u:D->R , D R
2
astfel ca:
0 D |
u u
D in f u
=
=
(1)
Aici reprezint operatorul lui Laplace, n cazul 2-dimensional fiind
2
2
2
2
y x
+ ++ + = == =
iar f i u
0
sunt funcii continue date.
Pentru anumite domenii exist formule explicite de determinare a soluiei. Acolo unde nu exist
formule explicite se utilizeaz metode numerice analoage cu cele din cazul ecuaiei cldurii.
7.2.1. Problema Dirichlet pentru ecuaia lui Laplace n cazul discului
Soluia problemei Dirichlet pentru ecuaia lui Laplace 0 u = n cazul discului B(0,R) de centru
0 i raz R este dat de formula lui Poisson:
=
2
0
2 2
2 2
d
r ) t cos( rR 2 R
) (
2
r R
) t , r ( u
85
Aici este valoarea pe frontier (notat mai sus
0
u ), dat ca funcie de unghiul , iar ( ) t ,
sunt coordonatele polare ale punctului unde se calculeaz valoarea soluiei.
Exemplu: S se rezolve problema Dirichlet pentru D=B(0,1) i ( ) = sin cos u
2
o
.
Soluia exact este
( ) ( ) ( ) + = sin 2 cos
2
1
2
1
t , u
2
dar ncercarea de a determina pe u simbolic n Mathcad conduce la un rezultat foarte lung.
Utiliznd formula de mai sus putem scrie soluia:
R 1 :=
( ) cos ( )
2
sin ( ) :=
u t , ( )
R
2
2
0
2
( )
R
2
2 R cos t ( )
2
+
(
(
(
d :=
S t , ( )
cos t ( )
sin t ( )
u t , ( )
|
\
|
|
|
:=
S
Soluia reprezentat grafic
7.2.2. Problema Dirichlet pentru ecuaia lui Laplace n cazul semiplanului superior
Soluia problemei lui Dirichlet pentru ecuaia lui Laplace 0 u = n cazul semiplanului superior
( ) { } 0 y , R y , x
2
> este dat de formula lui Cisotti:
= dt
y ) x t (
) t ( y
) y , x ( u
2 2
sau
(
(
(
(
+ + +
|
\
|
+
0
2 2 2
1
dz
y ) z 1 ( )) z 1 ( x z (
z 1
z
lim
y
) y , x ( u
86
Aici ( ) ) 0 , t ( u t = este valoarea lui u pe frontiera y=0 a semiplanului superior.
Exemplu. S se rezolve ecuaia 0 u = n semiplanul superior astfel ca ( )
2
x 1
1
0 , x u
+
= .
Soluia n MathCad:
fi x ( )
1
1 x
2
+
:=
u x y , ( )
y
t
fi t ( )
t x ( )
2
y
2
+
(
(
d :=
u 1 1 , ( ) 0.4 =
Putem astfel calcula valorile n orice puncte. Pentru o vedere de ansamblu asupra valorilor
funciei o reprezentm grafic:
u
Graficul soluiei pentru ) 5 , 0 ( y ), 10 , 10 ( x
7.2.3. Rezolvarea problemei Dirichlet prin metoda diferenelor finite
Pentru anumite domenii D exist formule de rezolvare, dar n general trebuie s apelm la metode
numerice. Un tip de abordare numeric se caracterizeaz prin:
a) Divizarea domeniului D prin o reea de puncte (x
i
,y
j
) echidistante dup x i y. Fie pasul h pe
direcia x i pasul k pe direcia y. E posibil ca frontiera D s nu treac prin punctele (x
i
,y
j
) din
reea i atunci aproximm frontiera prin una nou format din puncte din reea ct mai apropiate
de frontiera real.
b) Valorile exacte u(x
i
,y
j
) le cutam sub forma unor mrimi, deocamdat necunoscute u
ij
.
Ecuaiile pentru u
ij
le obtinem nlocuind derivatele lui u(x,y) prin diferenele standard:
87
2
1 j , i j , i 1 j , i
2
j i
2
2
j , 1 i j , i j , 1 i
2
j i
2
k
u u 2 u
y
) y , x ( u
h
u u 2 u
x
) y , x ( u
+
+
+
(2)
i nlocuim n ecuaia (1). Obinem:
D ) y , x ( daca ) y , x ( f
k
u u 2 u
h
u u 2 u
j i j i
2
1 j , i j , i 1 j , i
2
j , 1 i j , i j , 1 i
=
+
+
+
+ +
(3)
D ) y , x ( daca ) y , x ( u u
j i j i 0 j , i
= (4)
Ecuaia (3) se mai scrie:
) y , x ( f
) k h ( 2
k h
) u u (
) k h ( 2
h
) u u (
) k h ( 2
k
u
j i 2 2
2 2
1 j , i 1 j , i 2 2
2
j , 1 i j , 1 i 2 2
2
j , i
+
+
+
+ +
+
=
+ +
(5)
iar dac h=k devine:
) y , x ( f
4
h
4
u u u u
u
j i
2
1 j , i 1 j , i j , 1 i j , 1 i
j , i
+ + +
=
+ +
(6)
n cazul h=k avem de rezolvat sistemul (4)+(6) altfel (4)+(5).
c) Rezolvarea sistemului (4)+(5) se face prin metoda Gauss-Seidel, iterativ, o iteraie costnd n
operaia (5) pentru toate punctele din domeniu ntr-o anumit ordine. Atunci cnd noile valori u
i,j
obinute prin (5) nu difer de cele vechi cu mai mult de un epsilon dat dinainte, calculele se
opresc i avem valorile aproximative pentru u(x
i
,y
j
) n variabilele u
i,j
.
Convergena este asigurat de teorema urmtoare
Teorema: S presupunem ca h=k i frontiera trece prin nodurile reelei. Atunci sistemul (4)+(6)
are o soluie care satisface inegalitatea:
( ) ( ) ( )
|
\
|
+
| ) y , x ( f | max | u | max C | u | max
j i
D y , x
j , i
D y , x
j , i
D y , x
j i j i j i
(7)
unde C nu depinde de h. n plus 0 | u ) y , x ( u | lim
j , i j i
0 h
=
Inegalitatea (7) ne asigur c soluia sistemului (4)+(7) exist, este unic i are mrimea
controlat cnd 0 h . De asemenea ) y , x ( u u
j i j , i
cnd h 0.
In continuare prezentm programul Mathcad pentru rezolvarea problemei Dirichlet:
( ) { } ) x ( y ) x ( , b x a | R y , x D in 0 u
2
< < < < = = (8)
cu condiiile pe frontier
( )
) x ( gsus )) x ( , x ( u
) x ( gjos ) x ( , x u
=
=
(9)
( )
( )
( )
( )
) b ( ) b (
) b ( gjos ) y ) b ( ( ) b ( gsus ) b ( y
y , b u
) a ( ) a (
) a ( gjos ) y ) a ( ( ) a ( gsus ) a ( y
y , a u
+
=
+
=
(10)
Se vede c pe frontiera din stnga x=a valorile funciei u se cer a fi valoarile interpolate liniar
ntre ( ) ) a ( gjos ) a ( , a u = i ) a ( gsus )) a ( , a ( u = . In mod analog este pus condiia pe frontiera
88
din stnga, x=b. Valorile pe frontierele ( ) { } b x a | ) x ( , x i ( ) { } b x a | ) x ( , x sunt date
prin funciile arbitrare gjos respectiv gsus. In program se mai cere ca s fie dat un dreptunghi [a,
b]x[c, d] care include domeniul precum i numrul n de diviziuni ale domeniului pe intervalul [a,
b] de unde se deduce pasul h de discretizare. In continuare urmeaz programul de rezolvare cu
unele comentarii n el.
DOMENIUL
a 1 := b 1 := x ( ) x
2
:= x ( ) 3 x
2
:=
DIVIZAREA DOMENIULUI
n 8 := h
b a
n
:= h 0.25 =
CONDITIILE LA FRONTIERA
ginf x ( ) x
2
:= gsup x ( ) 2 :=
gst y ( )
ginf a ( ) a ( ) y ( ) y a ( ) ( ) gsup a ( ) +
a ( ) a ( )
:=
gdr y ( )
ginf b ( ) b ( ) y ( ) y b ( ) ( ) gsup b ( ) +
b ( ) b ( )
:=
LIMITE PENTRU DOMENIU PE DIRECTIA AXEI OY
c 0 := d 3 :=
DOMENIUL TREBUIE SA FIE INCLUS IN [a,b]x[c,d]
NUMARUL DE DIVIZIUNI PE VERTICALA
m ceil
d c
h
|
\
|
|
:=
i 0 n .. := x
i
a i h + :=
j 0 m .. := y
j
c j h + :=
89
PENTRU FIECARE VERTICALA IN DOMENIU DATA DE INDICELE i
DETERMINAM INTRE CE LIMIE VARIAZA j CA SA RAMNEM IN DOMENIU
indice_jos
ind
i
floor
x
i
( )
c
h
|
\
|
|
i 0 n .. for
ind
:=
jos indice_jos :=
indice_sus
ind
i
ceil
x
i
( )
c
h
|
\
|
|
i 0 n .. for
ind
:=
sus indice_sus :=
i 0 n .. := j 0 m .. := u
i j ,
0 :=
PUNEM CONDITIILE DE PE FRONTIERA IN MATRICEA u
initializare
u
i j ,
ginf x
i
( )
j jos
i
if
j 0 m .. for
u
i j ,
gsup x
i
( )
j sus
i
if
i 0 n .. for
u
:=
u initializare :=
INCEPEM ITERATIILE PENTRU DETERMINAREA SOLUTIEI
NUMARUL DE ITERATII
N 1000 :=
Rezolvare
u
i j ,
u
i 1 j ,
u
i 1 + j ,
+ u
i j 1 ,
+ u
i j 1 + ,
+
4
j jos
i
1 + sus
i
1 .. for
i 1 n 1 .. for
it 0 N .. for
u
:=
U Rezolvare :=
90
REPREZENTAREA GRAFICA A DOMENIULUI SI A PUNCTELOR RETELEI
i 0 n .. := ps
i
x
i
( )
:= pj
i
x
i
( )
:=
retea in 1
in in 1 +
xx
in
x
i
yy
in
y
j
j jos
i
sus
i
.. for
i 0 n .. for
augment xx yy , ( )
:=
pr retea :=
i 0 n .. := in 0 rows pr ( ) 1 .. :=
1 0.5 0 0.5 1
0
1
2
3
pj
i
ps
i
pr
1
( )
in
x
i
x
i
, pr
0
( )
in
,
91
PENTRU REPREZENTARE GRAFICA INTERPOLAM MATRICEA U
sol xx yy , ( ) 1 return xx a < xx b > if
ginf xx ( ) return yy xx ( ) < if
gsup xx ( ) return yy xx ( ) > if
A U
i j ,
B U
i 1 + j ,
C U
i j 1 + ,
D U
i 1 + j 1 + ,
val A
xx x
i
h
B A ( ) +
yy y
j
h
C A ( ) +
xx x
i
( )
yy y
j
( )
h
2
D B C A + ( ) +
val return
y
j
yy y
j 1 +
if
j 0 m 1 .. for x
i
xx x
i 1 +
if
i 0 n 1 .. for
:=
Aplicam patratul [0,1]x[0,1] pe domeniu
xf u v , ( ) a u b a ( ) + :=
yf u v , ( ) xf u v , ( ) ( ) v xf u v , ( ) ( ) xf u v , ( ) ( ) ( ) + :=
zf u v , ( ) 0 :=
Definim suprafata parametrizata prin (u,v) (graficul solutiei)
Sup u v , ( )
xf u v , ( )
yf u v , ( )
sol xf u v , ( ) yf u v , ( ) , ( )
|
\
|
|
|
:=
92
Sup
Exerciii
1. S se modifice corespunztor formulele (6) din sistemul pentru u
i,j
astfel ca s se rezolve
ecuaia ) y , x ( f
y
u
B
x
u
A
2
2
2
2
=
=
=
=
>
) x ( g
t
) 0 , x ( u
) x ( f ) x , 0 ( u
t ) l , t ( u
t ) 0 , t ( u
0 t ], L , 0 [ x ,
x
u
a
t
u
2
1
2
2
2
2
2
(1)
Sub aceast form ecuaia poate fi rezolvat exact ns n multa cazuri seriile sunt slab
convergente i sunt preferabile metode numerice.
93
7.3.1 Soluii exacte pentru ecuaia undelor
In cazul L=1 i ( ) ( ) 0 t t
2 1
= = soluia exact este dat de seria
|
\
|
(
\
|
+ |
\
|
=
=
l
x k
sin
l
t ak
sin B
l
t ak
cos A ) x , t ( u
0 k
k k
(2)
unde
\
|
=
1
0
k
dx
l
x k
sin ) x ( f
l
2
A i
\
|
=
1
0
k
dx
l
x k
sin ) x ( g
ak
2
B (3)
Exemplul 1. Dac n problema mixt de mai sus considerm ) x sin( ) x ( f = , ) x 2 sin( ) x ( g =
atunci se obine soluia ) t 2 cos( ) x 2 sin(
2
1
) t cos( ) x sin( ) x , t ( u
+ = .
In Mathcad trebuie s ne limitm numrul de termeni din seria soluiei. In acest caz am
ales doar primii 10 termeni ai seriei (n secvena k=1..10) dar n principiu cu ct este mai mare
numrul de termeni este mai precis valoarea gsit din seria trunchiat.Putem obine soluia n
Mathcad astfel:
Putem calcula valoarea ntr-un punct astfel:
Soluia exact este:
Exemplul 2. n problema mixt de mai sus considerm a =1, l = 1, f(x) = (x-3)/10, g(x) = 0 i se
cere soluia pentru x=0.5 i t=1.
94
f x ( )
x 3 ( )
10
:= a 1 := l 1 :=
k 1 10 .. :=
g x ( ) 0 :=
A
k
2
l
0
1
x f x ( ) sin
k x
l
|
\
|
|
(
(
d := B
k
0
1
x g x ( ) sin
k x
l
|
\
|
|
(
(
d :=
u t x , ( )
k
A
k
cos
k a t
l
|
\
|
|
B
k
sin
k a t
l
|
\
|
|
+
|
\
|
|
sin
k x
l
|
\
|
|
(
(
:=
u 1 0.5 , ( ) 0.265763 =
Exerciiu. n problema mixt de mai sus considerm a =1, l = 3, g(x) = 0 i
| |
( |
=
3 , 2 x si
10
3 x
2 , 0 x si
20
x
) x ( f
Se cere soluia aproximativ la x=2, t=1.5.
7.3.2 Metode numerice pentru ecuaia undelor
La fel ca n cazul ecuaiei cldurii putem aproxima derivatele dup x i t prin diferene
finite ceea duce la nlocuirea ecuaiei (1) cu un sistem algebric. Vom considera o problem un pic
mai general ca (1):
( )
( )
=
=
=
> =
) x ( 1 u
t
) 0 , x ( u
) x ( 0 u ) x , 0 ( u
t ) l , t ( u
t ) 0 , t ( u
0 t ], L , 0 [ x ), t , x ( f
x
u
a
t
u
2
1
2
2
2
2
2
(4)
Dup divizarea domeniului ) , 0 [ ] L , 0 [ prin paralele duse prin ih x
i
= i jq t
j
= unde
h>0 i q>0 sunt paii de divizare pe Ox respectiv Ot, nlocuim derivatele n ( )
j i
t , x prin:
( )
( ) ( ) ( )
2
1 j , i j , i 1 j , i
2
1 j i j i 1 j i
j i
2
2
q
u u 2 u
q
t , x u t , x u 2 t , x u
t , x
t
u
+ +
+
=
+
(5)
( )
( ) ( ) ( )
2
j , 1 i j , i , 1 i
2
j 1 i j i j 1 i
j i
2
2
q
u u 2 u
q
t , x u t , x u 2 t , x u
t , x
x
u
+ +
+
=
+
(6)
Avem puncte ( )
j i
t , x n domeniu pentru 1 n i 1 unde
h
L
n = i < j 1 .
95
Inlocuirea acestor derivate n prima ecuaie din (4) conduce dup explicitarea lui
1 j , i
u
+
la
( ) ( )
j i
2
1 j , i j , i
2 2
j , 1 i j , 1 i
2 2
1 j , i
t , x f q u u ) r a 1 ( 2 u u r a u + + + =
+ +
(7)
Ecuaia (7) mpreun relaiile
( ) ( )
( )
( ) = =
= =
= + =
= =
.. 0 j , t u
.. 0 j , t u
n .. 0 i , x 1 u q x 0 u u
n .. 0 i , ) x ( 0 u u
j 2 j , n
j 1 j , 0
i i 1 , i
i 0 , i
(8)
care reprezint analogul numeric al condiiilor iniiale i al condiiilor la limit permit
determinare soluiei aproximative
j , i
u din aproape n aproape astfel:
1.
0 , i
u i
1 , i
u se cunosc pentru i=0..n
2.
1 j , i
u
+
pentru i=0..n se determin din (7) cunoscnd
j , i
u i
1 j , i
u
din calculele anterioare.
Procesul de calcul poate mege pn la orice j, dar de regul se fixeaz o valoare T pentru timpul t
pn la care se calculeaz soluia aproximativ. Aceasta ne d pentru indicele j valoarea maxim
L/q.
Analiza convergenei metodei pune n eviden c ( ) 0 | u t , x u |
j , i j i
cnd 0 q , 0 h doar
dac ntre paii h i q exist relaia:
a
h
q (9)
In programul Mathcad care urmeaz este implementat aceast metod direct de rezolvare a
ecuaiei undelor. Programul are i unele comentarii.
ECUATIA UNDELOR - SCHEMA EXPLICITA
2
t
u
d
d
2
a
2
2
x
u
d
d
2
f x t , ( )
plus conditii la limita si initiale
L 4 := a 4 := f x t , ( ) 0 :=
CONDITI INITIALE
u0 x ( ) x
2
2 x := u1 x ( ) sin x ( ) :=
CONDITII LA LIMITA
1
t ( ) sin t ( ) :=
2
t ( ) 8
4t sin 4 t ( )
1 t
2
+
+ :=
NUMARUL DE PASI PE OX
n 20 := h
L
n
:=
h
a
0.05 =
VALOAREA PASULUI q PE OT (q<=h/a)
q 0.05 :=
NUMARUL DE PASI PE Ot
m 100 :=
96
INITIALIZAREA MATRCEI CARE VA CONTINE SOLUTIA APROXIMATIVA
i 0 n .. := x
i
h i := j 0 m .. := t
j
j q :=
i 0 n .. := j 0 m .. := u
i j ,
0 :=
i 0 n .. := u
i 0 ,
u0 x
i
( )
:= u
i 1 ,
u0 x
i
( )
q u1 x
i
( )
+ :=
j 0 m .. := u
0 j ,
1
t
j
( )
:= u
n j ,
2
t
j
( )
:=
DETERMINAREA SOLUTIEI
r
q
h
:= W a
2
r
2
:=
Rezolvare
u
i j 1 + ,
W u
i 1 j ,
u
i 1 + j ,
+
( )
2 1 W ( ) u
i j ,
+ u
i j 1 ,
q
2
f x
i
t
j
,
( )
+
i 1 n 1 .. for
j 1 m 1 .. for
u
:=
U Rezolvare :=
GRAFICUL SOLUTIEI
U
In graficul soluiei x variaz ntre 0 i 4 (20 pai), iar t ntre 0 2 (100 pai)
97
Exerciii
1. S se arate c pentru f=0 i a / h q = atunci pentru orice soluie exact ) t , x ( u a problmei (4)
valorile ( )
j i j , i
t , x u u = verific exact ecuaia (7).
2. S se modifice programul nlocuind calculul valorilor
1 , i
u cu
( ) ( ) ( ) ( ) ( ) ( )
i i
2 2
1 i 1 i
2 2
1 , i
x 1 u q x 0 u r a 1 x 0 u x 0 u 2 / r a u + + + =
+
i s se compare soluia care se obine astfel cu soluia obinut prin programul de mai sus.
O metoda implicit de rezolvare a problemei (4) const n nlocuirea derivatei (6) prin
( )
( ) ( ) ( ) ( ) ( ) ( )
|
|
\
| +
+
+
=
|
|
\
| +
+
+
+ + + + +
+ + + + +
2
1 j , 1 i 1 j , i 1 j , 1 i
2
1 j , 1 i 1 j , i 1 j , 1 i
2
1 j 1 i 1 j i 1 j 1 i
2
1 j 1 i 1 j i 1 j 1 i
j i
2
2
q
u u 2 u
q
u u 2 u
2
1
q
t , x u t , x u 2 t , x u
q
t , x u t , x u 2 t , x u
2
1
t , x
x
u
(10)
Punnd n ecuaia diferenial (4) expresiile (5) i (10) pentru derivatele pariale, dup aranjarea
expresiei rezult
( )
( ) ( )
j i
2
1 j , 1 i
2 2
1 j , i
2 2
1 j , 1 i
2 2
j , i
1 j , 1 i
2 2
1 j , i
2 2
1 j , 1 i
2 2
t , x f q 2 u r a u r a 1 2 u r a u 4
u r a u r a 1 2 u r a
+ + + + =
= + +
+
+ + + +
(11)
Ecuaia cu diferene (11) mpreun cu condiiile la limit i iniiale sub form discretizat (8)
permit calculul din aproape n aproape al valorilor
1 j , i
u
+
, i=0..n cunoscnd valorile la doi indici j
anteriori
j , i
u , i=0..n i
1 j , i
u
, i=0..n. Fa de metoda explicit, n cazul metodei implicite pentru
determinarea valorilor
1 j , i
u
+
, i=0..n avem de rezolvat un sistem liniar (11) cu matrice
tridiagonal. Avantajul acestei metode fa de metoda explicit este c nu mai avem nici o
restricie de tipul (9) ntre paii h i q.
In continuare prezentm un program Mathcad pentru rezolvarea problemei (4) prin metoda
implicit (formulele (8) i (11)). Deoarece rezolvm aceeai problem ca n cazul explicit, prima
parte a programului care const n introducerea datelor iniiale i iniializarea matricei care
conine soluia aproximativ este aceeai. Spre deosebire de cazul explicit putem totui ca pasul q
s fie luat arbitrar, nu neaprat a / h q . Diferena apare n procedura Rezolvare care n cazul
implicit este urmtoarea:
98
r
q
h
:= W a
2
r
2
:=
Rezolvare
M
i j ,
0
j 0 n .. for
i 0 n .. for
M
i i ,
2 1 W + ( )
M
i i 1 ,
W
M
i i 1 + ,
W
D
i
4 u
i j ,
W u
i 1 j 1 ,
+ 2 1 W + ( ) u
i j 1 ,
W u
i 1 + j 1 ,
+ 2 q
2
f x
i
t
j
,
( )
+
i 1 n 1 .. for
M
0 0 ,
1
M
n n ,
1
D
0
u
0 j ,
D
n
u
n j ,
s M
1
D
u
i j 1 + ,
s
i
i 1 n 1 .. for
j 1 m 1 .. for
u
:=
U Rezolvare :=
Reprezentarea grafic a soluiei ne pune n eviden c am obinut o soluie apropiat de cea din
cazul explicit.
U
Exerciii.
1. S se scrie complet programul de rezolvare a ecuaiei undelor prin metoda implicit de mai
sus.
99
2. S se reprezinte grafic soluia ecuaiei undelor lund pe axe valorile pentru x i t (nu indicii
pentru n .. 0 i , x
i
= respectiv m .. 0 j , t
j
= . Indicaie: interpolm valorile date de matricea U ca n
programul de rezolvare a problemei Dirichlet.
3. S se rezolve ecuaia undelor (4) pentru L=1, a=4, ( ) x sin ) x ( 0 u = , ( ) x x 1 u = , ( ) ( ) t sin t
1
= ,
( ) ( ) t 3 sin t
2
= , ( ) ( ) t cos x sin t , x f = , pentru 10 t .
7.4 Metoda rezidurilor ponderate
7.4.1. Descrierea metodei
Se cere rezolvarea urmtoarei probleme:
S se determine funcia u pe domeniul D astfel ca L(u)=f n interiorul lui D, iar pe
frontiera domeniului s avem M(u)=g . Aici L i M operaii asupra lui f, n general
operatori difereniali.
Exemplul 1. S se determine u D R :: , unde D = [ , ] [ , ] 0 1 0 1 , astfel ca x
y
u
x
u
2
2
2
2
=
n D i
astfel ca u x y
D
|
= + .
In acest caz
2
2
2
2
y x
L
, y | u
1 x sau 0 x
=
= =
, x
n
u
1 y sau 0 y
=
= =
unde
n
u
=
D
0 w f u L pentru orice funcie integrabil w definit pe D. De asemenea, egalitatea L(u)-
f=0 este echivalent cu ( ) ( )
=
D
0 w f u L pentru orice funcie w derivabil de de cel puin k ori,
N k fiind fixat. Funciile w folosite n integral le vom numi ponderi. Pentru modelul de
soluie aproximativ propus
n n 2 2 1 1 a
N a ... N a N a u + + + + = este imposibil de a determina
constantele
n 2 1
a ... , a , a astfel ca ( ) ( )
=
D
a
0 w f u L pentru orice pondere w. In aceste condiii, se
aleg n ponderi independente
n 2 1
w ,... w , w i se impun condiiile ( ) ( )
=
D
i a
0 w f u L pentru
i=1,2,n. Aceste egalitti formeaz un sistem de n ecuaii cu n necunoscute
n 2 1
a , a , a .
In funcie de felul n care se aleg ponderile w
i
se disting diverse tipuri de metode ale rezidurilor
ponderate.
I. Metoda colocaiei. Condiia ( ) ( )
=
D
i a
0 w f u L este nlocuit prin ( ) ( )( ) 0 P f u L
i a
=
unde P
i
sunt n puncte distincte din domeniul D.
II. Metoda colocaiei pe subdomeniu. In acest caz ponderile w
i
sunt alese ca
( )
=
contrar caz in 0
D P daca 1
P w
i
i
unde D
i
, i=1,2,n sunt n submulimi ale lui D. Ponderile w
i
se numesc funcii caracteristice ale
domeniului D
i
.
III. Metoda lui Galerkin. In acest caz
i i
N w = .
O metod distinct de metoda ponderilor este metoda celor mai mici ptrate. Aceast
metod const n determinarea constantelor a
1
,a
2
,a
n
din condiia
( ) ( ) ( )
I a a a L u f
n a
D
1 2
2
, ,... = =
minim
Soluia exact corespunde evident cu minimul egal cu zero. In anumite cazuri metoda celor mai
mici ptrate conduce la metoda Galerkin.
In general este dificil de artat dac soluia aproximativ determinat prin metoda
rezidurilor ponderate converge sau nu spre soluia exact a problemei cnd n .
7.4.2. Exemple de aplicare direct a metodei
S considerm urmtoarea problem de tipul celei din exemplul 1.
Problema 1. S se determine R D : u , D=[0,1] x [0,1], astfel ca
y x
2
2
2
2
e e
y
u
x
u
+ =
, cu
condiia pe frontier ( )
( )
y x
D y , x
e e | y , x u + =
.
101
Evident c soluia problemei este ( ) u x y e e
x y
, = + . S comparm soluia exact cu soluia
aproximativ dat de metoda rezidurilor ponderate.
Aplicarea metodei Galerkin pentru ( ) ( ) ( )
+ =
j , i
j , i j , i a
y , x N y , x y , x u conduce la
( ) ( ) ( ) ( ) ( )
=
|
|
\
|
+
D D
q , p q , p
j , i
j , i j , i
dxdy y , x N y , x f dxdy y , x N y , x N y , x
adic la sistemul
q , p
j , i
j , i ) j , i ( ), q , p (
K =
unde
( ) ( )
( ) ( )
=
D
q , p j , i j , i , q , p
dxdy y , x N y , x N K
i
( ) ( ) ( ) ( )
+ =
D
q , p q , p
dxdy y , x N y , x f y , x
In continuare este descris acest proces n Mathcad. Problema o rezolvm pe dreptunghiul [0,a] x
[0,b].
Datele iniiale sunt:
f x y , ( ) e
x
e
y
+ :=
a 1 := b 1 :=
u0x y ( ) e
y
1 + := uax y ( ) e
a
e
y
+ :=
u0y x ( ) e
x
1 + := uby x ( ) e
b
e
x
+ :=
Funcia ( , ) x y se construiete automat din datele de pe frontier.
x y , ( ) e1 u0y x ( ) u0x y ( ) u0x 0 ( ) ( )
a x
a
+ uax y ( ) uax 0 ( ) ( )
x
a
+
e2 uby x ( ) u0x y ( ) u0x b ( ) ( )
a x
a
+ uax y ( ) uax b ( ) ( )
x
a
+
e e1
b y
b
e2
y
b
+
e
:=
Functiile model sunt
N i j , x , y , ( ) sin x
i 1 +
a
\
|
|
sin y
j 1 +
b
\
|
|
:=
Utilizam functii model cu indicii i,j intre 0 si n:
n 2 :=
Ordonam dupa un singur indice functiile model, dupa regula (i,j)->(n+1)*i+j
Funciile de integrat pentru construirea matricii sistemului sunt:
102
F i1 j1 , i , j , x , y , ( )
2
x
N i j , x , y , ( )
d
d
2
2
y
N i j , x , y , ( )
d
d
2
+
|
\
|
|
N i1 j1 , x , y , ( ) :=
Numarul de diviziuni pentru integrare
ni 5 :=
i2 0 ni .. := xi
i2
a
i2
ni
:= yi
i2
b
i2
ni
:=
Matri cea sistemului ce se obtine prin metoda rezidurilor ponderate devine
i 0 n .. := j 0 n .. := i1 0 n .. := j1 0 n .. :=
K
n 1 + ( ) i1 j1 + n 1 + ( ) i j + ,
a b
4 ni ni
F i1 j1 , i , j , xi
0
, yi
0
, ( ) F i1 j1 , i , j , xi
ni
, yi
ni
, ( ) + F i1 j1 , i , j , xi
0
, yi
ni
, ( ) +
F i1 j1 , i , j , xi
ni
, yi
0
, ( ) 2
1
ni 1
i2
F i1 j1 , i , j , xi
i2
, yi
0
, ( )
=
+ +
...
2
1
ni 1
i2
F i1 j1 , i , j , xi
0
, yi
i2
, ( )
= 1
ni 1
i2
F i1 j1 , i , j , xi
i2
, yi
ni
, ( )
=
+
|
\
|
|
|
+
...
2
1
ni 1
i2
F i1 j1 , i , j , xi
ni
, yi
i2
, ( )
=
4
1
ni 1
i2 1
ni 1
i3
F i1 j1 , i , j , xi
i2
, yi
i3
, ( )
=
+ +
...
(
(
(
(
(
(
(
(
(
(
(
:=
Am calculat integrala dubl prin metoda trapezelor. Termenii liberi se calculeaz astfel:
qq x y , ( )
2
x
x y , ( ) ( )
d
d
2
2
y
x y , ( ) ( )
d
d
2
+ f x y , ( ) + :=
F1 i1 j1 , x , y , ( ) N i1 j1 , x , y , ( ) qq x y , ( ) :=
i1 0 n .. := j1 0 n .. :=
n 1 + ( ) i1 j1 +
a b
4 ni ni
F1 i1 j1 , xi
0
, yi
0
, ( ) F1 i1 j1 , xi
ni
, yi
ni
, ( ) + F1 i1 j1 , xi
0
, yi
ni
, ( ) +
F1 i1 j1 , xi
ni
, yi
0
, ( ) 2
1
ni 1
i2
F1 i1 j1 , xi
i2
, yi
0
, ( )
=
+ +
...
2
1
ni 1
i2
F1 i1 j1 , xi
0
, yi
i2
, ( )
= 1
ni 1
i2
F1 i1 j1 , xi
i2
, yi
ni
, ( )
=
+
|
\
|
|
|
+
...
2
1
ni 1
i2
F1 i1 j1 , xi
ni
, yi
i2
, ( )
=
4
1
ni 1
i2 1
ni 1
i3
F1 i1 j1 , xi
i2
, yi
i3
, ( )
=
+ +
...
(
(
(
(
(
(
(
(
(
(
(
:=
Coeficienii funciilor model n soluia aproximativ sunt
K
1
:=
103
Soluia aproximativ este
ua x y , ( ) x y , ( )
0
n
i 0
n
j
n 1 + ( ) i j +
N i j , x , y , ( )
(
=
=
+ :=
S comparm soluia exact cu soluia aproximativ prin graficul liniilor de nivel
Avem n stnga soluia aproximativ determinat prin metoda Galerkin, utiliznd nou
funcii model de tip trigonometric, iar n dreapta soluia exact. Practic cele dou soluii coincid.
Aplicarea direct a metodei rezidurilor ponderate are unele dezavantaje:
1. Este nevoie de gsirea direct a unei funcii care s satisfac cerinele de pe frontier,
lucru dificil n multe cazuri
2. Impune calculul unor derivate de ordin mare
3. Trebuie determinat o baz de funcii N
i
derivabile de un numr suficient de mare de ori, care
s satisfac pe frontier condiiile omogene, lucru de asemenea dificil pentru domenii
neregulate.
In cele ce urmeaz artm n ce mod se pot evita aceste lucruri.
7.4.3. Aproximarea simultan e ecuaiei i a condiiilor pe frontier
Plecm de la problema: s se determine n D funcia u(x,y) care satisface ecuaia L(u)=f
i care pe frontiera lui D satisface condiia M(u)=g. Aici L i M sunt operatori difereniali.
Aplicnd i condiiei pe frontier metoda rezidurilor ponderate gsim c soluia
problemei este acea funcie u pentru care
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
= +
D D
0 y , x ds y , x w y , x g y , x u M dxdy y , x w y , x f y , x u L (1)
pentru orice ponderi w i w pe D respectiv pe frontiera lui D. Aici ds(x,y) este elementul de arc
pe frontier n punctul (x,y). Soluia aproximativ se obine prin considerarea unui numr finit de
m
me
104
ponderi care conduc la un numr finit de ecuaii pentru determinarea parametrilor soluiei
aproximative. Aceast form a metodei rezidurilor o vom numi metoda generalizat a rezidurilor
ponderate. In principiu ponderile w i w sunt independente, dar nu este neaprat necesar acest
lucru. Avem:
Teorema 1. Fie de determinat funcia u pe D astfel ca L(u)=f cu condiia pe frontier M(u)=g.
Fie spaiul vectorial W generat de ponderi dens n spaiul funciilor continue pe D. Atunci u este
soluie a problemei dac i numai dac relaia (1) are loc pentru orice w W i w w = .
Schi de demonstraie. Procedm prin reducere la absurd. Dac integrala (1) este nul pentru
orice w w W = dar n P din domeniu, L(u)-f>0 (de exemplu) i n punctul Q pe frontier M(u)-
g>0 (argumentul este asemntor pentru M(u)-g<0), atunci alegem o funcie h D R : care s
fie pozitiv pe o vecintate suficient de mic a lui P i pe una a lui Q, iar n rest s fie 0. In aceste
condiii (1) este pozitiv pentru w w h = = . Lund o pondere din W suficient de aproape de
h, (1) rmne n continuare pozitiv pentru w w = = , n contradicie cu ipoteza.
In aplicaii este util urmtorul rezultat.
Teorema 2. Fie W un spaiu de ponderi dens n spaiul funciilor continue pe D . Presupunem
c orice funcie continu cu suport compact poate fi arbitrar de bine aproximat prin funcii din
W cu suport compact. Fie W
1
un spaiu de ponderi pe frontiera domeniului, dens n spaiul
funciilor continue pe frontier. Fie O:WW
1
surjectiv i O(w) depinde doar de valorile lui w
ntr-o vecintate arbitrar de mic a frontierei lui D. Atunci u este soluia problemei L(u)-f=0 n
D i M(u)-g=0 pe frontiera lui D dac i numai dac relaia (1) are loc pentru orice
w W i
( ) w O w = .
Schi de demonstraie. Dac prin absurd are loc (1) pentru orice ponderi ( ) w W w O w = , i
( ) L u f 0 n P din interiorul lui D, iar ( ) M u g 0 n Q, atunci alegem funcia w W
I
care
pe o vecintate a lui Q s aib acelai semn cu M(u)-g, iar n afara vecintii s fie foarte mic
n modul. Se poate face acest lucru datorit faptului c W
I
este dens n spaiul funciilor continue
pe frontiera lui D. Ne asigurm astfel c a dou integral din (*) este pozitiv. Alegem acum
w W
1
astfel ca ( ) O w w
1
= . Alegem w
2
o funcie continu cu suport compact n D care s fie de
acelai semn cu L(u)-f pe o vecintate a lui P i care s fie nul n afara acelei vecintai, inclusiv
pe o vecintate a frontierei. Pentru > 0 suficient de mare avem ( ) ( )
L u f w w
D
+ >
( )
2 1
0 .
Din ipoteza asupra lui W gsim o pondere w
3
nul
n o vecintate a frontierei, cu valori apropiate
de ale lui w
2
astfel ca ( ) ( )
L u f w w
D
+ >
( )
3 1
0 . Avem acum membrul drept din (1) pozitiv
pentru w w w = +
3 1
i ( ) w O w = , n contradicie cu ipoteza.
Observaii
1. Aceste teoreme ne permit o mare flexibilitate n alegerea ponderilor pe frontier, legate de
ponderile pe domeniu. De la caz la caz vom alege legtura ntre ponderile pe frontier i cele
pe domeniu astfel ca forma generalizat a metodei rezidurilor ponderate s dea expresii mai
uor de calculat.
105
2. Se poate arta c dac pe o poriune a frontierei soluia aproximativ satisface exact condiia
M(u)=g, atunci se pot considera n (1) doar ponderi nule pe acea poriune de frontier.
7.4.4. Reducerea ordinului de derivare prin integrare prin pri
Metoda rezidurilor ponderate ne conduce la considerarea unor integrale de forma
( )
D
wdxdy u L . Prin integrare prin pri aceste integrale pot fi transformate n
( ) ( ) frontiera pe integrale dxdx w Q u P
D
+
, cnd pe o poriune
0
a
frontierei avem date valorile pentru u, iar pe alt poriune
n
a frontierei avem date valorile
derivatei normale la frontier ale lui u. Notm cu u
0
valoarea lui u pe
0
i cu valoarea
derivatei normale pe
n
.
S presupunem c soluia aproximativ o cutm de forma
p p 2 2 1 1
N ... N N u + + + + = , astfel ca pe
0
s avem
0
u = i 0 N
i
= . In felul acesta
condiiile pe
0
sunt satisfcute independent de valoarea coeficienilor . Metoda generalizat a
rezidurilor ponderate ne spune c problema este chivalent cu
( ) 0 ds w u u ds w
n
u
wdxdy f
y
u
x
u
0
n
0
D
2
2
2
2
= +
|
\
|
+
|
|
\
|
(2)
pentru orice ponderi w , w .
Vom lega ponderile ntre ele pe frontier (lucru posibil conform teoremei 2) prin w w = . Putem
lua 0 w w = = pe
0
deoarece pe acea poriune
0
u u din construcie deci ( ) 0 ds w u u
0
0
=
.
Folosind i formulele lui Green
+
ds fgn fdxdy
x
g
dxdy
x
g
f
x
D D
+
ds fgn fdxdy
y
g
dxdy
y
g
f
y
D D
unde
x
n i
y
n sunt componentele normalei exterioare la D, relaia (2) se scrie:
106
=
|
\
|
+
|
|
\
|
+
|
|
\
|
n 0 n
0 ds w
n
u
wds n
y
u
n
x
u
dxdy
y
w
y
u
x
w
x
u
fwdxdy
n
u
y x
D D
ceea ce n virtutea alegerii ponderilor w se simplific la
= +
|
|
\
|
n
0 wds dxdy
y
w
y
u
x
w
x
u
fwdxdy
D D
(3)
Dac soluia aproximativ se caut de forma
+ =
j j
N u , iar ponderile w sunt luate egale cu
N
i
(metoda Galerkin), forma precedent a metodei generalizate a rezidurilor ponderate devine
i
j
j j , i
K =
(4)
unde
dxdy
y
N
y
N
x
N
x
N
K
D
i
j
i
j
j , i
|
|
\
|
= (5)
|
|
\
|
+ =
D
i
i i
D
i i
u
ds N dxdy
y
N
y x
N
x
dxdy fN (6)
Ilustrm aceast tehnic pe cazul problemei urmtoare:
Problema 2. s se determine funcia u pe dreptunghiul D=[0,1]x[0,1] astfel ca
( )
2 2
2
2
2
2
y 2 2 x 6 y x x
y
u
x
u
+ + =
, ( ) ( )( ) 2 x 1 x x 1 , x
y
u
+ =
.
Soluia exact a acestei probleme este ( ) ( )( )
2
y xy 1 x x y , x u + = . Programul de calcul n
Mathcad este prezentat n continuare.
f x y , ( ) x
2
x y 6 x 2 ( ) + 2 y
2
+ :=
Conditiile pe frontiera
dny0 x ( ) x
2
x 1 ( ) :=
dny1 x ( ) x x 1 ( ) x 2 + ( ) :=
x y , ( ) 0 :=
107
Functiile model
N x y , ( )
x x 1 ( )
x x 1 ( ) x
x x 1 ( ) y
x x 1 ( ) y
3
x x 1 ( ) x y
x x 1 ( ) y
2
(
(
(
(
(
(
(
(
:=
N
x
x y , ( )
2 x 1
3 x
2
2 x
x 1 ( ) y x y +
2 x 1 ( ) y
3
2 x x 1 ( ) y x
2
y +
2 x 1 ( ) y
2
(
(
(
(
(
(
(
(
(
:= N
y
x y , ( )
0
0
x x 1 ( )
3 x x 1 ( ) y
2
x
2
x 1 ( )
2 x x 1 ( ) y
(
(
(
(
(
(
(
(
:=
Aici N
x
i N
y
sunt derivatele funciilor model dup x respectiv y.
Functiile de integrat pentru a determina matricea sistemului
F i j , x , y , ( ) N
x
x y , ( )
j
N
x
x y , ( )
i
N
y
x y , ( )
j
N
y
x y , ( )
i
+
( )
:=
Integrarea o facem prin metoda trapezelor
Numarul de diviziuni pentru integrare
ni 10 :=
i2 0 ni .. := xi
i2
i2
ni
:= yi
i2
i2
ni
:=
108
Matricea sistemului ce se obtine prin metoda rezidurilor ponderate devine
n 5 :=
i 0 n .. := j 0 n .. :=
K
i j ,
1
4 ni ni
F i j , xi
0
, yi
0
, ( ) F i j , xi
ni
, yi
ni
, ( ) + F i j , xi
0
, yi
ni
, ( ) +
F i j , xi
ni
, yi
0
, ( ) 2
1
ni 1
i2
F i j , xi
i2
, yi
0
, ( )
=
+ +
...
2
1
ni 1
i2
F i j , xi
0
, yi
i2
, ( )
= 1
ni 1
i2
F i j , xi
i2
, yi
ni
, ( )
=
+
|
\
|
|
|
+
...
2
1
ni 1
i2
F i j , xi
ni
, yi
i2
, ( )
=
4
1
ni 1
i2 1
ni 1
i3
F i j , xi
i2
, yi
i3
, ( )
=
+ +
...
(
(
(
(
(
(
(
(
(
(
(
:=
K
0.34
0.17
0.17
0.086
0.085
0.114
0.17
0.14
0.085
0.043
0.07
0.057
0.17
0.085
0.147
0.103
0.074
0.119
0.086
0.043
0.103
0.111
0.051
0.109
0.085
0.07
0.074
0.051
0.056
0.06
0.114
0.057
0.119
0.109
0.06
0.114
|
\
|
|
|
|
|
|
|
=
Functia de integrat pe dreptunghi, pentru termenii liberi este:
G i x , y , ( ) f x y , ( ) N x y , ( )
i
:=
109
Termenii liberi sunt:
i 0 n .. :=
1
i
1
4 ni ni
G i xi
0
, yi
0
, ( ) G i xi
ni
, yi
ni
, ( ) + G i xi
0
, yi
ni
, ( ) +
G i xi
ni
, yi
0
, ( ) 2
1
ni 1
i2
G i xi
i2
, yi
0
, ( )
=
+ +
...
2
1
ni 1
i2
G i xi
0
, yi
i2
, ( )
= 1
ni 1
i2
G i xi
i2
, yi
ni
, ( )
=
+
|
\
|
|
|
+
...
2
1
ni 1
i2
G i xi
ni
, yi
i2
, ( )
=
4
1
ni 1
i2 1
ni 1
i3
G i xi
i2
, yi
i3
, ( )
=
+ +
...
(
(
(
(
(
(
(
(
(
(
(
:=
i
1
i
0
1
x dny0 x ( ) N x 0 , ( )
i
d
0
1
x dny1 x ( ) N x 1 , ( )
i
d :=
0.226
0.137
0.205
0.165
0.12
0.181
|
\
|
|
|
|
|
|
|
=
Coeficientii
au valorile:
K
1
:=
0.095
0.014
0.016
0.086
0.892
1.099
|
\
|
|
|
|
|
|
|
=
110
Solutiile aproximativa si solutia exacta sunt date de:
ua x y , ( )
0
n
i
i
N x y , ( )
i
=
:=
u x y , ( ) x x 1 ( ) x y y
2
+
( )
:=
Liniile de nivel ale celor doua solutii sunt in figurile de mai jos
ng 20 :=
i 0 ng .. := j 0 ng .. := x
i
i
ng
:= y
j
j
ng
:=
ma
i j ,
ua x
i
y
j
, ( ) := me
i j ,
u x
i
y
j
, ( ) :=
Observaie
1. Metoda rezidurilor ponderate se utilizeaz de regul pentru a determina soluii aproximative
ale cror valori se calculeaz prin metoda elementului finit. Metoda elementului finit este mai
laborioas, ncepnd de la divizarea domeniului n elemente finite pn la scrierea sistemului
liniar asociat i la reprezentarea soluiei. Detalii se gsesc la bibliografie.
Exerciii
1. S se rezolve problema 1 utiliznd metoda colocaiei. Indicaie: pentru calculul matricei
sistemului liniar i pentru calculul termenilor liberi se va utiliza
( ) ( )
( )
( ) ( )
q , p
P y , x
j , i j , i , q , p
y , x N K
=
=
( ) ( ) ( )
( )
q , p
P y , x
q , p
y , x f y , x
=
+ =
pentru un numr de puncte
q , p
P egal cu numrul de funcii model, rspndite uniform n ptrat.
2. S se rezolve problema 1 modificnd domeniul la un dreptunghiul [0,1]x[0,2], cu cerina ca
soluia s fie zero pe frontier i f(x,y)=x+y.
3. S se modifice corespunztor programele pentru problemele 1 i 2 ca s se rezolve problema
f u c u = + , unde R D : c este o funcie dat.
ma
me
Soluia aproximativ Soluia exact
111
Bibliografie
1. S.K. Godunov, V.S. Reabenki - Scheme de calcul cu diferene finite, Editura Tehnic,
Bucureti, 1977
2. G. Pltineanu, P. Matei, R. Trandafir - Bazele analizei numerice, Editura Printech, Bucureti,
2001
3. I. Dragot,V. Petrehu - Metode numerice pentru ecuaii difereniale, Editura Orizonturi
Universitare, Timioara, 2002.
4. G. Ghiocel - Analiz numeric, Editura MatrixRom, Bucureti, 2005
5. G. Pltineanu, G. Ghiocel, P. Matei, V. Petrehu - Rezolvarea numeric a problemelor la
limit pentru ecuaii difereniale de tip eliptic, Editura Conspress, Bucureti, 2009