Il 0% ha trovato utile questo documento (0 voti)
127 visualizzazioni

Prova MatLab

Il documento contiene 10 esercizi di analisi matematica da svolgere in MATLAB. Gli esercizi riguardano grafici di funzioni, aree, equazioni differenziali, curve parametriche, equazioni complesse, successioni e matrici triangolari.
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
127 visualizzazioni

Prova MatLab

Il documento contiene 10 esercizi di analisi matematica da svolgere in MATLAB. Gli esercizi riguardano grafici di funzioni, aree, equazioni differenziali, curve parametriche, equazioni complesse, successioni e matrici triangolari.
Copyright
© © All Rights Reserved
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Sei sulla pagina 1/ 3

Analisi Matematica I (per Ing. Matematica) Prof.

Verri Prova di laboratorio del 24/01/2013

Cognome Matr.
Nome N. lista
Il tempo concesso per svolgere lesame e di 60 minuti.
Salvo diversa indicazione, riportare negli appositi spazi solamente i comandi MATLAB necessari a
risolvere i problemi e leventuale risultato numerico.
Non verranno ritirati altri fogli oltre al presente.
E consigliato, tra un esercizio e laltro, cancellare tutti i dati salvati utilizzando il comando clear all.

La terzultima cifra del mio numero di matricola e K = . (Questo valore andra usato nei problemi seguenti.)

1. Disegnare il grafico della funzione f (x) = x cos(2|x|) nellintervallo [2, 2] con un linea rossa. Affiancare poi nella
stessa finestra grafica uno zoom della funzione nellintervallo [0.5, 0.5].

f = @(x) x.*cos(2*pi*abs(x)); x = linspace(-3, 3, 100);


figure
subplot(1,2,1), plot(x, f(x), r-)
subplot(1,2,2), plot(x, f(x), r-), xlim([-0.5 0.5])

13 13

y = x2 x +

2. Fornire una stima dellarea compresa tra i grafici delle parabole di equazioni 3 3 utilizzando
y = x2 + x 11
17
3 3
una tecnica di tipo hit or miss.

p1 = @(x) x.^2 - 13/3*x + 13/3; p2 = @(x) -x.^2 + 17/3*x - 11/3;


x = linspace(0.5,4.5,100);
figure, plot(x, p1(x), r-), hold on, plot(x, p2(x), k-)
n = 10000; x_punti = 3*rand(1,n) + 1; y_punti = 6*rand(1,n) - 1;
n_dentro = numel(find((y_punti < p2(x_punti)) & (y_punti >p1(x_punti)) ));
area_rettangolo = 3*6; stima_area = n_dentro / n * area_rettangolo

x4 2
3. Determinare le equazioni degli asintoti del grafico della funzione f (x) = , utilizzando il pacchetto simbolico
|x 3|
di MATLAB.

syms x
f = sqrt(x^4-2)/abs(x-3)
limit(f, x, 3, left), limit(f, x, 3, right) % x = 3 asintoto verticale
limit(f, x, inf), m = limit(f/x, x, inf), q = limit(f - m*x, x, inf)
% Asintoto obliquo per x -> +inf, y = x + 3
limit(f, x, -inf), m = limit(f/x, x, -inf), q = limit(f - m*x, x, -inf)
% Asintoto obliquo per x -> -inf, y = -x - 3
4. Rappresentare
( la curva parametrica detta cicloide, i cui punti hanno coordinate definite dalle equazioni
x(t) = r(t sin t)
per t [0, 6] e r = K + 1.
y(t) = r(1 cos t),
Creare poi una animazione nella quale un punto si muove lungo la traiettoria prima da sinistra verso destra e poi in
senso contrario.

kappa = 0; r = kappa+1;
cicloide = @(t) [r*(t - sin(t)); r*(1 - cos(t))];
t = linspace(0, 6*pi, 100); punti = cicloide(t);
figure, plot(punti(1,:), punti(2,:), b-, Linewidth, 2), axis equal, hold on
for ii = 1:numel(theta)
h = plot(punti(1,ii), punti(2,ii), o-, Markersize, 8, LineWidth, 2);
pause(0.02), delete(h)
end
for ii = numel(theta):-1:1
h = plot(punti(1,ii), punti(2,ii), o-, Markersize, 8, LineWidth, 2);
pause(0.02), delete(h)
end

5. Determinare le soluzioni complesse dellequazione

z 3 [K(1 + i) + 2 i] z 2 + K2 i + (3 + 2i)K 2i z 2K2 i 2K = 0


 

utilizzando il pacchetto simbolico di MATLAB. Rappresentare poi le soluzioni ottenute sul piano di Gauss.

syms k z
eq = z^3 - (k*(1+1i) + 2 - 1i)*z^2 + (k^2*1i + (3+2i)*k - 2i)*z - 2*k^2*1i - 2*k;
sol = solve(eq)
kappa = 1;
sol1 = subs(sol(1),k,kappa), sol2 = subs(sol(2),k,kappa), sol3 = subs(sol(3),k,kappa)
figure, hold on, plot(real(sol1), imag(sol1), xr, real(sol2), imag(sol2), xr, ...
real(sol3), imag(sol3), xr)
sol = 2, k*i, k - i

6. Descrivere il funzionamento del comando prod e fornire un esempio del suo utilizzo diverso da quelli presenti nellhelp
di MATLAB.

help prod
Sintassi: P = prod(X)
Il comando prod applicato a una lista di valori ritorna il prodotto degli elementi della lista
stessa.
Se applicato a una tabella...

7. Scrivere una funzione che, data in ingresso una lista a di n valori ai , i = 1, 2, . . . , n, calcoli la media geometrica di

questi ultimi, definita come a = n a1 a2 a3 . . . an .
Applicare poi la funzione alla lista di numeri a = [1, 2, 3, . . . , 10 + K] e riportare il risultato ottenuto in formato short.

function a_bar = geometrica(a)


n = numel(a); prodotto = 1;
for ii = 1:n
prodotto = prodotto*a(ii);
end
a_bar = prodotto^(1/n);
end
kappa = 1; armonica([1:(10+kappa)])
0: 4.5287; 1: 4.9092; 2: 5.2889; 3: 5.6677; 4: 6.0459; 5: 6.4234; 6: 6.8005;
7: 7.1770; 8: 7.5532; 9: 7.9289;

a0 = 1
8. Mostrare che la successione ricorsiva definita da (a )2 + 2 converge a 2 riportando su un
an = n1 n = 1, 2, . . .
2an1
grafico levoluzione dei valori della successione.

a(1) = 1;
for ii = 1:10
a(ii+1) = a(ii)/2 + 1/a(ii);
end
figure, plot(1:numel(a), a, xb)
hold on, plot(1:numel(a), sqrt(2)+0*a, r--)

5
9. Determinare i valori positivi x e y tali che la quantita f = x2 +2y 2 xy sia minimizzata, sotto il vincolo xy = 10+K.
2
Effettuare ciascun passaggio utilizzando il pacchetto simbolico di MATLAB.

syms x y
f = x^2 + 2*y^2 - x*y
% Inserire il numero kappa corrispondente
y_x = solve(x - y = 10 + 1, y), f_x = subs(f, y, y_x), f_x = expand(f_x)
df_x = diff(f_x, x)
solve(df_x, x)
0: x = 15 1: x = 33/2 2: x = 18 3: x = 39/2 4: x = 21 5: x = 45/2 6: x = 24
y = 5 y = 11/2 y = 6 y = 13/2 y = 7 y = 15/2 y = 8
7: x = 51/2 8: x = 27 9: x = 57/2
y = 17/2 y = 9 y = 19/2

1 2 3 ... n

0 1 2 ... n 1

10. Scrivere una funzione che, dato in ingresso un valore n, ritorni la tabella di nn valori T =
0 0 1 ... n 2 .

.. .. .. . . ..
. . . . .
0 0 0 ... 1

function T = triangolare(n)
T = zeros(n);
for ii = 1:n
T(ii, ii:n) = 1:n-ii+1;
end
end

Potrebbero piacerti anche