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ć:
tan0,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.

Podobne dokumenty