Documente Academic
Documente Profesional
Documente Cultură
1
A=
1 0 -2 10 0
-5 30 -10 0 1
2 0 1 1 1
-1 3 2 0 0
>> B=2*A
B=
2 0 -4 20 0
-10 60 -20 0 2
4 0 2 2 2
-2 6 4 0 0
>> A>0
ans =
1 0 0 1 0
0 1 0 0 1
1 0 1 1 1
0 1 1 0 0
>> A==B
ans =
0 1 0 0 1
0 0 0 1 0
0 1 0 0 0
0 0 0 1 1
2
aceast condi ie. De exemplu dac dorim s ob inem elementele lui A
mai mari ca 5 vom scrie:
>> A(A>5)
ans =
30
10
Doar dou elemente ale lui A sunt mai mari ca 5: 30 i 10.
Observa ie. Exist mai multe posibilit i pentru a accesa toate
elementele lui A. Prima ar fi s utiliz m o matrice cu toate elementele 1,
adic o condi ie adev rat pentru fiecare element, drept indice. De
exemplu s d m comanda A(A==A). Alta ar fi s utiliz m operatorul :
(revezi lucrarea 2)., A(:). Recomand m a doua metod ca fiind mai scurt
i mai rapid .
Operatorii logici constituie o cale de a defini expresii logice( cu
ajutorul operatorilor rela ionali) . Exist trei operatori logici:
3
adic d m comanda A(~((A>1)&(A<20))) , fie utiliz m operatorul | i
d m comanda A((A<=1)|(A>=20)).
Exist mai multe func ii numite func ii rela ionale i logice. Ele
au caracteristic faptul c au ca r spuns numai numerele 0 (A) sau 1
(F).Le vom prezenta pe scurt pe fiecare,
any(v) R spunde cu 1 dac vectorul v are cel pu in un element nenul
i cu 0 dac toate elementele sunt 0.
all(v) R spunde cu 1 dac toate elementele lui v sunt nenule i cu 0
dac exist cel pu in un element nul.
Fiind cele mai utilizate func ii pentru clarificare prezent m un exemplu.
Fie vectorii [0 1 2], [1 2 3] i [0 0 0]. Atunci:
>> isfinite(v)
ans =
1 0 0 0
4
APLICA II
a) x > y
b) y < x
c) x == y
d) x <= y
e) y >= x
f) x | y
g) x & y
h) x & (~y)
i) (x > y) | (y < x)
j) (x > y) & (y < x)
5
f) define te vectorul f ob inut din x prin schimbarea elementelor ce sunt
mai mari decât media elementelor lui x cu diferen a dintre valoarea lor i
medie.
2 daca x < 6
y ( x) = x − 4 daca 6 <= x <= 20
36 − x daca 20 <= x <= 35
utilizând indexarea logic . Verifica i r spunsul desenând graficul lui
y(x).
b) Desena i graficul func iei de semnal sinusoidal discontinuu :
6
v ( t ) = v02 − 2v0 gt sin θ + g 2t 2
Unde g este accelera ia gravita ional . Proiectilul va atinge solul când
h(t)=0 , ceea ce conduce la timpul de revenire t g = 2 ( v0 / g ) sin θ (se
egaleaz cu 0 prima ecua ie). Pentru θ = 40o , v0=20 m/s, i g=9.81 m/s2 ,
determina i timpul când în l imea h nu este mai mic de 6m iar viteza
este simultan cel mult 16 m/s.
Indica ii
3.
>> x = [3 15 9 12 -1 0 -12 9 6 1]
x=
3 15 9 12 -1 0 -12 9 6 1
a)>> a=x;a(x>0)=0
b)Se va utiliza func ia rem(x,n), x un vector de numere întregi, iar n un
num r natural. Func ia ne d un vector în care elementele sunt restul
împ r irii fiec rui element al lui x la n. În situa ia noastr rem(x,3) ne va
da resturile împ r irii la 3. Dar pe noi ne intereseaz ca în acest vector pe
pozi ia în care este 0, adic elementul se împarte exact la 3, s avem
valoarea 1( adic adev rat) i 0 în rest (adic fals, nu se împarte exact la
3),\.Acest lucru se ob ine pur i simplu aplicând operatorul ~ (not) la
func ie. Deci
>> b=x;b(~rem(x,3))=5
c) >> c=x;c(~rem(x,2))=5*c(~rem(x,2))
d) >> d=x(x>10)
e)media elementelor unui vector este dat de func ia mean(x). Deci
>> e=x;e(x<mean(x))=0
f) >> f=x;f(x>mean(x))=f(x>mean(x))-mean(x)
7
>> plot(x,y,'or'
)
b) Mai întâi definim timpul t:
>>t=0:0.1:10;
Apoi definim func ia x(t):
>> x=sin(t);
Punem valoarea 0 în locul valorilor negative ale lui x:
>> x=x.*(x>0);
Facem graficul i punem etichetele:
>> plot(t,x)
>> axis([0 10 -0.1 1.1])
>> xlabel('Timpul [s]' )
>> ylabel('Amplitudinea' )
>> title('
Semnal sinusoidal discontinuu')
5. Definim x ca în problem :
>> x=[7 3 0 5 -2 0 -1 0 pi]
Ideea este c vom utiliza în locul valorii 0 cea mai mic valoare relativ
pozitiv pe care calculatorul o poate reprezenta. Aceasta este:
eps= 2−52 ≈ 2.2204e-016
Comanda de înlocuire este:
>> x=x+(x==0)*eps
Acum putem calcula:
>> sin(x)./x
8
primul rang i ultimul rang din u. Determin m capetele acestui interval
astfel:
>> t1=t(u(1))
>> t2=t(u(end))
Solu ia problemei este intervalul [t1,t2]
Solu ii
1.
a) >> x > y
ans =
0 1 0 1 1 0 0
Vectorul rezultat are 1 pe pozi ia în care elementul lui x este mai mare
decât elementul lui y i 0 unde elementul lui x este mai mic sau egal cu
elementul corespunz tor al lui y.
Analog pentru restul comenzilor.
2.
a) >> x((x > 3) & (x < 8))
ans =
4 5 6 7
Analog pentru restul comenzilor.
3.
a) a =
0 0 0 0 -1 0 -12 0 0 0
b) b =
5 5 5 5 -1 5 5 5 5 1
c) c =
3 15 9 60 -1 0 -60 9 30 1
d) d =
15 12
e) e =
0 15 9 12 0 0 0 9 6 0
f) f =
3.0000,10.8000,4.8000,7.8000,-1.0000,0,-12.0000,4.8000,1.8000, 1.0000
4. a) x =
9
Columns 1 through 15
24 31 8 21 25 15 27 30 26 2 29 22 16 19 10
Columns 16 through 30
33 7 35 4 28 3 11 14 32 6 12 23 9 5 20
Columns 31 through 35
18 13 34 17 1
y=
Columns 1 through 15
12 5 4 15 11 11 9 6 10 2 7 14 12 15 6
Columns 16 through 30
3 3 1 2 8 2 7 10 4 2 8 13 5 2 16
Columns 31 through 35
14 9 2 13 2
10
b)
5. x =
7.0000 3.0000 0.0000 5.0000 -2.0000 0.0000 -1.0000
0.0000 3.1416
>> sin(x)./x
ans =
0.0939 0.0470 1.0000 -0.1918 0.4546 1.0000 0.8415
1.0000 0.0000
6. [0.85, 1.78]
11