22
Leksion nr 8 Funksionet dhe funksionet file

Leksion nr 8 - jurgencoku.files.wordpress.com · Matlab mer variablat që i kemi dhënë, llogarit rezultatin e kërkuar, dhe me pas na i kalon rezultatet përsëri ne.Një funksion

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Leksion nr 8

Funksionet dhe funksionet file

Funksionet dhe funksionet file Kur përdorim ne Matlab funksione të tilla si: “inv”, “abs”, “angle”…

Matlab mer variablat që i kemi dhënë, llogarit rezultatin e kërkuar, dhe me pas na i kalon rezultatet përsëri ne.Një funksion i thjeshtë matematikor jepet në formën . Shpeshherë , na nevojitet të llogarisim vlera të funkioneve të cilat nuk janë të ndërtuara në Matlab, kështu që duhet të ndërtojmë funksione të reja dhe më pas ti përdorim si funksione të përcaktuara në Matlab. Një funksion i ndërtuar nga përdoruesi është një program i ndërtuar në Matlab, i ruajtur si një funksion file dhe i cili më pas mund të përdoret . Një funksion file ka një hyrje dhe një dalje. Si hyrja dhe dalja mund të kenë një variabël ose disa variabla të cilat mund të jenë skalar, vekor ose matrica të madhësive të ndryshme. Skema e një funksioni si një file jepet.

( )y f x

Funksion File Hyrja Dalja

Krijimi i një funksioni file Funksionet file krijohen dhe ekzekutohen njësoj si një m-file. Në menunë File, selektojmë New dhe më pas m-file. Na hapet dritarja si mëposhtë:

Struktura e një funksioni file

Përcaktimi i funksionit

Rreshtat H1 dhe teksti ndihmës

Linjat(rreshtat) e përcaktimit të funksioneve

Përcaktimi i file si një funksion file. Përcaktimi i emrit të funksionit. Përcaktimi i numrit të variablave të hyrjes dhe të daljes së një

funksioni.

funksioni[variablat e daljes]= emri i funksionit(variablat e hyrjes)

Fjala funksion (function) duhet të jetë fjala e parë dhe duhet të fillojë me shkronjë të vogël

Lista e variablave të daljes shkruhet brenda kllapave

emri i funksionit

Lista e variablave të hyrjes shkruhet brenda kllapave rrethore

Fjala “function” shfaqet në ekran me ngyrë blu. Rregullat për emërtimin e një funksioni janë të njejtat me rregullat për emërtimin e variablave.

Variablat e hyrjes dhe daljes së një funksioni

Përcaktimi i linjës së funksionit Komentet function[mpay,tpay]=loan(amount,rate,years) Kemi tre variabla në hyrje dhe dy variabla në dalje. function[A]=RectArea(a,b) Kemi dy variabla në hyrje dhe një variabla në dalje. function A =RectArea(a,b) Njësoj si më sipër por funksioni vendoset pa kllapa. function[V,S]=SphereVolArea(r) Kemi një variabël në hyrje dhe dy variabla në dalje. function trajectory(v,h,g) Kemi vetëm tre variabla në hyrje dhe nuk kemi variabla në dalje.

Shembull

Supozojmë që ne duam të mbledhim dy vektor ose matrica dhe të marrim vetem përfundimin e shumës. Për të realizuar kete ne hyrje na duhen dy vektore/matrica, dhe si dalje matlab na tregon Shumen. Zgjedhim emrin e funksionit si “fun1”. Hapim Editor Window dhe shkruajme:

Më pas në Command prompt shkruajmë:

function z=fun1(x,y)

% ky eshte thjesh nje shembull si ti perdorim funksionet.

% ky funksion gjen Shumen e dy matricave (x,y)

% dhe rezultatin e ruan te matrica "z"

z=x+y;

» a=[1 1;2 2];

» b=[3 3;4 4];

» outcome=fun1(a,b)

outcome =

4 4

6 6

Rreshtat H1 dhe linjat(rreshtat) e teksit ndihmës(help)

Linjat (rreshtat) H1 dhe linjat(rreshtat) e tekstit ndihmës janë rreshtat me komente(rreshtat fillojnë me shenjën %) pas funksionit të përcaktuar. Këto rreshta japin informacione rreth funksionit. Rreshti H1 përmban emrin e funksionit dhe një përshkrim të shkurtër rreth funksionit. Rreshtat me tekstin ndihmës janë komente dhe udhëzimet për variablat në hyrje dhe në dalje.

Nqs duam te shikojme Help-in per kete funksion ne shkruajme:

>> help fun1

ky eshte thjesh nje shembull si ti perdorim

funksionet.

ky funksion gjen Shumen e dy matricave (x,y)

dhe rezultatin e ruan te matrica "z"

Përmbajtja e funksioneve Përmbajtja e funksionit janë kodet të cilat ekzekutohen në Matlab. Kjo përfshin llogaritjet , funksione të përcaktuara, funksione të ndërtuara llogjikën e rrjedhes së informacionit, komentet si dhe variablat e hyrjes dhe të dalje.

function z=fun2(x)

% ky eshte thjesh nje shembull si ti perdorim

funksionet.

% ky funksion gjen produktin e nje matrice me

variablin global g1

% dhe rezultatin e ruan te matrica "z"

global g1;

g1=10;

z=g1*x;

>> a=[1 1;2 2];

>> outcome1=fun2(a)

outcome1 =

10 10

20 20

Variabli global Funksionet mund të përdorin të njejtat variabla nqs përdorim komandën “global”:

function z=fun1(x,y)

% ky eshte thjesh nje shembull si ti perdorim funksionet.

% ky funksion gjen Shumen e dy matricave (x,y)

% dhe rezultatin e ruan te matrica "z"

global g1;

g1=10;

z=x+y;

function z=fun2(x)

% ky eshte thjesh nje shembull si ti perdorim funksionet.

% ky funksion gjen produktin e nje matrice me variablin

global g1

% dhe rezultatin e ruan te matrica "z"

global g1

z=g1*x;

» outcome1=fun2(a)

outcome1 =

10 10

20 20

Ruajtja e nje funksioni file Një funksion file duhet të ruhet përpara se të ekzekutohet. Ruajtja e këtij funksioni kryhet njësoj si ruajtja e një m-file duke zgjedhur Save As nga menyja File zgjedhim vendin ku duam ta ruajmë dhe vendosim emrin e file. Emri i funksionit dhe emri i file duhet te jenë IDENTIK. Funksionet file ruhen me prapashtesën .m Shembuj:

Përcaktimi i funksionit Emri i file function[mpay,tpay]=loan(amount,rate,years) loan.m function[A]=RectArea(a,b) RectArea.m function[V,S]=SphereVolArea(r) SphereVolArea function trajectory(v,h,g) trajectory

Përdorimi i një funksioni file

Përdorimi i një funksioni të ndërtuar përdoret njësoj si funksioni i përcaktuar në Matlab. Funksioni mund të thërritet nga Command Window, nga një m-file ose nga një funksion tjetër. Dy janë mënyrat e thirrjes së një funksioni të treguara si më poshtë: •Mënyra e parë: Duke vendosur në variablat e hyrjes numra •Mënyra e Dytë: Duke deklaruar në fillim dy variablate hyrjes me karaktere dhe variablin e tretë të hyrjes si numër.

Shembuj

1. Shkruaj një funksion file (të quajtur chp6one) për funksionin . Hyrja e funksionit të jetë x dhe dalja e funksionit f(x). Shkruaj funksionin në mënyrë që x të jetë një vektor. Përdor funksionin për të llogaritur.

a) f(x) për x=6. b) f(x) për x=1,3,5,7,9,11. Funksioni file do të jetë:

function y=chp6one(x)

y=(x.^4.*sqrt(3*x+5))./(x.^2+1).^2

Llogaritja e funksionit për x=6 >>chp6one(6)

y =

4.5401

ans =

4.5401

>> F=chp6one(6)

y =

4.5401

F =

4.5401

4

2 2

3 5( )

( 1)

x xf x

x

Shembull Llogaritja për vlera të x=1,3,5,7,9,11.

>> x=1:2:11;

>> chp6one(x)

y =

0.7071 3.0307 4.1347 4.8971 5.5197

6.0638

ans =

0.7071 3.0307 4.1347 4.8971 5.5197

6.0638

>> H=chp6one(1:2:11)

y =

0.7071 3.0307 4.1347 4.8971 5.5197

6.0638

H =

0.7071 3.0307 4.1347 4.8971 5.5197

6.0638

Krahasimi midis një m-file dhe një funksioni file

Të dyja si m-file dhe funksioni file ruhen me prapashtesën .m ( ja pse shpesh këto quhen m-file). Rreshti i parë i një funksioni file jep përcaktimin e funksionit. Variablat në një funksion file janë lokal ndërsa variablat në m-file njihen nga Comman Window. M-file përdorin variabla të cilat ndodhen në Workspace. M-file përmbajnë një sekuencë të komandave në Matlab. Funksionet file mund të pranojnë të dhëna nga variablate hyrjes dhe mund të japin të dhëna nga variablat në dalje. Kur një funksion file ruhet emri i file duhet të jetë i njejtë me emrin e funksionit.

Komanda feval Komanda feval(function evaluate) përcakton vlerën e funksionit për një vlerë të dhënë(ose disa vlera) të variablit (variablave) të funksionit. Komanda jepet:

Varibli = feval(‘emri i funksionit’ , vlera e variablit)

Vlera që përcaktohet nga komanda feval mund ti përcaktohet një variabli të caktuar , ose nqse comanda ekzekutohet pa përcaktuar variablin në ekran shfaqet ans= me vlerën e funksionit. Emri i funksioni shkruhet si një string. Funksioni mund të jetë i përcaktuar ose i ndërtuar si një funksion nga përdoruesi. Nqse është më shumë se një variabël në hyrje, variablat ndahen me presje. Nqse është më shumë se një variabël në dalje, variablat vendosen brenda kllapave katrore të ndara me presje.

Shembuj

Përdorimi i komandës ‘feval’

feval('sqrt',64)

ans =

8

x=feval('sin',pi/6)

x =

0.5000

Vargjet Fuqia e vërtetë e MATLAB është aftësia e tij për të punuar me numrat.

Megjithatë, nganjëherë lind nevoja edhe e manipulimit te tekstit. Në MATLAB, variablave tekst iu referohemi si strings karakter( vargje) , ose thjeshtë vargje.

Nje string karakter eshte nje tekst i thjesh i vendosur brenda thonjezave teke.Funksioni “disp” na lejon ta shfaqim kete string pa printuar emrin e variablit:

t='si eshte ky varg'

t =

si eshte ky varg

size(t)

ans =

1 16

disp(t)

Si eshte ky varg

Veprimet (operatoret) krahasuese dhe logjike

Matlab përmban këto operatorë krahasues:

Operatoret krahahsues Përshkrimi

< Me i vogël se

<= Me I vogël se ose i barabarte

> Me i madh se

>= Me i madh se ose i barabarte

== I barabarte me

~= Jo i barabarte me

Shembull Ne pergjithesi nje operator krahasues tregon 1 kur veprimi eshte i vertet dhe zero kur veprimi eshte fals (ose i gabuar). Po të shkruajmë në Matlab: A=1:9;

B=9-A;

tf=A>4

tf =

0 0 0 0 1 1 1 1 1

Këtu shohim qe pas elementit te katërt vlerat e A jane më të mëdha se 4. tf=A==B

tf =

0 0 0 0 0 0 0 0 0

Gjejme elementet qe jane te barabarte me elemente e B. simboli “==” krahason dy variablat dhe vendos 1 kur ato jane te barabarta dhe zero kur nuk jane te barabarta.

Operatore logjike Operatoret logjike tregojne nje menyre te kombinimit ose mohimit te shprehjeve krahasuese. Operatore logjike ne Matlab jane:

Operatori logjik Pershkrimi

& AND

| OR

~ NOT

Shembull:

» tf=~(A>4)

tf =

1 1 1 1 0 0 0 0 0

» tf=(A>2)&(A<6)

tf =

0 0 1 1 1 0 0 0 0

Operatoret logjike dhe operatoret krahasues të tjerë që përmban Matlab janë:

Operatori Pershkrimi

Xor(x,y) Veprimi Ekskluzive OR. Tregon 1 kur

ose x ose y nuk jane zero(True).

Tregon 0 nqs te dy x dhe y jane jo të

verteta (False) dhe jo zero (True)

Any(x) Tregon 1 nqs njeri nga elementet e

vektorit x eshte jozero. Tregon 1 per

cdo kolon ne matricen x qe ka elemnte

jo zero.

All(x) Tregon 1 nqs te gjithe elementet jane

jo zero.

Operatore logjike