Risanje grafov v Matlab-u

%*%% Uporaba programskega okolja MATLAB za izracun vrednosti funkcij ter
% risanje grafov funkcij. Ukaze ali del ukazov lahko skopirate v ukazno vrstico Matlaba
% ali Octave in zaženete. Ali pa shranite v datoteko in spreminjate ... %Definirajmo funkcijo f(x) = a*e^(b*x)cos(c*x), %kjer so vrednosti parametrov a = 2, b = –0,5 ter c = 1,5. a = 2 b = -0.5 c = 1.5; % Če zaključimo enačbo s podpičjem, se izračun ne izpiše v ukazni vrstici, % sicer se izpiše. Zato se ob zagonu skripte izpišeta vrednosti za a in b ne pa tudi za c. %Določimo seznam vrednosti funkcije, ko se spremenljivka x spreminja %od vrednosti –5 do 5 s korakom po 0,5. x=-5:0.5:5; f=a*exp(b.*x).*cos(c.*x) % izračun funkcije v točkah niza x % Izpis tabele [x;f]' % združim vektorja (niza) x in f in ju transponiram. % Ker izraz ni zaključen s podpičjem, se izpišejo vrednosti % Preiskusi sam izrise [x,f] ali x' ali [x',f'] ali [x';f']

% Izris točk na grafu
plot(x,f,'*')  % izris točk z zvezdicami
risanje grafov Matlab 01


figure; % nova slika plot(x,f,'r*-') % izris točk z zvezdicami + linija + rdeča barva
risanje grafov Matlab 02

figure;         % nova slika
plot(x,f,'g--','Linewidth',2)  % izris linije črtkano + zelena barva + debelina črte 2
risanje grafov Matlab 03
% V Google vpiši Matlab plot in razišči druge oblike izrisov - npr. na % uradni strani Mathworks

% ker je točk premalo za bolj gladek (zvezen) izris, zmanjšamo korak med točkami
x=-5:0.1:5; % sedaj je korak 0.1
f=a*exp(b.*x).*cos(c.*x)  % ponoven izračun funkcije za nove točke
figure;         % nova slika
plot(x,f,'k--','Linewidth',2)  % izris točk z zvezdicami + linija + rdeča barva

% Opis osi
xlabel('X / m')
ylabel(' f  / T');
risanje grafov Matlab 04
 

Nekaj manipulacij z nizi

f(1)  % izpiše se prva vrednost v nizu
ans =

    8.4458
f(2:10) % izpiše se del niza: od 2 do 10 točke
ans =

  Columns 1 through 7

   11.1924   13.4119   15.1018   16.2724   16.9452   17.1517   16.9314

  Columns 8 through 9

16.3300 15.3982

length(f) % izpiše se dolžina niza
ans =

101
max(f) % največja vrednost v nizu
ans =

   17.1517
min(f) % najmanjša vrednost v nizu
ans =

   -6.0184
mean(f) % povprečna vrednost
ans =

    1.5725
find(f==max(f)) % poišče indeks pri katerem je vrednost funkcije največja
ans =
 
     7
x(find(f==max(f))) % poiščemo pri katerem x-u je ta maksimum
ans =

   -4.4000

 

Numerična Integracija

z numerično integracijo izračunamo površino pod krivuljo. Površina, ki je pod absciso (pod f =0) je negativna.

% izris površine pod krivuljo s funkcijo area
figure
area(x,f)
risanje grafov Matlab 05
% prikaz integracije površin kot seštevanje površin prikazanih s funkcijo
% bar
figure
bar(x,f,'r')
risanje grafov Matlab 06
g=cumsum(f)  % sprotno seštevanje f(x)*dx, kjer je dx=0.1
G=sum(f)

figure
plot(x,f,x,g)  % izrišemo funkcijo in njen integral
risanje grafov Matlab 07
% Malo polepšamo in dodamo legendo in mrežo
figure
plot(x,f,x,g,'*-','Linewidth',2)  % izrišemo funkcijo in njen integral
grid
legend('funkcija f','integral funkcije f')
risanje grafov Matlab 08
% Izrišimo integral tako, da bo os za funkcijo integrala na desni
figure
plotyy(x,f,x,g)
risanje grafov Matlab 09
% Poiščimo max vrednost integrala
find(g==max(g))
G =

  158.8265


ans =

    19