LAB7wykresy.txt

(10 KB) Pobierz
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(...
Zgłoś jeśli naruszono regulamin