background image

 

1

Programowanie w MATLAB-

ie

dr inż. Henryk Olszewski

background image

 

2

Ćwiczenie 1: Instrukcja if

Obliczyć wartość funkcji f(x) określoną wzorem:



1

x

dla

2

x

3

,

1

x

dla

x

3

x

dla

6

x

)

x

(

f

2

2

background image

 

3

Ćwiczenie 1: Instrukcja if

Obliczyć wartość funkcji f(x) określoną wzorem:

» if x>3

»  f=x.*x-6;

» elseif x>=-1 & x<=3

»  f=x;

» else

»  f=x.*x-2;

» end



1

x

dla

2

x

3

,

1

x

dla

x

3

x

dla

6

x

)

x

(

f

2

2

background image

 

4

Ćwiczenie 2: Instrukcja if

Za  pomocą  funkcji  reshape  utworzyć  z  elementów  wektora 
y  macierz  Z  o  rozmiarze  w*k.  Sprawdzić,  czy  wektor  y 
zawiera w*k elementów:

background image

 

5

Ćwiczenie 2: Instrukcja if

Za  pomocą  funkcji  reshape  utworzyć  z  elementów  wektora  y 
macierz Z o rozmiarze w*k. Sprawdzić, czy wektor  y zawiera w*k 
elementów:

» if length(y)==w*k

»  Z=reshape(y,w,k)

» else

»  ‘Nie można wykonac operacji!’

» end

background image

 

6

Ćwiczenie 3: Instrukcja switch

Utwórz macierz A o rozmiarze n*n. W zależności od wartości 
zmiennej c ma być to:

a) gdy c=0

- macierz o wszystkich elementach równych 

0;

b) gdy c=1 - macierz o wszystkich elementach równych 1;

c) gdy c=2 - macierz jednostkowa,

d) dla innych wartości c - macierz wypełniona liczbami

 

    pseudolosowymi.

background image

 

7

Ćwiczenie 3: Instrukcja switch

Utwórz macierz A o rozmiarze n*n:

» switch c

»  case 0

»  A=zeros(n)

»  case 1

»  A=ones(n)

»  case 2

»  A=eye(n)

»  otherwise

»  A=rand(n)

»  end

background image

 

8

Ćwiczenie 4: Pętla for

Utwórz macierz A o rozmiarze 5x4 taką, że:

1

j

i

j

i

A

ij

background image

 

9

Ćwiczenie 4: Pętla for

Utwórz macierz A o rozmiarze 5x4 taką, że:

» for i = 1:5,

» 

for j = 1:4,

» 

A(i,j) = (i+j)/(i+j+1);

» 

end

»  end

1

j

i

j

i

A

ij

background image

 

10

Ćwiczenie 5: Pętla while

Obliczyć  wartość  setnego  elementu  ciągu  Fibonacciego 
danego wzorem:



2

n

dla

u

u

u

...

1

u

1

u

2

n

1

n

n

2

1

background image

 

11

Ćwiczenie 5: Pętla while

Obliczyć wartość setnego elementu ciągu Fibonacciego danego wzorem:

» u1=1; u2=1; i=2; n=100;
»  while i<n
»  u3=u1+u2;
»  u1=u2;
»  u2=u3;
» i=i+1;
» end
» u3

Otrzymujemy wartość: 

u3 = 3.5422e+020



2

n

dla

u

u

u

...

1

u

1

u

2

n

1

n

n

2

1

background image

 

12

Ćwiczenie 6: Skrypty

Napisać  skrypt  kwadrat,  obliczający  pierwiastki  równania 
kwadratowego. W skrypcie wykonaj następujące polecenia:

a) wczytaj współczynniki równania kwadratowego abc;

b) wyświetl pierwiastki równania x1 i x2.

Powyższy skrypt umieścić w pliku kwadrat.m.

background image

 

13

Ćwiczenie 6: Skrypty

%Skrypt oblicza rzeczywiste pierwiastki
%równania kwadratowego y=a*x^2+b*x+c
a=input(‘a=‘); b=input(‘b=‘); c=input(‘c=‘);
delta=b.*b-4*a.*c;
if delta>0

x1=(-b-sqrt(delta))/(2*a); 
x2=(-b+sqrt(delta))/(2*a); 
disp(‘x1=‘), disp(x1)
disp(‘x2=‘), disp(x2)

elseif delta == 0

x1=-b/(4*a); disp(‘x1=x2=‘), disp(x1)

else

disp(‘Równanie nie ma pierwiastków rzeczywistych’)

end

background image

 

14

Ćwiczenie 6: Skrypty

Po  wykonaniu  każdego  polecenia  w  programie  MATLAB  następuje  przejście  do 
nowego  wiersza,  aby  uzyskać  elegancki  efekt  działania  skryptu,  należy 
połączyć  wyświetlanie  tekstu  i  liczb  w  jedno  polecenie.  W  tym  celu  należy 
zmienne  liczbowe  x1  i  x2  przekształcić  w  łańcuchy  znakowe.  Argumentem 
funkcji  disp  może  być  tylko  jedna  zmienna,  łańcuchy  te  należy  następnie 
połączyć. Wówczas wiersze skryptu przyjmą następującą postać: 

disp(strcat(‘x1=‘,nim2str(x1))
disp(strcat(‘x2=‘,nim2str(x2))

a uruchomienie skryptu spowoduje wyświetlenie:

x1=-2
x2=1

W celu wyświetlenia wyników w jednym wierszu należy dokonać dalsze zmiany:

disp(strcat(‘x1=‘,nim2str(x1), ‘x2=‘,nim2str(x2)))

co da następujący wynik:

x1=-2, x2=1

background image

 

15

Ćwiczenie 7: Funkcje

Zdefiniować  funkcję  prosta,  która  oblicza  współczynniki  A
B,  C  prostej  Ax+By+C=0  przechodzącej  przed  dwa  dane 
punkty  P1(x1,y1)  i  P2(x2,y2).  Powyższa  funkcję  zapisać  w 
pliku prosta.m.

background image

 

16

Ćwiczenie 7: Funkcje

Zdefiniować funkcję prosta, która oblicza współczynniki ABC prostej 
Ax+By+C=0  przechodzącej  przed  dwa  dane  punkty  P1(x1,y1)  i 
P2(x2,y2). Powyższa funkcję zapisać w pliku prosta.m:

function [A, B, C]=prosta(x1,y1,x2,y2)
%Wynikiem działania funkcji prosta o 4 parametrach
%wejściowych będących współrzędnymi dwóch punktów
%P1(x1,y1) i P2(x2,y2) są współczynniki A, B, C
%prostej Ax+By+C=0 przechodzącej przez te punkty
A=y2-y1;
B=x1-x2;
C=y1.*x2-y2.*x1;

Wywołanie funkcji:

» [A1,B1,C1]=prosta(1,1,2,2)

spowoduje wyznaczenie:

A1=1

B1=-1 C1=0

background image

 

17

Ćwiczenie 8: Funkcja inline

Zdefiniować  funkcję  dwóch  zmiennych  f2(x,y)=x2+y2  oraz 
obliczyć jej wartość dla x=3y=-1:

background image

 

18

Ćwiczenie 8: Funkcje inline

Zdefiniować  funkcję  dwóch  zmiennych  f2(x,y)=x2+y2  oraz 
obliczyć jej wartość dla x=3y=-1:

» f2=inline(‘x.^2+y.^2’);

» z=f2(3,-1)

f2 =

Inline function

f2(x,y) = x.^2+y.^2

z = 

10

background image

 

19

Dziękuję za uwagę


Document Outline