Matlabie
Transkrypt
Matlabie
Programowanie w inżynierii chemicznej Zadania do rozwiązania w programie MATLAB 1. Wygeneruj macierz dwuwierszową o wyrazach od 1 do 10 w pierwszym wierszu i o wyrazach od 2 do 20 (co 2) w wierszu drugim (macierze należy utworzyć przy użyciu dwukropka – temat 25 ze skryptu). 2. Utwórz macierz D budując ją ze zdefiniowanych macierzy A, B i C. A= 1 4 1 2 0 1 B= 3 1 4 1 C= 1 2 2 0 1 2 4 7 1 0 1 4 1 3 1 2 0 1 4 1 1 2 2 0 1 2 4 7 1 0 D= Znajdź wymiar macierzy D. UWAGA: Przy takim budowaniu macierzy należy pamiętać o zgodności wymiarów 3. Równanie kwadratowe posiada rozwiązania: x1, x2 b b 2 4ac 2a Używając powyższego równania oblicz rozwiązania dla: a = 1 , b = -100 , c = 1 Sprawdź wyniki z: >>roots([a,b,c]) 4. Mając tablice x = [1 5 2 8 9 0 1] i y = [5 2 2 6 0 0 2], wykonaj poniższe działania i wytłumacz: a. x > y b. x < y c. x == y d. x <= y e. y >= x f. x | y g. x & y h. x & (~y) i. (x > y) | (y < x) j. (x > y) & (y < x) 5. W macierzy g = [1 2 3 4; 5 6 7 8; 9 10 11 12] a. zamień kolumnę drugą tak, aby były w niej same 2. b. zamień wiersz drugi tak, aby były w nim same 1 (w pierwotnej macierzy g). (Temat 26 ze skryptu). 6. Utwórz macierz A 5x5 oraz wektor b 5x1 o liczbach losowych z przedziału 0-1. c. znajdź wyznacznik macierzy d. znajdź macierz odwrotną do macierzy A e. znajdź wektor rozwiązań x = A-1.b Skorzystaj z funkcji rand. 7. Utwórz macierz C 4x4 o liczbach losowych z przedziału 1-10. 8. Napisz funkcję, która dla danego wektora x narysuje wykres y = 2 sin(x). Zadbaj o czytelność wykresu (opis osi, legenda, tytuł wykresu). Użyj funkcji: plot, xlabel, ylabel, title, legend. W celu sprawdzenia zastosowania i użycia funkcji wywołaj komendę help (np. help xlabel) lub posłuż się pomocą. 9. Napisz funkcję, która jako argumenty przyjmuje jedną liczbę całkowitą z przedziału 1-3 oraz wektor x. W zależności od liczby funkcja ma tworzyć wykresy: 1. y = 3 log(x) +0.5; 2. y = exp(x-1)/cos(x); 3. y = exp(2sin(x)). Gdy wybór nie będzie pasował do powyższych liczb (1-3) wyświetl komunikat w linii poleceń za pomocą funkcji disp. Opis tworzenia funkcji znajduje się w skrypcie – tematy 52-63 10. Funkcja y = 1 - x + x.^2/2 - x.^3/6 jest przybliżeniem funkcji y=exp(-x) w przedziale (0,1). a) Napisz funkcję, która dla danego wektora x narysuje obie funkcje (na jednym wykresie). Przydatne funkcje (wystarczające do wykonania zadania): linspace, plot, hold on, xlabel, ylabel, title, legend. Deklaracja funkcji może wyglądać następująco: function y = zad10(x). b) Używając funkcji subplot narysuj obie funkcje na osobnych podwykresach. 11. Program heat2.m rozwiązuje równanie ciepła: function u=heat2(nx,hx,nt,ht,init,lowb,hib,K) % Rozwiązuje równanie paraboliczne % np. równanie dyfuzji/ciepła % nx, hx - liczba i długość odcinka x % nt, ht - liczba i rozmiar odcinka t % init - wektor (rozmiaru nx+1) początkowego rozkładu % lowb & hib - wartości graniczne dla najmniejszego i największego x % UWAGA: W tym programie wartości lowb i hib są wartościami skalarnymi % K - stała w równaniu parabolicznym alpha=K*ht/hx^2; A=zeros(nx-1,nx-1); u=zeros(nt+1,nx+1); u(:,1)=lowb*ones(nt+1,1); u(:,nx+1)=hib*ones(nt+1,1); u(1,:)=init; A(1,1)=1+2*alpha; A(1,2)=-alpha; for i=2:nx-2 A(i,i)=1+2*alpha; A(i,i-1)=-alpha; A(i,i+1)=-alpha; end A(nx-1,nx-2)=-alpha; A(nx-1,nx-1)=1+2*alpha; b(1,1)=init(2)+init(1)*alpha; for i=2:nx-2, b(i,1)=init(i+1); end b(nx-1,1)=init(nx)+init(nx+1)*alpha; [L,U]=lu(A); for j=2:nt+1 y=L\b; x=U\y; u(j,2:nx)=x'; b=x; b(1,1)=b(1,1)+lowb*alpha; b(nx-1,1)=b(nx-1,1)+hib*alpha; end surf(u) Przy jego użyciu rozwiąż poniższy problem: Dany jest pręt izolowany wszędzie poza jego końcami. Temperatura w lewym jego końcu wynosi 70 oC, natomiast w prawym 50 oC. W chwili t=0 temperatura w całym przewodniku (oprócz na jego końcach) wynosi 0 oC. Znajdź rozkład temperatury przewodnika w czasie. Współczynnik przewodzenia ciepła dla miedzi wynosi 400 W . m2 K 12. Użyjemy funkcji ode45 do rozwiązania zagadnienia Cauchy’ego. Zapoznaj się z przykładami w pomocy dotyczącej tej funkcji, następnie spróbuj rozwiązać poniższe zagadnienia dla t należącego do przedziału [0,1]: A. dy 2 y 1 dt Z warunkiem początkowym: y (0) 1 d 2x dx B. 2 7 12 x dt dt Z warunkami początkowymi: x(0) 1, dx dt 5 t 0 Powyższy układ to równanie drugiego rzędu, które sprowadza się do układu równań pierwszego rzędu przez wprowadzenie zmiennej dx y dt . Mamy wtedy: dx y dt dy 2 7 y 12 x dt Z warunkami początkowymi: x(0) 1 y (0) 5 Zmienną x i y trzeba w Matlabie oznaczyć jako y(1) i y(2). 13. Znajdź transformatę Laplace’a funkcji f (t ) 5e 2t Y ( s) oraz odwrotną transformatę funkcji 1 2 1 s ( s 4) ( s 5) Użyj zmiennych symbolicznych. Zmienną symboliczną tworzymy przez komendę syms nazwa_zmiennej. Przykłady transformacji znajdują się w pomocy MATLAB-a. 14. Rozwiąż równanie z zadania 3 za pomocą funkcji solve. 15. Krytyczny rozmiar reaktora atomowego jest określana przez równanie krytyczne. Załóżmy, że równanie to ma postać: tan0,1x 9,2e x Rozwiązaniem równania posiadającym znaczenie fizyczne jest najmniejszy pierwiastek spełniający nierówność 3 ≤ x ≤ 4. Określ to rozwiązanie. 16. W optyce, jak wiadomo, występuje zjawisko dyfrakcji. W przypadku prostej krawędzi intensywność światła zmienia się gdy oddalamy się od krawędzi zgodnie z równaniem: 2 2 I 0,5 I 0 C v 0,5 S v 0,5 Gdzie I0 oznacza natężenie światła, v jest proporcjonalne do odległości, C(v) oraz S(v) to całki Fresnela v w2 dw C v cos 2 0 v w2 dw S v sin 2 0 Wyznacz wartości całek, a następnie I/I0 w funkcji v. Narysuj wyniki.