8 %
9 a = 0;
10 b = -0.5 * T * log(0.5); % obliczone z warunku zadania
11 n = 25000;
12
13 % wykres funkcji
14 %
15 t = linspace(a,b,n);
15 plot( t,eq(t) );
17 grid on;
18 title ’exp(-2.0*t/T) * sin(2.0*pi*f*t) - 0.5';
19 xlabel 't';
20 line( xlim, [0,0], 'Color', 'red','LineStyle',':1 );
21
22 % znajdowanie pierwiastków
23 %
24 t_roots = [];
25 t_start = a;
26 t_delta = 1/f * 0.1;
27 while (t_start < b)
28 try
29 t_roots = [t_roots; fzero( eq, [t_start, t_start+t_delta] )];
30 catch
31 end
32 t_start = t_start + t_delta;
33 end
34
35 % wyniki
36 %
37 format long
38 disp(t_roots);
Ilustracja 25. Wykres funkcji @(t)( exp(-2.0*t/T) .* sin(2.0*pi*f*t).A2 - 0.5 ).
Zadanie 35. Zmodyfikuj skrypt z poprzedniego zadania tak, aby powstała funkcja fz(T,freq,treshold), która pozwoli obliczyć zera dla dowolnego podanego okresu, częstotliwości oscylacji i progu (który nie musi wynosić 0.5).
dr Sławomir Marczyński
Matlab - ćwiczenia
18/38