Laboratorium nr 7 Rysowanie wykresów. Rysowanie wykresów na płaszczyźnie umożliwia polecenie plot(), np.: plot(x, y, 'typ linii'), przy czym x - zmienna niezależna, y - zmienna zależna, natomiast typ linii określa kolor i znacznik linii. Dopuszczalne kolory i znaczniki linii: znacznik kolor . (kropka) y - żółty o (mała litera o) m - fioletowy x (mała litera x) c - jasno-niebieski + (plus) r - czerwony * (znak mnożenia) g - zielony - (minus) b - niebieski : (dwukropek) w - biały -. (minus, kropka) k - czarny -- (minus, minus) przykładowe polecenie: plot(x, y, 'r*') Można umieścić kilka krzywych w jednym układzie współrzędnych np.: y = f(x), z = f(x), u = f(x) pisząc polecenie: plot(x, y, 'r*', x, z, 'c+', x, u, 'co'). Polecenie subplot pozwala na umieszczenie krzywych w kilku układach współrzędnych w jednym oknie. Składnia tego polecenia jest następująca: subplot(ilość wykresów w pionie, ilość wykresów w poziomie, kolejność) np. polecenia: subplot(2, 1, 1) plot(x, y) subplot(2, 1, 2) plot(z, w) umożliwiają narysowanie dwóch wykresów w pionie, przy czym wykres (x, y) jako pierwszy umieszczony jest na górze ekranu, natomiast (z ,w) jako drugi na dole ekranu. Polecenia xlabel('tekst'), ylabel('tekst') i title(‘tekst’) umożliwiają dołączenie etykiet do osi x i y oraz tytułu wykresu, natomiast polecenie text(x, y, 'tekst') pozwala na dodanie dowolnego tekstu na wykresie, przy czym (x, y) są to współrzędne określające początek tekstu. Polecenie grid on powoduje wyświetlenie linii siatki, grid off usuwa linie siatki z wykresu 5. Wybrane elementarne funkcje matematyczne. abs(x) - wartość bezwzględna log(x) - logarytm naturalny max(x) - wartość maksymalna log10(x) - logarytm dziesiętny real(x) - część rzeczywista sqrt(x) - pierwiastek kwadratowy imag(x) - część urojona exp(x) - funkcja wykładnicza cos(x) pi - liczba P atan(x) sin(x) - funkcje trygonometryczne tan(x) Zadania 1. narysowanie wykresow funkcji tygonometrycznych sin cos tg i ctg, wyświetlenie wszystkich wykresów funkcji na jednym polu graficznym wraz z przejrzystym opisem 2. wykreślenie funkcji arcus dla każdej funkcji tygonometrycznej wraz z wyświetleniem wszystkich wykresów funkcji na jednym polu graficznym wraz z przejrzystym opisem 3. wyswietlenie na jednym wykresie funkcji sinus oraz jej arcus i funkcje hiperboliczna 4 wykorzystanie programu z LAB2 przedstawienie w pistaci graficznej wykresu funkcji otrzymanej z obliczen z LAB2 z odpowiednim podpisem funkcji oraz zapisaniem obiektu na dysku przykład programu clear; clc; format short; %wyświetlanie cyfr z 4 miejscami po przecinku% mode=-1;%modul operacyjny dla programu while mode~=0 clc; disp('LABORATORIUM 7') disp('Temat:Tworzenie wykresów dwuwymiarowych') disp('PROGRAM TWORZY WYBRANE WYKRESY FUNKCJI TYGONOMETRYCZNYCH ORAZ WYKRESLA FUNKCJE Z LAB2') disp('1.Wyświetlenie funkcji tygonometrycznych') disp('2.Przedstawienie graficzne wykresów funkcji z lab2') disp('0.Zakończ program') mode=input('Wybierz czynność do wykonania');%wprowadzenie modulu operacyjnego if mode ==1%wykonanie pierwszego zadania disp('FUNKCJE TYGONOMETRYCZNE') disp('1. sin, cos, tg, ctg(podstawowe)') disp('2. asin, acos, atg, actg(arcus)') disp('3. sin, asin, sinh') operator=input('Wybierz czynność do wykonania','s');%wybieramy odpowiedznie zadanie while operator~= '1' & operator~='2' & operator~='3'%petla sprawdza czy nie uzylismy innych liczb niz 1,2,3 dla których nie ma przypisanych czynnosci operator=input('Wybierz co chcesz wykonać?[1,2,3]'); clc; end switch operator%wykonanie zadania z uzyciem case case '1' x1 = [-pi:0.1:pi];%z definiowanie dziedziny i przeciwdziedziny dla funkcji tygonometrycznych y1 = sin(x1); x2 = [-pi:0.1:pi]; y2 = cos(x2); x3 = [(-pi/2)+0.1:0.1:(pi/2)-0.1]; y3 = tan(x3); x4 = [0.1:0.1:pi-0.1]; y4 = cot(x4); subplot(2,2,1);plot(x1,y1)%wyświetlenie wszystkich funkcji tyg. w jednym obiekcie graficznym title('y=sin(x)')%tytul wykresu grid on%uruchomienie siatki współrzednych xlabel('OX');%podpisanie osi OX i OY ylabel('OY'); subplot(2,2,2);plot(x2,y2) title('y=cos(x)') grid on xlabel('OX'); ylabel('OY'); subplot(2,2,3);plot(x3,y3) title('y=tg(x)') grid on xlabel('pi'); ylabel('OY'); subplot(2,2,4);plot(x4,y4) title('y=ctg(x)') grid on xlabel(' 0 \leq \Theta \leq \pi');%wykorzystanie sybolu liczby pi na wykresie ylabel('OY'); case '2'%wykreślenie funkcji arcus dla f. tyg. xs = -1:.01:1; ys = asin(xs); xc = -1:.05:1; yc = acos(xc); xt = -20:0.01:20; yt = atan(xt); xctg1 = -2*pi:pi/30:-0.1; xctg2 = 0.1:pi/30:2*pi; yctg1 = acot(xctg1); yctg2 = acot(xctg2); subplot(2,2,1);plot(xs,ys) title('y=asin(x)') grid on xlabel('OX'); ylabel('OY'); subplot(2,2,2);plot(xc,yc) title('y=acos(x)') grid on xlabel('OX'); ylabel('OY'); subplot(2,2,3);plot(xt,yt) title('y=atg(x)') grid on xlabel('pi'); ylabel('OY'); subplot(2,2,4);plot(xctg1,yctg1,xctg2,yctg2) title('y=actg(x)') grid on xlabel('pi'); ylabel('OY'); case '3' x = [-pi:0.1:pi]; y = sin(x); xa = -1:.01:1; ya = asin(xa); xh = -5:0.01:5; yh = sinh(xh); plot(x,y,'y',xa,ya,'r',xh,yh,'b');grid on legend('sin(x)','asin(x)','sinh(x)',2) xlabel('OX'); ylabel('OY'); otherwise disp('Wybrałeś liczbe poza zbiór [1,3]') end elseif mode ==2%wykorzystanie składni z LAB2 w celu stworzenia wykresu odpowiedniej funkcji disp('Obliczanie pierwiastkow rownania kwadratowego postaci:') disp('ax^2+bx+c=0')%postac ogolna trojmianu kwadratowego disp('Podaj:') a = input('Wspolczynnik a: ');%podanie współczynników rownania b = input('Wspolczynnik b: '); c = input('Wspolczynnik c: '); if a==0 & b==0 & c==0%sprawdzenie pierwszego warunku dla rownania tozsamosciowego disp(' R-nie tożsamościowe 0=0, nieskończenie wiele prierwiastków r-nia') elseif a==0 & b==0 & c ~=0%sprawdzenie pierwszego warunku dla rownania sprzecznego disp([' R-nie sprzeczne ',num2str(c),'=0']) elseif a==0 & b~=0%sprawdzenie pierwszego warunku dla rownania liniowego x=-c/b; disp(['R-nie liniowe. Miejsce przecięcia przez OX: ',num2str(x)]) else%pozostale możliwosci to tylko trojmian kwadratowy dl= b*b-4*a*c;%podzial trojmianu w zaleznosci o wyniku delty if dl>=0 pdl=sqrt(dl);%obliczanie pierwiastka z delty if dl>0 x1=(-b-pdl)/2*a;%obliczenie pierwiastkow zerowych a takze miejsc zerowych dla funkcji kwadratowej x2=(-b+pdl)/2*a; disp(['Dla delty >0 ',num2str(x1),' i ',num2str(x2)])%wyswietlenie w czytelnej formie wyniku else x0=-b/2*a; %obliczenie pierwiastka podwojnego disp(['Dla delty =0, x0= ', num2str(x0)]) end else disp('Delta r-nia jest mniejsza od 0. Brak pierwiastków.')%jedyna pozostala możliwość to brak pierwiastkow end end p=-b/2*a;%obliczenie wektora przesuniecia funkcji w celu z centrowania wykresu do funkcji X =[-3+p:0.1:3+p];%zbior argumentow Y = a*X.^2 + b*X +c;%zbior wartosci funkcji plot(X,Y)%wyswietlenie funkcji hold on;%wykorzystanie polecenia hold on w celu dopisanie kolejnych wykresow na tym samym wykresie axis([-4+p, 4+p, -4+c, 4+c]);%wyswietlanie odpowiedniego przedzialu grid on;%uruchomienie siatki title ('Funkcja kwadratowa y=a*x^2+b*x+c');%podpisanie wykresu xlabel('OX');%podpisanie osi wspolrzednych ylabel('OY'); if a==0 && b~=0 hgsave('f_liniowa.tif')%zapis do pliku wykresu funkcji plot(...
MegaCoNz2014