LABORATORIUM Z APROKSYMACJI Funcje wpisane w MATLAB-ie
help ops – zestawienie znaków
help elmat – zestawienie stałych
help timefun – funkcje czasowe
help elfun – funkcje matematyczne
lookfor klucz - informacji na temat Operacje
Operacje macierzowe według algebry liniowej +, * mnożenie macierzy przez liczbę
Operacje tablicowe - .*, ./, .^, ./, .\
‘ transpozycja macierzy
Poprzedzenie operatora powoduje zamianę operacji macierzowej na tablicową
Przykład
x=[1 2 3] ; y=[4 5 6], y’ - kolumna, wykonać operację x*y’
A\B lewe dzielenie (A-1B) A/B – prawe dzielenie (A B-1)
A.\B lewe dzielenie tablicowe ([B(i,j)/ A(i,j)]) A./B prawe dzielenie tablicowe ([A(i,j)/ B(i,j)]) Przykład wykonać powyższe operacje na wektorach x=[2 -5 3] ; y=[4 -7 6]
Funcje definiowane przez użytkownika function c=pitagoras(a,b)
c2=a^2+b^2;
c=sqrt(c2);
end
Przykład funkcji bibliotecznej
X=linspace(a,b,n) – generowanie n+1 równooddalonych punktów w przedziale [a,b]
Zapisywanie i pobieranie danych z pliku save a zapisuje zmienną a na matlaba
load a wczytuje do zmiennej a z pliku matlaba Ogólna postać fukcji
Function[par-wyj]=nazwa_fun(parametry wejściowe) Instrukcja warunowa
if (isempty(zn)) disp (‘koniec’), return, end Instrukcja pętli while wyrażenie
ciąg poleceń end
Przykład
while x>0, i=i+1;
y(i)=rem(x,10); (mod(x,10)) x=fix(x/10);
end for end
postać (for-end)
for zmienna sterująca=wyrażenie1: wyrażenie2: wyrażenie3 ciąg poleceń
end
Interpretacja poszczególnych wyrażeń jest następująca:
wyrazenie1 – wartość początkowa
wyrazenie2 – krok (jeśli nie ma tego wyrażenia to krok przyjmujemy równy 1)
wyrazenie3 – wartość końcowa
Przykład
lw=6; zn=’0’; for i=1:lw ; for j=1:i ; a(i,j)=zn; end; end M-pliki - przykład
function examp1() x=0:0001:2*pi y=sin(x)
y1=cos(x) y2=1./(1+x.*x) plot(x,y,x,y1,x,y2) end
Zadanie: wykorzystując komendę help zapoznać się z funkcją subplot Funkcja gtext(‘tekst’) – umieszcza tekst w dowolnym miejscu rysunku za pomocą myszki.
Funkcje uzupelniające wykresy (po plot)
axis(xmin,xmax, ymin,ymax) – ustalenie skali osi xlabel(‘opis osi x’)
ylabel(‘opis osi y’)
title(‘tytuł’) – ustalenie tytułu
text(x,y,’tekst’) – umieszczenie tekstu w punkcie (x,y) Przykłady
ylabel(‘PRĘDKOŚĆ’) xlabel(‘CZAS’)
ezplot(‚t-cos(t)’,’sin(t)’,[0,4*pi])
hold on – daje możliwość rysowania na rysunku poprzednim Zadanie
Opisać wykres funkcji z poprzedniego przykładu.
Grafika help plot, help graph3d
Przykłady w folderze: \matlab\toolbox\matlab\demos help demos
plot(y)
plot(x,y) – gdzie (xi ,yi) punkty wykresu
plot(x,y,’red’) – rysowanie linii określonego koloru plot(x1,y1,’typ_linii_1’, x2,y2,’typ_linii_2’,..)
Rysowanie funkcji dwóch zmiennych za pomocą wyrażeń matematycznych
f = ‘wyrażenie’
ezplot(f,[xmin,xmax]) – rysowanie linii y=f(x)
ezplot(f,xmin,xmax,ymin,ymax) – rysowanie linii y=f(x,y)
ezplot(x,y,[tmin,tmax]) – rysowanie krzywej x=x(t), y=y(t), t[tmin,tmax]
Zadanie
1. Napisać program w MATLABIE wykonujący wykres funkcji
1 x2
y x
w przedziale [a,b].
2. Wykonać program w MATLABIE wykonujący wykresy funkcji
) 1 ln(
, sin 1 ,
2
2
y x y x
x
y x na jednym układzie współrzędnych w
przedziale [a,b].
3. Wykonać program w MATLABIE wykonujący wykresy funkcji
2 , sin 1 , cos 2 cos 1 , sin 2 , cos 1 , cos 2 , sin 1
sin
2 2
2
2 x
y x x y x
x y x
x y x
na jednym
układzie współrzędnych w przedziale [a,b].
4. Poprowadzić wielomian interpolacyjny Lagrange’a przechodzący przez punkty dane tabelką:
x 0 1 2 2.5 2.75 3.0 3.5 4.0
y 0 1 2 2 1.5 -1 2 -2
Wykonać wykres tego wielomianu z zaznaczeniem punktów interpolacji.
5. Poprowadzić funkcję interpolującą sklejaną 3-go stopnia przechodzącą przez punkty z zadania poprzedniego oraz wykonać jej wykres wraz z wielomianem interpolacyjnym Lagrange’a na jednym układzie współrzędnych.
6. Wykonać program w Matlabie wykonujący wykresy krzywych:
a) x=cost, y=1-sint, t[0,2],
b) x=2cost, y=0.5sint, t[0,2],
w jednym układzie współrzędnych.
7. . Wykonać program w Matlabie wykonujący wykresy krzywych:
. 0
, 0 1 ,
, 3 1
3
3 2
3
a t
t y at t x at
8. . Wykonać program w Matlabie wykonujący wykresy krzywych:
1 . . 2
1 6
, 1 , sin
2 ,
sin
2 2 2
r y r tg
x
9. . Wykonać program w Matlabie wykonujący wykresy krzywych:
. 2 0 , ), cos (sin
3 ),
sin (cos
3
t t t y t t t t
x
10. Wykonać wykresy krzywych danych w postaci biegunowej
a) ra cos2,a0, 41 14, i 34 94.
b) rasin a, 0, 0 31, 32 , 43 53.
c) ra,a0, 0 2.
Wskazówka do zadań 4, 5: można wykorzystać funkcje polyfit, spline, oraz polyval.
Wykorzystanie funkcji polyfit p=polyfit(x,y,n), gdzie
x, y – tablice określające współrzędne węzłów n – stopień wielomianu aproksymacyjnego p – wektor współczynników wielomianu yp=polyvalt(p,xx), gdzie
p - wektor współczynników wielomianu,
yp – tablica wielomianu p w punktach danych tablicą xx.
Wykorzystanie funkcji function - handle
Przykład function wykres3()
fplot(@func,[0,1]) end
function u=func(t) u=t^2
end
Przykład
function krzywa(a,b) ezplot(@ax, (@ay,[a,b]) end
function u=ax(t) u=2*cos(t)
end
function u=ay(t) u=sin(t)
end
Zadanie Obliczyć całki:
0
sin2 xdx, 1 x dx
9
1 2
1 , x x dx
0
2
sin2
1 .
Zadanie
Wykonać program w MATLAB-ie wyznaczający wielomian aproksymacyjny Lagrange’a przechodzący przez punkty (xi , xi + ) I=0,1,...,n. , - dane. Punkty xi wygenerować w określonym przedziale.