Załóż na pulpicie folder Lab/cw-03. Uruchom program Matlab, przejdź do Lab/cw-03 jako do katalogu roboczego. Uruchom poleceniem diary zapis wydanych poleceń do pliku notes.txt.
Zadanie 33. Rozwiąż równanie sinx = e~x znajdując wszystkie pierwiastki mniejsze niż 20.
Aby rozwiązać powyższe zadanie zastosujesz funkcję fzero, ale najpierw narysuj wykres aby ogólnie zorientować się gdzie mogą być szukane miejsca zerowe.
Ilustracja 23. Wykres funkcji przedstawiających lewą (Ihs) i prawą stronę (rhs) równania. Tam gdzie przecinają się ciągłe linie, niebieska i zielona, tam równanie jest spełnione.
Teraz użyj pętli for, aby znaleźć odpowiednie pierwiastki. Zauważ, że pierwsze przecięcie jest blisko x = 0, czyli x = (Tc — l)7r dla k = 1, natomiast kolejne w pobliżu x = (k — l~)n, gdzie k = 2,3,4,...,7 (bo założyliśmy x < 20). Wyniki obliczeń dopisuj do wektora x0. Dla ułatwienia zamiast wydawać polecenia wprost z konsoli użyj skryptu (nazwij go zadanie33.m).
1 % definicje funkcji
2 %
3 lhs = @(x)(sin(x));
4 rhs = @(x)(exp(-x));
5 eq = @(x)(lhs(x) - rhs(x));
6
7 % zakres wykresu i ilość punktów
8 %
9 a = -1.0;
10 b = 24.0;
11 n = 2500;
12
13 % wykresy funkcji
14 %
15 x = linspace(a,b,n);
16 plot( x,lhs(x), x,rhs(x) );
17 grid on;
18 title ’sin(x), exp(-x)';
19 xlabel 'x';
20 ylabel 'y';
21 line( xlim, [0,0], 'Color', 'red','LineStyle',':' );
dr Sławomir Marczyński
Matlab - ćwiczenia
16/38