Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Kolokwium Matlab 2013 GR C
- Zadanie
- Napisz skrypt zadanieC.m, który będzie wykonywał kolejno następujące polecenia:
- 1. wczytaj macierz C z pliku macierzC.mat (plik pobierz z platformy estudia). (10%)
- load macierzC.mat
- 2. wyświetl :
- - komunikat „Macierz C przed zmianą”
- disp("Macierz C przed zmiana:")
- - macierz C (5%)
- disp(C)
- 3. zamień wskazane przez użytkownika elementy macierzy C: jeżeli element macierzy C jest
- parzysty pomnóż go przez 2, w przeciwnym wypadku podziel na 2. Do wskazania elementów
- poproś użytkownika o podanie numeru kolumny (max 5). (20%)
- %zadanie 3
- N=input('podaj numer kolumny(max 5):');
- B=C(:,N);
- B(rem(B,2)==0)=B(rem(B,2)==0)*2;
- B(rem(B,2)~=0)=B(rem(B,2)~=0)/2;
- C(:,N)=B;
- 4. wyświetl
- - komunikat „Macierz C po zmianie”
- - macierz C (5%)
- %zadanie 4
- disp("Macierz C po zmianie:")
- disp(C)
- 5. wygeneruj wektor t, o W liczbach rozmieszonych pomiędzy x1 i x2. (30%)
- x1- to pierwszy element macierzy C podzielony przez 100,
- x2 - to ostatni element macierzy C podzielony przez 100,
- wartość W- podaje użytkownik (max 10).
- %zadanie 5
- W=input('Podaj na ile odcinkow podzielic wektor t(max 10): ');
- x1=C(1,1)/100;
- x2=C(5,5)/100;
- t=linspace(x1,x2,W);
- 6. Narysuj dwa wykresy w jednym oknie. (30%)
- - w oknie pierwszym narysuj wykres krzywej funkcji 𝑦(𝑡) = ln(2 + t + t2)
- - w drugim oknie narysuj wykres powierzchniowy funkcji
- 𝑧 = 𝑓(𝑥, 𝑦) = (𝑥 − 𝑦)(𝑥 + 𝑦) + 𝑒√𝑥2+𝑦2
- 𝑑𝑙𝑎 𝑥 = 𝑡 , 𝑦 = t
- figure
- subplot(2,1,1)
- y=log(2+t+t.^2);
- plot(t,y)
- subplot(2,1,2)
- [X,Y]=meshgrid(t,t);
- Z=(X-Y).*(X+Y)+exp(sqrt(X.^2+Y.^2));
- surf(X,Y,Z)
- Kolokwium Matlab 2015 GR F
- Prześlij rozwiązanie zadanieF.m oraz wygenerowany plik wektor_t.txt w wyznaczonym czasie.
- Zadanie
- Napisz skrypt zadanieF.m, który będzie wykonywał kolejno następujące polecenia:
- W pierwszej linii kodu (w komentarzu) wpisz swoje imię i nazwisko oraz wersja F.
- 1. (10%) Wczytaj wektor F z pliku wektorF.mat (plik pobierz z platformy e-studia).
- Wyświetl :
- - komunikat „Wektor F przed zmianą”
- - Wektor F
- %zadanie 1
- load wektorF.mat
- disp("wektor F przed zmiana:")
- disp(F)
- 2. (20%) Zamień elementy wektora F: jeżeli element wektora F jest wielokrotnością 3
- pomnóż go przez liczbę, którą wskaże użytkownik.
- Wyświetl
- - komunikat „Wektor F po zmianie”
- - Wektor F
- %zadanie 2
- N=input('Przez jaka liczbe mam pomnozyc elementy wektora F(wielokrotnosci 3):');
- F(rem(F,3)==0)=F(rem(F,3)==0)*N;
- disp("wektor F po zmianie:")
- disp(F)
- 3. (20%) Wygeneruj z wektora F wektor t, o W liczbach rozmieszonych pomiędzy x1 i x2.
- x1- to liczba równa średniej wartości wektora F podzielonej przez 100,
- x2 - to liczba równa średniej wartości wektora F pomnożonej przez 100,
- wartość W- podaje użytkownik (max 100).
- %zadanie 3
- W=input('W ilu punktach podzielić przedział<x1;x2> (max 10):');
- t=linspace(mean(F)/100,mean(F)*100,W);
- 6. (20%) Zapisz wektor t do pliku wektor_t.txt. Dobierz odpowiednio funkcje, tak aby
- wygenerowany plik wyglądał jak w przykładzie poniżej.
- %zadanie 6
- plik=fopen("wektor_t.txt", "w");
- fwrite(plik,"Wektor t:\n")
- fprintf(plik,"%f\n",t)
- fclose(plik)
- 7. (30%) Narysuj dwa wykresy w jednym oknie.
- - w oknie pierwszym narysuj wykres krzywej funkcji y(t)=sin(t)2
- Wstaw tytuł wykresu „Wykres 2D”.
- - w drugim oknie narysuj wykres 3D powierzchniowy funkcji z=f(x,y)=esin(x)esin(y), dla x=t, y=t.
- Wstaw tytuł wykresu „Wykres 3D”.
- %zadanie 7
- figure
- subplot(2,1,1)
- plot(t,sin(t).^2)
- title("Wykres 2D")
- subplot(2,1,2)
- [x,y]= meshgrid(t,t);
- z=exp(sin(x)).*exp(sin(y));
- surf(x,y,z)
- title("Wykres 3D")
- Ćwiczenie 4.1
- Proszę narysować wykresy następujących funkcji: cos(x)esin(x) , sin(x)esin(x) , cosh(x)ecos(x) , ln(1+x)ln(3+sin(x)) , sin(1 + x)sinh(3 + [pierwiastek z x] ) w przedziale ustawiając różne parametry kreślonych serii.
- Poniżej podano przykład polecenia dla pierwszego wykresu:
- close all,
- x=0:0.1:3*pi;
- plot(x,cos(x).*exp(sin(x)),'*:m')
- x=0:0.1:3*pi;
- figure, subplot(2,3,1)
- plot(x,cos(x).*exp(sin(x)),'-m');
- subplot(2,3,2)
- plot(x,sin(x).*exp(sin(x)),'*:b');
- subplot(2,3,3)
- plot(x,cosh(x).*exp(cos(x)),'--k');
- subplot(2,3,4)
- plot(x,log(1+x).*(log(3+sin(x))),'*:g');
- subplot(2,3,5)
- plot(x,log(1+x).*sinh(3+sqrt(x)),'-.c');
- Ćwiczenie 4.2
- Utworzyć wykres funkcji y(x)=sin2x dla −π ≤ x ≤ π. Przeskalować wykres, tak aby: 0 ≤x ≤ π/2 i 0 ≤ y ≤ 1.
- x=-pi:0.1:pi;
- y=sin(2*x);
- subplot(2,1,1);
- plot(x,y)
- subplot(2,1,2);
- plot(x,y)
- axis([0,pi/2,0,1])
- Ćwiczenie 4.3
- Utworzyć wykres funkcji y(t) = e t (1+ cos3t) dla 0 ≤ t ≤ 2π . Przeskalować wykres, tak aby: 0 ≤ t ≤ 2π i −100 ≤ y ≤ 900.
- close all
- clear all
- t=0:pi/10:2*pi;
- y=exp(t).*(1+cos(3.*t))
- subplot(2,1,1)
- plot(t,y,'p:r')
- subplot(2,1,2)
- plot(t,y,'p:r')
- axis([0,2*pi,-100,900])
- 4.1.
- Napisz skrypt, który będzie rysował na jednym wykresie lub na trzech osobnych wykresach w tym samym oknie graficznym, w zależności od wyboru użytkownika dokonywanego z
- klawiatury, przebiegi funkcji:
- - sin(x) – czerwoną linią ciągłą,
- - sin2(x) – niebieską linią kreskowaną,
- - sin3(x) – czarną linią kropkowaną
- w N punktach z przedziału <0 ; 2π>. Do wygenerowania wektora x wykorzystaj funkcję linspace(x1, x2, N). Sprawdź za pomocą polecenia help linspace jak działa ta funkcja.
- close all
- Wybor=input('0: jeden wykres, 1: trzy wykresy');
- n=input('Podaj liczbe punktow');
- x=linspace(0,2*pi,n);
- if(Wybor == 0)
- plot(x,sin(x),'r-',x,sin(x).^2,'b--',x,sin(x).^3,'k:')
- elseif(Wybor == 1)
- subplot(3,1,1)
- plot(x,sin(x),'r-')
- subplot(3,1,2)
- plot(x,sin(x).^2,'b--')
- subplot(3,1,3)
- plot(x,sin(x).^3,'k:')
- end
- 4.2.
- Napisz skrypt rysujący na jednym wykresie funkcję y(t) = AeBsin(t) w przedziale t∈<0 ; 20> dla dwóch zestawów parametrów: A=2, B=3 (czarna linia ciągła) oraz dla A=1, B=-3 (niebieska linia kropkowana). Na wykresie umieść także siatkę, podpisy pod osiami,tytuł wykresu oraz legendę.
- close all
- t=linspace(0,20,100);
- f1=2.*exp(3.*sin(t));
- f2=1.*exp(-3.*sin(t));
- plot(t,f1,'k-',t,f2,'b:')
- title('Wykres funkcji f(t)=A*e^(B*sin(t))');
- legend('dla A=2 i B=3','dla A=1 i B=-3');
- ylabel('f(t)');
- xlabel('t');
- grid on
- 4.3.
- Sprawdź za pomocą polecenia help jak działają funkcje axis.
- Napisz skrypt, w którym narysujesz 4 wykresy funkcji y = cos(t)esin(t) dla wartości t z przedziału <0; 10> w jednym oknie graficznym podzielonym na 4 podokna:
- - w domyślnym układzie współrzędnych, (axis auto lub axis normal)
- - w układzie współrzędnych o równych jednostkach na obu osiach, (axis equal)
- - w układzie współrzędnych o rozmiarach takich jak rozmiary rysunku, (axis image),
- - bez układu współrzędnych, (axis off).
- close all
- t=0:0.1:10;
- y=cos(t).*exp(sin(t));
- subplot(2,2,1)
- plot(t,y)
- axis normal
- subplot(2,2,2)
- plot(t,y)
- axis equal
- subplot(2,2,3)
- plot(t,y)
- axis image
- subplot(2,2,4)
- plot(t,y)
- axis off
- 4.4.
- Napisz skrypt, który będzie rysował wykres funkcji y = e sin(x) w N punktach z przedziału <10-1 ; 103> używając skali logarytmicznej na osi x. Do wygenerowania wektora x wykorzystaj funkcję logspace(x1, x2, N). Sprawdź za pomocą polecenia help logspace jakdziała ta funkcja. Opisz osie oraz dodaj tytuł wykresu.
- close all
- pkt=input('Podaj ilosc punktow');
- x=logspace(-1,3,pkt);
- semilogx(x,exp(sin(x)),'r--')
- title('Funkcja e(sin(x))')
- xlabel('x')
- ylabel('y')
- 4.5.
- Napisz funkcję, która narysuje dwa wykresy w jednym oknie graficznym. Argumentami wejściowymi funkcji mają być dwa wektory (x, y), definiujące punkty krzywej (x to odcięte, natomiast y to odpowiadające im rzędne pewnej funkcji); wyjściowych argumentów nie ma.
- Wykresy mają być w układzie 2×1. W górnym obszarze ma pojawić się wykres narysowany czerwoną linią ciągłą, natomiast w dolnym same znaczniki (niebieskie kółka) oraz zielona linia, która odpowiada średniej wartości funkcji y dla rozpatrywanych x. Proszę zapisać funkcję w pliku stat_graf.m. Oto przykładowy nagłówek funkcji:
- function stat_graf(x,y)
- Podpowiedź
- Do zrobienia ćwiczenia przydadzą się funkcje: mean(), size(), ones(), no i oczywiście:
- figure, subplot(), plot(), hold.
- close all
- function [] = stat_graf(x,y)
- subplot(2, 1, 1)
- plot(x, y, 'r-')
- subplot(2, 1, 2)
- hold on
- plot(x, y, 'ob')
- plot(x, mean(y) * ones(size(x)), 'g-')
- end
- Ćwiczenie 5.1.
- Proszę narysować poniższe funkcje w zadanych przedziałach w jednym oknie graficznym podzielonym na cztery obszary ułożone „w szachownicę”. Każdy z wykresów powinien być utworzony podaną obok funkcją graficzną.
- subplot(2,2,1)
- [x,y] = meshgrid(-5:.5:5, -5:.5:5);
- z = (x-y).*(x+y)+exp(sqrt(x.^2+y.^2));
- mesh(x,y,z)
- subplot(2,2,2)
- [x,y] = meshgrid(-3:.2:3, -3:.2:3);
- z = exp(-(x-1).^2-y.^2) + exp(-(x+1).^2-y.^2);
- meshc(x,y,z)
- subplot(2,2,3)
- [x,y] = meshgrid(1:.2:10, 1:.2:10);
- z = (x-5).^2-(y-5).^2;
- surf(x,y,z)
- subplot(2,2,4)
- [x,y] = meshgrid(-pi:.2:pi, -pi:.2:pi);
- z = exp(cos(x)).*exp(cos(y));
- surfc(x,y,z)
- 5.1.
- Narysować wykres krzywej parametrycznej zdefiniowanej za pomocą zależności: x(t) = tcos(2πt), y(t) = t2 sin(2πt), z(t) = t dla t ∈<0,2pi>
- clear all;
- close all;
- t = linspace(0,2*pi,300);
- plot3(t.*cos(2*pi*t),t.^2.*sin(2*pi*t),t);
- grid on;
- axis square;
- 5.2.
- Narysować powierzchnię funkcji z = x3/3+5-cos2(y) dla |x| < 2 i |y| < π/2 korzystając z funkcji meshgrid oraz surf
- clear all;
- close all;
- [x,y] = meshgrid(-2:.2:2, -pi/2:.2:pi/2);
- z = (x.^3)/3+5-cos(y).^2;
- surf(x,y,z)
- 5.3.
- Utwórz wykres powierzchniowo-konturowy funkcji z = x 2 /4+1-sin(x)cos(y) dla | x | < π i | y | < 2 korzystając z funkcji surfc oraz meshc. Do stablicowania funkcji z użyj polecenia meshgrid.
- clear all;
- close all;
- [x,y] = meshgrid(-pi:.2:pi, -2:.2:2);
- z = x.^2/4+1-sin(x).*cos(y);
- subplot(1,2,1);
- meshc(x,y,z);
- title('Wykres siatkowo-konturowy');
- subplot(1,2,2);
- surfc(x,y,z);
- title('Wykres powierzchniowo-konturowy');
- 5.4.
- Narysuj wykres funkcji f(x,y) = xysin(x)cos(y) dla | x | < π i | y | < π korzystając z funkcji surfc.
- clear all;
- close all;
- [x,y] = meshgrid(-pi:.2:pi, -pi:.2:pi)
- z = x.*y.*sin(x).*cos(y);
- surfc(x,y,z);
- 5.5.
- Sprawdz za pomocą polecenia help contour jak działa funkcja contour, a następnie za pomocą tej funkcji sporządź wykres konturowy powierzchni
- x2+ sin(xy)+ y2-z2=0 dla |x|<pi/2 i |y|<pi/2
- clear all;
- close all;
- [x,y] = meshgrid(-pi/2:.2:pi/2, -pi/2:.2:pi/2);
- z = sqrt(x.^2+sin(x.*y)+y.^2);
- contour(z);
- Zadanie 6.1
- Korzystając z polecenia meshgrid stablicuj funkcje z=sin(x)cos(y) w obszarze <0;2p>×<0; 2p>. Zapisz zmienne x, y oraz z w pliku binarnym tablica.mat i usuń je z pamięci.
- Następnie wczytaj dane z utworzonego pliku i za pomocą polecenia surf narysuj
- wykres powierzchniowy z wczytanych danych. Dodaj tytuł wykresu i opisy osi.
- clear all
- close all
- [x,y] = meshgrid(0:0.2:2*pi, 0:0.2:2*pi);
- save tablica.mat x y
- clear all
- load tablica.mat
- z = sin(x).* cos(y);
- surf(x,y,z)
- xlabel('X')
- ylabel('Y')
- zlabel('Z')
- title('Wykres sin(x)*cos(y)')
- legend('sin(x)*cos(y)')
- Zadanie 6.2
- Utwórz plik tekstowy o nazwie temperatury.txt, w którym zapisz w formacie
- stałoprzecinkowym przeliczenie wartości °C na °F (podpowiedź: °F=9/5*°C+32) w zakresie
- od 0 do 100 °C. W pierwszym wierszu pliku zapisz nagłówek.
- close all
- clear all
- cel=0:1:100;
- far=9/5 * cel + 32;
- plik = fopen('temperatury.txt', 'w');
- fprintf(plik, 'Celsjusz Fahrenheit\n');
- fprintf(plik, '%.2f %.2f\n', [cel;far]);
- fclose(plik);
- Zadanie 6.3
- Odczytaj dane z pliku temperatury.txt, utworzonego w poprzednim zadaniu.
- close all
- clear all
- plik = fopen('temperatury.txt', 'r');
- naglowek = fscanf(plik, '%s %s', 2);
- dane = fscanf(plik, '%f %f');
- dane = reshape(dane, 2, length(dane)/2);
- fclose(plik);
- disp(naglowek)
- disp(dane)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement