RYS HISTORYCZNY
description
Transcript of RYS HISTORYCZNY
RYS HISTORYCZNYW latach 70tych na zlecenie National Science Fundation powstały pierwsze biblioteki fortranowskie do obliczeń numerycznych.
Jeden z autorow tego oprogramowania Cleve Moler prowadził zajęcia z algebry liniowej na Uniwersytecie Nowy Meksyk. Napisał on uniwersalny program na korzystanie z bibliotek bez potrzeby programowania w FORTRANIE
Czytanie i zapisywanie
• save <nazwa pliku> x,
• save <nazwa pliku> x -ascii
• load<nazwa pliku>
Operacje na macierzach
• Wprowadzanie danych: formy zapisu 1:.2:20; 1:20; -2.2:-1.3:-12.5
• [1 3 12 23 2 3]; [1 3; 12 23; 2 3];• Polecenie input np. x=input(‘podaj x’); y=input(‘pod’,’s’);• Rola znakow: ; , : spacja, enter• Tworzenie macierzy z macierzy:• x=[1 3; 12 23; 2 3];• y=[x x-2 2*x; x+2 x/2 x.^0.5]; elementy macierzy, y(3,5), zamiana y(3,5)=-2;y(3, 3:6)=1; y(3:6,3)=1; z=y(2,2:4); zz(3,3,:)=y(2,2:4);zz=zz’;
Standardowe funkcje i polecenia
• Trygonometryczne sin cos tan cot, asin atan• Inne: log; log10; sqrt; exp; mean; diff; fft;
spectrum
• Logiczne a=x==2; a=x>=2, a=x<=2 (skrypt str.31)
FUNKCJE
• function y=rys(x);• y=x.^2-5;• plot(x,y)• grid
• x=-10:10; wprowadzamy - yy=‘x.^2-3’;• y=inline(‘x.^2-3’); z=inline(yy)• y(x); z(x)• fzero(yy,-2)
polecenia
• Z=find(x==3)%znajduje indeks x rownego 3 - Cegiełła str49• size(x) % wypisuje ilość wierszy I kolumn - help MATLAB• find(x) %znajduje indeksy dla ktorych x rózne od zera, można
napisać:• find(x==0) % to polecenie znajduje dokładnie miejsca zerowe • A(:,4)=[] %usuwa z macierzy A 4-ta kolumne – Cegiełła str.36
tic ... toc , eval, eps, clear, help
Grafika
• Polecenia: plot(x,y,’k*y’); grid; • xlabel(‘string’), ylabel• text(x,y, ‘string’)• axis([xmin xmax ymin ymax])• title(‘string’)• Polecenia: stem, bar, stairs,polar,• Loglog, semilogx, axis square,• subplot
Funkcje I grafika wielu zmiennych
• Mesh; meshgrid; surface, surf, contour
• x=1:10;
• y=-2:.1:2;
• [xx,yy]=meshgrid(x,y)
• z=x.^2+y.^2;
• Bez pętli
• z=xx.^2+yy.^2;
Liczby zespolone
• 2*j; 2*I; sqrt(-4); abs real imag angle
• polar
Rachunek symboliczny
• Warunek działania symbolicznego - musi być: Toolboxes Symbolic Math (DEMO)
• syms a b c x
• x = solve(a*x^2 + b*x + c);
• x=solve('a*x^2+b*x+c=0')
• odpowiedź:
• x1=[ 1/2/a*(-b+(b^2-4*a*c)^(1/2))]
• x2=[ 1/2/a*(-b-(b^2-4*a*c)^(1/2))]
Inne formy
1. Rachunek symboliczny polecenie syms x y z; u=3*x^2-2x+3; solve(u)
2. y=inline('3*x.^2-2*x+3');
deklarujemy x=-10:10;
y(x) ma postać postać numeryczną plot(y(x))
3. ezplot('sin'); ezplot('x^3-2*x^2+3*x-5');
ezplot('x^3-2*x^2+3*x-5', [-20 30])
POLECENIE eval
X=-3:3;
y=input('y= ')
wprowadzamy
Y='x.^2-3'
Wyliczamy postać numeryczną y
z=eval(y)
Y jest dalej postacią tekstową i można ją użyc np. jako title(y)
Polecenie HOLD
X=-3:3;
y=x.^2-3;
plot(x,y)
Hold on, hold off
plot(y)
Simulink z generatorami przełącznikiem i dwoma
oscyloskopami:
generatory – Sources,
Oscyloskopy : Sinks
Przełącznik – Signal routing
Rózniczkowanie: Continous
Pliki dzwiękowe
• Wavread, wavwrite, [Y,FS,NBITS,OPTS]=WAVREAD(...)
• x=wavread(‘proba’);
• x1=x(3000:length(x(:,1)),:);
• X0=x(1:length(x1(:,1)),:);
• xc=x0/2+x1/2;
• sound(xc,44100); echo
Przetwarzanie dźwięku
Widmo fft
Spectrum
Segmentacja reshape
specgram
Obrazy (pliki „jpg”)
• Imread, imwrite uint8 double
• X=imread(‘kosciol.jpg’)
• function y=rys(x)
• y=double(x);
• y1=y/256;
• y2=y1.*sin(y1*256);
• image(abs(y2))
Film
%sprężyna
clg
m=moviein(20);
v=2*pi:0.01:6*pi;
for i=1:20
plot(v*i/20,sin(v));
axis([0,12*pi,-1,1])
m(:,i)=getframe;
end;
clg
movie(m,-4)
Symulacja generatora dźwiękowego
• Chirp
sinus kluczowany
• Szum
• fp=44100; fs=1000; df=1000; t=0:1/fp:1;
• X=sin(2*pi*(fs+df*t/max(t)).*t);
Przetwarzanie wyników z oscyloskopu
Dane w ascii
Interface graficzny GUI
Wywołuje się poleceniem guide
Wkopiować np. przycisk pushButton
Uruchamiamy inspektora w oknie View
Wpisujemy w wierszu string np. start
Zapisujemy nazwę i uruchamiamy (run)
Wpisujemy na końcu program np. x=1:10
Figure
stem(x)
Możliwe zagadnienia i testy