Documente Academic
Documente Profesional
Documente Cultură
x
3
dx folosind functiile trapz si quad. Vericati analitic si numeric ca
valoarea integralei este 24e
5
3
+ 9.
c) Se da ecuatia diferentiala x + x
2
= 0 cu conditia initiala x(0) = 1. Rezolvati ecuatia
utilizand functia ode23.
Exercitiul 11 (2p). Un set de date cunoscut {x
i
, y
i
}
i1,N
poate aproximat ca o combinatie
liniara de M functii arbitrare:
y
P
(x) = c
1
f
1
(x) + c
2
f
2
(x) + + c
M
f
M
(x).
Coecientii se determina astfel incat eroarea sa e minima in sensul celor mai mici patrate.
Astfel, se considera setul de date generat prin secventa de comenzi
x = linspace(0,10,200);
y = randn(1,200);
Se cere aproximarea setului de date printr-o combinatie liniara a functiilor sin(x), sin(2x),
sin(3x). Reprezentati pe acelasi grac rezultatele obtinute, i.e., setul de date si y
P
(x).
Indicatie. Fie y
P
(x) = c
1
sin(x) +c
2
sin(2x) +c
3
sin(3x). Din setul de date avem succesiv:
18
Figura 10: Gracul pentru Exercitiul 12
_
_
y
1
= c
1
sin(x
1
) + c
2
sin(2x
1
) + c
3
sin(3x
1
)
y
2
= c
1
sin(x
2
) + c
2
sin(2x
2
) + c
3
sin(3x
2
)
=
y
200
= c
1
sin(x
200
) + c
2
sin(2x
200
) + c
3
sin(3x
200
)
y = Fc c = F
+
y = F\y, unde
y =
_
_
y
1
y
2
.
.
.
y
200
_
_
, F =
_
_
sin(x
1
) sin(2x
1
) sin(3x
1
)
sin(x
2
) sin(2x
2
) sin(3x
2
)
.
.
.
.
.
.
.
.
.
sin(x
200
) sin(2x
200
) sin(3x
200
)
_
_
, c =
_
_
c
1
c
2
c
3
_
_
, F
+
F = I.
Apelati in Matlab c=F\y.
Exercitiul 12 (1p). Scrieti un script Matlab care deseneaza gracele functiilor u(t) si v(t),
prezentate in gura 10.
Exercitiul 13 (1p). Convergenta seriilor innite. Consideram seriile
S
n
=
n
k=0
a
k
, a (1, 1), P
n
=
n
k=1
1
k
p
, p N
a) Scrieti o functie care primeste ca parametrii a (1, 1), n N si returneaza S
n
. Re-
prezentati grac S
n
, utilizand functia stem. Vericati ca, pentru n sucient de mare,
S
n
1
1a
. Testati pentru 1 < a < 0 si pentru 0 < a < 1.
b) Reluati punctul anterior pentru P
n
cu p = 2. Vericati ca, in acest caz, lim
n
P
n
=
2
6
.
Dar pentru p {3, 4, 5} ?
19
Figura 11: Gracul pentru Exercitiul 14
Exercitiul 14 (2p). Aruncarea unei bile in camp gravitational. Ecuatiile coordona-
telor bilei in functie de timp sunt
x(t) = v
0
cos()t, y(t) = h + v
0
sin()t
1
2
gt
2
,
unde t [0, t
nal
] este variabila de timp, h este inaltimea, v
0
este viteza initiala a bilei, este
unghiul vectorului v
0
cu orizontala, iar g = 9.8 m/s
2
. Se cere:
a) Scrieti o functie care primeste ca parametri t
nal
, h, v
0
, si deseneaza traiectoria bilei in
planul xOy. Se va desena pe acelasi grac solul, i.e., functia y(x) = 0, x.
b) Caz particular: t
nal
= 1 s, h = 1.5 m, v
0
= 4 m/s, = /4 rad. Gasiti distanta de impact
cu solul, i.e., x pentru care y 0. In cat timp are loc impactul? Gasiti si reprezentati pe
grac y
max
. La ce moment de timp are loc y = y
max
?
c) Desenati bila in miscare (o scurta animatie). Se vor folosi: o bucla for, plot, drawnow.
Exercitiul 15 (2p). Seturi Julia. Cautati pe Wikipedia Julia Sets, un exemplu celebru al
teoriei haosului. Date ind doua numere complexe, c si z
0
, se deneste urmatoarea recurenta:
z
n
= z
2
n1
+ c.
Sirul de numere complexe z
1
, z
2
, z
3
, . . . se numeste orbita lui z
0
.
a) Se poate arata ca, daca exista un numar n
0
N a.i. |z
n
0
| > 2, orbita sistemului tinde
la innit. Numarul n
0
se numeste viteza limita (escape velocity) pentru un z
0
particular.
Scrieti o functie care returneaza aceasta viteza, de forma n=escapeVelocity(z0,c,N),
unde N este valoarea maxima admisa (i.e., daca |z
N
| < 2, n = N; se previn astfel bucle
innite). Folositi functia abs pentru calculul modulului unui numar complex.
20
Figura 12: Gracul pentru Exercitiul 15
b) Vom scrie aici functia M=julia(zMax,c,N). Generati o matrice Z C
500500
, avand partea
reala intre -zMax si zMax si partea imaginara intre aceleasi limite. Pentru ecare element
din Z, se pastreaza in M viteza limita corespunzatoare. Indicatie. Z = X+jY . Veti folosi
functiile linspace si meshgrid. Mai departe, M(i,j)=escapeVelocity(Z(i,j),c,N),
pentru i, j {1, . . . , 500}.
c) Apelati M=julia(zMax,c,N) pentru diverse valori ale parametrilor. Se vor genera fractali.
Pentru vizualizarea fractalului, apelati imagesc(atan(0.1*M)). Spre exemplu, apelul de
mai jos genereaza gura 12.
M=julia(1,-0.297491+i*0.641051,100);
imagesc(atan(0.1*M))
21