Advertisement
Guest User

Untitled

a guest
Jan 28th, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.88 KB | None | 0 0
  1. Kolokwium Matlab 2013 GR C
  2. Zadanie
  3. Napisz skrypt zadanieC.m, który będzie wykonywał kolejno następujące polecenia:
  4. 1. wczytaj macierz C z pliku macierzC.mat (plik pobierz z platformy estudia). (10%)
  5.  
  6. load macierzC.mat
  7.  
  8. 2. wyświetl :
  9. - komunikat „Macierz C przed zmianą”
  10. disp("Macierz C przed zmiana:")
  11.  
  12. - macierz C (5%)
  13. disp(C)
  14.  
  15. 3. zamień wskazane przez użytkownika elementy macierzy C: jeżeli element macierzy C jest
  16. parzysty pomnóż go przez 2, w przeciwnym wypadku podziel na 2. Do wskazania elementów
  17. poproś użytkownika o podanie numeru kolumny (max 5). (20%)
  18.  
  19. %zadanie 3
  20. N=input('podaj numer kolumny(max 5):');
  21. B=C(:,N);
  22. B(rem(B,2)==0)=B(rem(B,2)==0)*2;
  23. B(rem(B,2)~=0)=B(rem(B,2)~=0)/2;
  24. C(:,N)=B;
  25.  
  26. 4. wyświetl
  27. - komunikat „Macierz C po zmianie”
  28. - macierz C (5%)
  29. %zadanie 4
  30.  
  31. disp("Macierz C po zmianie:")
  32. disp(C)
  33.  
  34. 5. wygeneruj wektor t, o W liczbach rozmieszonych pomiędzy x1 i x2. (30%)
  35. x1- to pierwszy element macierzy C podzielony przez 100,
  36. x2 - to ostatni element macierzy C podzielony przez 100,
  37. wartość W- podaje użytkownik (max 10).
  38.  
  39. %zadanie 5
  40. W=input('Podaj na ile odcinkow podzielic wektor t(max 10): ');
  41. x1=C(1,1)/100;
  42. x2=C(5,5)/100;
  43. t=linspace(x1,x2,W);
  44.  
  45. 6. Narysuj dwa wykresy w jednym oknie. (30%)
  46. - w oknie pierwszym narysuj wykres krzywej funkcji 𝑦(𝑡) = ln(2 + t + t2)
  47. - w drugim oknie narysuj wykres powierzchniowy funkcji
  48. 𝑧 = 𝑓(𝑥, 𝑦) = (𝑥 − 𝑦)(𝑥 + 𝑦) + 𝑒√𝑥2+𝑦2
  49. 𝑑𝑙𝑎 𝑥 = 𝑡 , 𝑦 = t
  50.  
  51. figure
  52. subplot(2,1,1)
  53. y=log(2+t+t.^2);
  54. plot(t,y)
  55. subplot(2,1,2)
  56. [X,Y]=meshgrid(t,t);
  57. Z=(X-Y).*(X+Y)+exp(sqrt(X.^2+Y.^2));
  58. surf(X,Y,Z)
  59.  
  60.  
  61. Kolokwium Matlab 2015 GR F
  62. Prześlij rozwiązanie zadanieF.m oraz wygenerowany plik wektor_t.txt w wyznaczonym czasie.
  63. Zadanie
  64. Napisz skrypt zadanieF.m, który będzie wykonywał kolejno następujące polecenia:
  65. W pierwszej linii kodu (w komentarzu) wpisz swoje imię i nazwisko oraz wersja F.
  66. 1. (10%) Wczytaj wektor F z pliku wektorF.mat (plik pobierz z platformy e-studia).
  67. Wyświetl :
  68. - komunikat „Wektor F przed zmianą”
  69. - Wektor F
  70.  
  71. %zadanie 1
  72. load wektorF.mat
  73. disp("wektor F przed zmiana:")
  74. disp(F)
  75.  
  76. 2. (20%) Zamień elementy wektora F: jeżeli element wektora F jest wielokrotnością 3
  77. pomnóż go przez liczbę, którą wskaże użytkownik.
  78. Wyświetl
  79. - komunikat „Wektor F po zmianie”
  80. - Wektor F
  81.  
  82. %zadanie 2
  83. N=input('Przez jaka liczbe mam pomnozyc elementy wektora F(wielokrotnosci 3):');
  84. F(rem(F,3)==0)=F(rem(F,3)==0)*N;
  85. disp("wektor F po zmianie:")
  86. disp(F)
  87.  
  88. 3. (20%) Wygeneruj z wektora F wektor t, o W liczbach rozmieszonych pomiędzy x1 i x2.
  89. x1- to liczba równa średniej wartości wektora F podzielonej przez 100,
  90. x2 - to liczba równa średniej wartości wektora F pomnożonej przez 100,
  91. wartość W- podaje użytkownik (max 100).
  92.  
  93. %zadanie 3
  94. W=input('W ilu punktach podzielić przedział<x1;x2> (max 10):');
  95. t=linspace(mean(F)/100,mean(F)*100,W);
  96.  
  97. 6. (20%) Zapisz wektor t do pliku wektor_t.txt. Dobierz odpowiednio funkcje, tak aby
  98. wygenerowany plik wyglądał jak w przykładzie poniżej.
  99.  
  100. %zadanie 6
  101. plik=fopen("wektor_t.txt", "w");
  102. fwrite(plik,"Wektor t:\n")
  103. fprintf(plik,"%f\n",t)
  104. fclose(plik)
  105.  
  106. 7. (30%) Narysuj dwa wykresy w jednym oknie.
  107. - w oknie pierwszym narysuj wykres krzywej funkcji y(t)=sin(t)2
  108. Wstaw tytuł wykresu „Wykres 2D”.
  109. - w drugim oknie narysuj wykres 3D powierzchniowy funkcji z=f(x,y)=esin(x)esin(y), dla x=t, y=t.
  110. Wstaw tytuł wykresu „Wykres 3D”.
  111.  
  112. %zadanie 7
  113. figure
  114. subplot(2,1,1)
  115. plot(t,sin(t).^2)
  116. title("Wykres 2D")
  117. subplot(2,1,2)
  118. [x,y]= meshgrid(t,t);
  119. z=exp(sin(x)).*exp(sin(y));
  120. surf(x,y,z)
  121. title("Wykres 3D")
  122.  
  123.  
  124.  
  125. Ćwiczenie 4.1
  126. 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.
  127. Poniżej podano przykład polecenia dla pierwszego wykresu:
  128. close all,
  129. x=0:0.1:3*pi;
  130. plot(x,cos(x).*exp(sin(x)),'*:m')
  131.  
  132. x=0:0.1:3*pi;
  133. figure, subplot(2,3,1)
  134. plot(x,cos(x).*exp(sin(x)),'-m');
  135. subplot(2,3,2)
  136. plot(x,sin(x).*exp(sin(x)),'*:b');
  137. subplot(2,3,3)
  138. plot(x,cosh(x).*exp(cos(x)),'--k');
  139. subplot(2,3,4)
  140. plot(x,log(1+x).*(log(3+sin(x))),'*:g');
  141. subplot(2,3,5)
  142. plot(x,log(1+x).*sinh(3+sqrt(x)),'-.c');
  143.  
  144.  
  145. Ćwiczenie 4.2
  146. Utworzyć wykres funkcji y(x)=sin2x dla −π ≤ x ≤ π. Przeskalować wykres, tak aby: 0 ≤x ≤ π/2 i 0 ≤ y ≤ 1.
  147. x=-pi:0.1:pi;
  148. y=sin(2*x);
  149. subplot(2,1,1);
  150. plot(x,y)
  151. subplot(2,1,2);
  152. plot(x,y)
  153. axis([0,pi/2,0,1])
  154.  
  155. Ćwiczenie 4.3
  156. Utworzyć wykres funkcji y(t) = e t (1+ cos3t) dla 0 ≤ t ≤ 2π . Przeskalować wykres, tak aby: 0 ≤ t ≤ 2π i −100 ≤ y ≤ 900.
  157. close all
  158. clear all
  159. t=0:pi/10:2*pi;
  160. y=exp(t).*(1+cos(3.*t))
  161. subplot(2,1,1)
  162. plot(t,y,'p:r')
  163. subplot(2,1,2)
  164. plot(t,y,'p:r')
  165. axis([0,2*pi,-100,900])
  166.  
  167. 4.1.
  168. 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
  169. klawiatury, przebiegi funkcji:
  170. - sin(x) – czerwoną linią ciągłą,
  171. - sin2(x) – niebieską linią kreskowaną,
  172. - sin3(x) – czarną linią kropkowaną
  173. 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.
  174. close all
  175. Wybor=input('0: jeden wykres, 1: trzy wykresy');
  176. n=input('Podaj liczbe punktow');
  177. x=linspace(0,2*pi,n);
  178. if(Wybor == 0)
  179. plot(x,sin(x),'r-',x,sin(x).^2,'b--',x,sin(x).^3,'k:')
  180. elseif(Wybor == 1)
  181. subplot(3,1,1)
  182. plot(x,sin(x),'r-')
  183. subplot(3,1,2)
  184. plot(x,sin(x).^2,'b--')
  185. subplot(3,1,3)
  186. plot(x,sin(x).^3,'k:')
  187. end
  188.  
  189. 4.2.
  190. 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ę.
  191. close all
  192. t=linspace(0,20,100);
  193.  
  194. f1=2.*exp(3.*sin(t));
  195. f2=1.*exp(-3.*sin(t));
  196.  
  197. plot(t,f1,'k-',t,f2,'b:')
  198.  
  199. title('Wykres funkcji f(t)=A*e^(B*sin(t))');
  200. legend('dla A=2 i B=3','dla A=1 i B=-3');
  201. ylabel('f(t)');
  202. xlabel('t');
  203.  
  204. grid on
  205.  
  206.  
  207. 4.3.
  208. Sprawdź za pomocą polecenia help jak działają funkcje axis.
  209. 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:
  210. - w domyślnym układzie współrzędnych, (axis auto lub axis normal)
  211. - w układzie współrzędnych o równych jednostkach na obu osiach, (axis equal)
  212. - w układzie współrzędnych o rozmiarach takich jak rozmiary rysunku, (axis image),
  213. - bez układu współrzędnych, (axis off).
  214.  
  215. close all
  216. t=0:0.1:10;
  217. y=cos(t).*exp(sin(t));
  218. subplot(2,2,1)
  219. plot(t,y)
  220. axis normal
  221. subplot(2,2,2)
  222. plot(t,y)
  223. axis equal
  224. subplot(2,2,3)
  225. plot(t,y)
  226. axis image
  227. subplot(2,2,4)
  228. plot(t,y)
  229. axis off
  230.  
  231. 4.4.
  232. 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.
  233. close all
  234. pkt=input('Podaj ilosc punktow');
  235. x=logspace(-1,3,pkt);
  236.  
  237. semilogx(x,exp(sin(x)),'r--')
  238. title('Funkcja e(sin(x))')
  239. xlabel('x')
  240. ylabel('y')
  241.  
  242.  
  243. 4.5.
  244. 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.
  245. 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:
  246. function stat_graf(x,y)
  247. Podpowiedź
  248. Do zrobienia ćwiczenia przydadzą się funkcje: mean(), size(), ones(), no i oczywiście:
  249. figure, subplot(), plot(), hold.
  250. close all
  251.  
  252. function [] = stat_graf(x,y)
  253. subplot(2, 1, 1)
  254. plot(x, y, 'r-')
  255. subplot(2, 1, 2)
  256. hold on
  257. plot(x, y, 'ob')
  258. plot(x, mean(y) * ones(size(x)), 'g-')
  259. end
  260.  
  261.  
  262. Ćwiczenie 5.1.
  263. 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ą.
  264.  
  265. subplot(2,2,1)
  266. [x,y] = meshgrid(-5:.5:5, -5:.5:5);
  267. z = (x-y).*(x+y)+exp(sqrt(x.^2+y.^2));
  268. mesh(x,y,z)
  269. subplot(2,2,2)
  270. [x,y] = meshgrid(-3:.2:3, -3:.2:3);
  271. z = exp(-(x-1).^2-y.^2) + exp(-(x+1).^2-y.^2);
  272. meshc(x,y,z)
  273. subplot(2,2,3)
  274. [x,y] = meshgrid(1:.2:10, 1:.2:10);
  275. z = (x-5).^2-(y-5).^2;
  276. surf(x,y,z)
  277. subplot(2,2,4)
  278. [x,y] = meshgrid(-pi:.2:pi, -pi:.2:pi);
  279. z = exp(cos(x)).*exp(cos(y));
  280. surfc(x,y,z)
  281.  
  282. 5.1.
  283. 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>
  284. clear all;
  285. close all;
  286. t = linspace(0,2*pi,300);
  287. plot3(t.*cos(2*pi*t),t.^2.*sin(2*pi*t),t);
  288. grid on;
  289. axis square;
  290.  
  291. 5.2.
  292. Narysować powierzchnię funkcji z = x3/3+5-cos2(y) dla |x| < 2 i |y| < π/2 korzystając z funkcji meshgrid oraz surf
  293. clear all;
  294. close all;
  295. [x,y] = meshgrid(-2:.2:2, -pi/2:.2:pi/2);
  296. z = (x.^3)/3+5-cos(y).^2;
  297. surf(x,y,z)
  298.  
  299.  
  300. 5.3.
  301. 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.
  302. clear all;
  303. close all;
  304. [x,y] = meshgrid(-pi:.2:pi, -2:.2:2);
  305. z = x.^2/4+1-sin(x).*cos(y);
  306. subplot(1,2,1);
  307. meshc(x,y,z);
  308. title('Wykres siatkowo-konturowy');
  309. subplot(1,2,2);
  310. surfc(x,y,z);
  311. title('Wykres powierzchniowo-konturowy');
  312.  
  313. 5.4.
  314. Narysuj wykres funkcji f(x,y) = xysin(x)cos(y) dla | x | < π i | y | < π korzystając z funkcji surfc.
  315. clear all;
  316. close all;
  317. [x,y] = meshgrid(-pi:.2:pi, -pi:.2:pi)
  318. z = x.*y.*sin(x).*cos(y);
  319. surfc(x,y,z);
  320.  
  321.  
  322. 5.5.
  323. Sprawdz za pomocą polecenia help contour jak działa funkcja contour, a następnie za pomocą tej funkcji sporządź wykres konturowy powierzchni
  324. x2+ sin(xy)+ y2-z2=0 dla |x|<pi/2 i |y|<pi/2
  325. clear all;
  326. close all;
  327. [x,y] = meshgrid(-pi/2:.2:pi/2, -pi/2:.2:pi/2);
  328. z = sqrt(x.^2+sin(x.*y)+y.^2);
  329. contour(z);
  330.  
  331.  
  332. Zadanie 6.1
  333. 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.
  334. Następnie wczytaj dane z utworzonego pliku i za pomocą polecenia surf narysuj
  335. wykres powierzchniowy z wczytanych danych. Dodaj tytuł wykresu i opisy osi.
  336. clear all
  337. close all
  338.  
  339. [x,y] = meshgrid(0:0.2:2*pi, 0:0.2:2*pi);
  340. save tablica.mat x y
  341.  
  342. clear all
  343.  
  344. load tablica.mat
  345. z = sin(x).* cos(y);
  346. surf(x,y,z)
  347.  
  348. xlabel('X')
  349. ylabel('Y')
  350. zlabel('Z')
  351.  
  352. title('Wykres sin(x)*cos(y)')
  353. legend('sin(x)*cos(y)')
  354.  
  355.  
  356.  
  357. Zadanie 6.2
  358. Utwórz plik tekstowy o nazwie temperatury.txt, w którym zapisz w formacie
  359. stałoprzecinkowym przeliczenie wartości °C na °F (podpowiedź: °F=9/5*°C+32) w zakresie
  360. od 0 do 100 °C. W pierwszym wierszu pliku zapisz nagłówek.
  361. close all
  362. clear all
  363.  
  364. cel=0:1:100;
  365. far=9/5 * cel + 32;
  366.  
  367. plik = fopen('temperatury.txt', 'w');
  368. fprintf(plik, 'Celsjusz Fahrenheit\n');
  369. fprintf(plik, '%.2f %.2f\n', [cel;far]);
  370. fclose(plik);
  371.  
  372. Zadanie 6.3
  373. Odczytaj dane z pliku temperatury.txt, utworzonego w poprzednim zadaniu.
  374. close all
  375. clear all
  376.  
  377. plik = fopen('temperatury.txt', 'r');
  378. naglowek = fscanf(plik, '%s %s', 2);
  379. dane = fscanf(plik, '%f %f');
  380. dane = reshape(dane, 2, length(dane)/2);
  381. fclose(plik);
  382.  
  383. disp(naglowek)
  384. disp(dane)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement