Documente Academic
Documente Profesional
Documente Cultură
Matlab in Ing Mec
Matlab in Ing Mec
CAPITOLUL I
INTRODUCERE ÎN MATLAB
MATLAB este un mediu de programare şi calcul tehnic ce însumează
calculul, vizualizarea şi programarea într-un mediu compact, unde problemele şi
soluţiile acestora sunt exprimate folosind notaţii matematice familiare. Utilizarea
acestui mediu este frecventă în domeniile:
Matematică şi calcule matematice;
Dezvoltarea algoritmilor de calcul şi programare;
Modelare, simulare şi prototipare;
Analiza, studiul şi vizualizarea datelor;
Diagrame şi reprezentări grafice în inginerie;
Dezvoltarea soft-urilor aplicative folosind metode de creare a
interfeţelor grafice interactive(GUI).
MATLAB este un sistem interactiv care foloseşte, ca element definitoriu,
matricea, numele acestuia fiind dat de acronimul format din cuvintele MATrix şi
LABoratory. MATLAB oferă facilităţi multiple prin familiile de aplicaţii specifice
numite toolbox-uri. Toolbox-urile sunt colecţii de funcţii MATLAB (fişiere “.m”)
care extind utilizarea mediului MATLAB, la rezolvarea unor clase de probleme
specifice. Toolbox-urile sunt utilizate intensiv în domeniile: procesarea sunetelor,
sisteme de control, reţele neuronale, simulare. Mediul MATLAB se compune din
cinci părţi principale:
NOŢIUNI ELEMENTARE
FERESTRELE DE LUCRU
GESTIONAREA FIŞIERELOR
Selectând
comanda File din meniul
principal, prin [Alt] + F,
sau prin poziţionarea
mouse-ului în dreptul
cuvântului File, se
obţine un submeniu ca
cel prezentat în figura
alăturată.
Meniul File
conţine o suma de
submeniuri, dintre care
prezentăm:
• New provoacă
deschiderea unui
sub-submeniu, care are opţiunile: “M-file”, “Figure” şi Model. Alegerea
opţiunii “M-file” va deschide o fereastră de editare a unui fişier, cu extensia
“.m”, în timp ce opţiunea “Figure” deschide o fereastră grafică.
• Open … deschide o fereastră de dialog care permite selectarea şi
deschiderea unui fişier.
• Open Selected analizează fişierele pentru selectare şi deschide pe cel
selectat.
• Run Script…- permite rularea unui fişier script care are definită calea
(Path)
• Save Workspace As… deschide o fereastră de dialog pentru a salva datele
din spaţiul de lucru într-un fişier, al cărui nume trebuie precizat.
• Set Path …- deschide o casetă de dialog care permite setarea căii de acces
la un anumit fişier de pe hard- disc sau de pe unităţile mobile :floppy disc
sau CD ROM.
• Preferences- permite configurarea formatului numeric, alegerea tipului
caracterelor, mărimea caracterelor etc.;
• Print Setup… şi Print…- Comenzile de tipărire a documentului; Print şi
Print Setup, apar în acelaşi meniu de gestionare a fişierelor. Comanda
“Print…” permite tipărirea documentului, iar ”Print Setup…” configurează
pagina, marginile, tipul de imprimantă etc.
• Exit MATLAB- comanda al cărei efect este părăsirea aplicaţiei. Comanda
de părăsire a aplicaţiei (echivalentă opţiunii Exit MATLAB din meniul File)
poate fi validată şi prin apăsarea simultană a tastelor [Ctrl]+ Q.
EDITAREA PROGRAMELOR
ALEGEREA OPŢIUNILOR
DOCUMENTAŢIA DE AJUTOR
EDITAREA GRAFICELOR
Selectând meniul Edit din bara de meniuri a ferestrei grafice, sunt posibile
câteva opţiuni pentru modificarea reprezentărilor grafice:
• Copy- copiază figura în Clipboard;
• Copy Options…- copiază figura curentă în format meta sau bitmap(vezi
formatele fişierelor grafice în Windows), existând şi posibilitatea alegerii
unei culori pentru fundalul (background) figurii (inversarea între alb şi
negru; implicit este negru);
• Clear Figure şterge figura curentă, fără să închidă fereastra grafică.
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
double 3*10^300 Reţele numerice cu dublă precizie. Este cel mai util;izat tip
5+6*i de variabile în MATLAB.
sparse speye(5) Matrice compactă bi-dimensională cu dublă precizie.
Matricile compacte stochează doar elementele nenule,
necesitând mai puţină memorie.
int8, uint8, uint8(magic(5)) Reţele de întregi cu şi fără semn cu lungimea de 8, 16, 32 de
int16, uint16, biţi. Permit manevrarea cantităţilor întregi într-un mod
int32, uint32 eficient. Aceste date nu pot fi utilizate în operaţii
matematice.
char ‘Pachet de Reţea de caractere(fiecare caracter are 16 biţi). Aceste reţele
programe’ sunt numite, în general, şiruri de caractere.
cell {25 ‘Pachet’ eye(2)} Reţea celulară. Elementele celulelor pot conţine alte
reţele.Celulele pot colecta date şi informaţii de factură şi
mărime diferită.
structure A.ziua=12; Reţea structurală. Reţelele structurii se numesc
A.culoare=’roşu’; câmpuri.Câmpurile pot conţine alte reţele. Ca şi celulele,
A.matrice=magic(3) structurile pot colecta date şi informaţii de factură şi
; mărime diferită.
user class inline(‘sin(x)’) Classa MATLAB. Această classa este creată de utilizator,
folosind funcţii MATLAB.
java class java.awt.Frame Classa Java. Se pot utiliza appleturi Java deja existente sau
se pot crea appleturi proprii.
Function @humps Manipulator al funcţiei MATLAB.
handle
» 1/4 [Enter]
returnează rezultatul:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» ans = 0.2500
A=
1 2 3
4 5 6
7 8 9
» S=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18…
??? S=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15+16+17+18…
|
Error: Missing operator, comma, or semicolon.
NUMERE
» 0.1714
5
De exemplu, vectorul linie a = 1,2345678901 2345678901 π
3
, în care π =1.77245385 090552 , poate fi afişat în diferite formate. Pentru
aceasta, se va introduce, în linia de comandă, mai întâi, vectorul a:
» a=[5/3,1.23456789012345678901,sqrt(pi)];
» format short
a=
1.6667 1.2346 1.7725
» format short e
a=
1.6667e+000 1.2346e+000 1.7725e+000
» format short g
a=
1.6667 1.2346 1.7725
» format long
a=
1.66666666666667 1.23456789012346 1.77245385090552
» format long e
a=
1.666666666666667e+000 1.234567890123457e+000 1.772453850905516e+000
»format long g
a=
1.66666666666667 1.23456789012346 1.77245385090552
» format bank
a=
1.67 1.23 1.77
» format rat
a=
5/3 100/81 296/167
» format +
a=
+++
O mare atenţie trebuie acordată scrierii fracţiilor zecimale. Dacă aceeaşi
fracţie zecimală este scrisă în linia de comandă cu caracterul virgulă (,), atunci se
va afişa un rezultat dublu. De exemplu, dacă se introduce numarul 0,1714, şi se
doreşte afişarea acestuia în format scurt, se vor folosi următoarele instrucţiuni:
» format short
»0.1714
ans =
0.1714
în timp ce, dacă, acelaşi număr, se introduce în “scriere est-europeană” (cu
caracterul virgulă, pentru separarea fracţiei zecimale), se vor afişa două
răspunsuri:
»0,1714
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
ans =
0
ans =
1714
»a=2i
a=
0 + 2.0000i
»a=2*i
a=
0 + 2.0000i
»b= 2j
b=
0 + 2.0000i
»b= 2*j
b=
0 + 2.0000i
»c=3+sqrt(7)*i
c=
3.0000 + 2.6458i
»d=3+2/3i
d=
3.0000 - 0.6667i
»e=3+sqrt(2)*i
e=
3.0000 + 1.4142i
»e=3+2^(1/2)*i
e=
3.0000 + 1.4142i
» c=3+sqrt(7)i
??? a=3+sqrt(7)i
|
Error: Missing operator, comma, or semicolon.
Eroare:Lipseşte operatorul, virgula, sau paranteza dreaptă
»e=3+2^(1/2)i
??? a=3+2^(1/2)i
|
Error: Missing operator, comma, or semicolon.
»f=1+(2+sqrt(3))i
??? f=1+(2+sqrt(3))i
|
Error: Missing operator, comma, or semicolon.
OPERATORI ARITMETICI
^ ridicarea la putere
‘ transpunerea
() specificarea ordinii evaluării expresiilor
Există două simboluri pentru împărţire, utilizate în mod special pentru
operaţiile cu matrici. Pentru expresiile scalare 1/4 şi 4\1 se obţine acelaşi rezultat
(0.25). Într-o expresie, parantezele sunt utilizate pentru a preciza ordinea executării
operaţiilor.
FUNCŢII
Funcţii trigonometrice
sin - sinus
sinh - sinus hiperbolic
asin - inversa sinusului (arcsin)
asinh - inversa sinusului hiperbolic
cos - cosinus
cosh - cosinus hiperbolic
acos - inversa cosinusului
acosh - inversa cosinusului hiperbolic
tan - tangenta
tanh - tangenta hiperbolică
atan - arctangenta
atan2 - arctangenta în cadranul patru
atanh - arctangenta hiperbolică
sec - secanta
sech - secanta hiperbolică
asec -arcsecanta
asech - arcsecanta hiperbolică
csc - cosecanta
csch - cosecanta hiperbolică
acsc - arccosecanta
acsch - arccosecanta hiperbolică
cot - cotangenta
coth - cotangenta hiperbolică
acot - arccotangentă
acoth - arccotangenta hiperbolică
Funcţii exponenţiale
exp - exponenţiala simplă ( e x )
log - logaritmul natural ( ln x )
log10 - logaritmul în baza zece ( lg x )
log2 - logaritmul în baza doi ( log 2 x )
pow2 - puterile lui 2 ( 2 x )
sqrt - radical de ordin 2 ( x )
nextpow2 - puterea următoare a lui 2 ( 2 p ≥ abs ( N ) )
Funcţii complexe
Aproximări şi resturi
Operaţiuni cu matrici
NOTAŢII
»A=[1,2;3,4];B=[0,1,5;2,7,9];C=[1,2,3];D=[sqrt(2),0,pi,1;3,2,1,…
5;5,7,9,7];E=[1,3,5,7]
»A(2,1) [Enter]
ans =
3
»B(1,3) [Enter]
ans =
5;
»D(3,4) [Enter]
ans =
7;
»E(4) [Enter]
ans =
7
Cea mai simplă metodă de definire a matricilor mici constă în utilizarea unei
liste explicite, a elementelor acesteia, respectând convenţiile de scriere. La
introducerea unei astfel de liste trebuie respectate următoarele reguli:
1 2
Astfel, matricea A= , se introduce de la tastatură cu secvenţa:
3 4
»A= [1 2 ; 3 4] [Enter]
A=
1 2
3 4
» A = [1,2;3,4]
A=
1 2
3 4
şi se afişează:
A=
1 2
3 4
5 6
Un alt mod de definire a unei matrici constă în apelarea numelui unui fişier
de date aflat în memoria sistemului de calcul. Acest fişier trebuie să fi fost salvat,
în prealabil, pe hard-disc, în format ASCII (text), organizat ca o matrice
rectangulară (completă) şi trebuie să aibă extensia “ .m “. Astfel, de exemplu, dacă
pe hard-disc se găseşte un fişier cu numele matricea_A.m care conţine
următoarele linii de text:
» E=1:4 [Enter]
E=
1 2 3 4
» F=0.1:0.1:0.5 [Enter]
F=
0.1000 0.2000 0.3000 0.4000 0.5000
» I2=eye(2);I3=eye(3);I34=eye(3,4); [Enter]
I2 =
1 0
0 1
I3 =
1 0 0
0 1 0
0 0 1
I34 =
1 0 0 0
0 1 0 0
0 0 1 0
Y2 =
1 1
1 1
Y34 =
1 1 1 1
1 1 1 1
1 1 1 1
»Z3=zeros(3)
Z3 =
0 0 0
0 0 0
0 0 0
Matricea “vidă” este o matrice cu, cel puţin, una dintre dimensiuni egală cu
zero, deci fără elemente definite, dar matricea există ca structură matematică:
»A=[]
Funcţia rand() generează matrici ale căror elemente sunt numere uniform
distribuite în intervalul de valori (0,1) . Cu secvenţa următoare se generează
matricile arbitrare B3 (cu dimensiunea 3x3), B34(cu dimensiunea 3x4) şi B345(cu
dimensiunea 3x4 în 5 variante, disponibilă numai în versiunile MATLAB
superioare versiunii 5.3 ):
»B3=rand(3);B34=rand(3,4);B345=rand(3,4,5);
B34 =
0.6124 0.0164 0.0576 0.7176
0.6085 0.1901 0.3676 0.6927
0.0158 0.5869 0.6315 0.0841
B345(:,:,1) =
0.4544 0.1536 0.7275 0.1210
0.4418 0.6756 0.4784 0.4508
0.3533 0.6992 0.5548 0.7159
B345(:,:,2) =
0.8928 0.8656 0.9084 0.0498
0.2731 0.2324 0.2319 0.0784
0.2548 0.8049 0.2393 0.6408
B345(:,:,3) =
0.1909 0.1708 0.3400 0.3932
0.8439 0.9943 0.3142 0.5915
0.1739 0.4398 0.3651 0.1197
B345(:,:,4) =
0.0381 0.9342 0.8729 0.9669
0.4586 0.2644 0.2379 0.6649
0.8699 0.1603 0.6458 0.8704
B345(:,:,5) =
0.0099 0.4302 0.6873 0.1556
0.1370 0.8903 0.3461 0.1911
0.8188 0.7349 0.1660 0.4225
F). Matricea dispersiilor:sparse (A), sparse(i,j,s,m,n)
»H4=hadamard(4)
H4 =
1 1 1 1
1 -1 1 -1
1 1 -1 -1
1 -1 -1 1
G). Matricea Hilbert
»H3=hilb(3)
H3 =
1.0000 0.5000 0.3333
0.5000 0.3333 0.2500
0.3333 0.2500 0.2000
» suma_elementelor_pe_linie=sum(M3) [Enter]
suma_elementelor_pe_linie =
15 15 15
M4 =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» suma_elementelor_pe_linie= sum(M4)
suma_elementelor_pe_linie =
34 34 34 34
» suma_elementelor_pe_coloana =sum(M4')
suma_elementelor_pe_coloana =
34 34 34 34
» suma_elementelor_pe_diagonala= sum(diag(M4))
suma_elementelor_pe_diagonala =
34
»P2=pascal(2);P3=pascal(3);P4=pascal(4);P5=pascal(5);
P2 =
1 1
1 2
P3 =
1 1 1
1 2 3
1 3 6
P4 =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
P5 =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
1 5 15 35 70
»trei=wilkinson(3)
trei =
1 1 0
1 0 1
0 1 1
»patru=wilkinson(4)
patru =
1.5 1 0 0
1 0.5 1 0
0 1 0.5 1
0 0 1 1.5
»cinci=wilkinson(5)
cinci =
2 1 0 0 0
1 1 1 0 0
0 1 0 1 0
0 0 1 1 1
0 0 0 1 2
»sase=wilkinson(6)
sase =
2.5 1 0 0 0 0
1 1.5 1 0 0 0
0 1 0.5 1 0 0
0 0 1 0.5 1 0
0 0 0 1 1.5 1
0 0 0 0 1 2.5
O altă posibilitate de a accesa date din fişiere în format text sau binar, în
MATLAB-6, este aceea de a folosi calea File→ Import Data … care utilizează
un Import Wizard (Asistent pentru import date), acesta solicitând utilizatorului
date suplimentare privind calea fişierului ce urmează a fi importat. De exemplu,
pentru a importa fişierul “matrice”, care se găseşte pe hard-disc, în partiţia D:/ a
acestuia, D:/MATLAB-6/work/matrice, se va deschide fereastra de dialog din
figură:
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
»load matrice.dat
»B=matrice
B=
16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
ELEMENTELE MATRICILOR
Elementele matricilor pot fi numere reale sau complexe, sau orice altă
expresie MATLAB. De exemplu, pentru introducerea matricei
4
x = − 1,3 3 ( 1 + 2 + 3 ) ⋅ se foloseşte scrierea:
5
rezultă:
» x=
-1.3000 1.7321 4.8000
Elementele unei matrici pot fi referite (se pot apela, sau se poate edita) cu
indici cuprinşi între paranteze rotunde “ ( ) “, cifrele reprezentând identificatorii de
linie, respectiv de coloană ai elementului apelat.
De exemplu, cu instrucţiunea următoare, se cere afişarea elementului “al
doilea” al vectorului x:
» a = x(2) [Enter]
a=
1.7321
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» A=[1,2;3,4];A(2,4) = 6 [Enter]
A=
1 2 0 0
3 4 0 6
1 2
(adică elementul din linia 2 coloana 4, al matricei A= este definit, de-
3 4
acum înainte, ca fiind numărul întreg 6,(Atenţie! Nu trebuie înlocuite elementele
care lipsesc: A13 , A14, A23, acest lucru este realizat automat de către mediul
MATLAB )).
»A=
1 2
3 4
5 6
7 8
»B=A(2,3, :) [Enter]
extrage liniile doi şi trei (“2:3”) şi toate coloanele din matricea curentă A,
obţinându-se matricea B:
B=
3 4
5 6
B=
21 4 8 2 53 36 40 34
7 9 0 8 39 41 32 40
A+32
A
6 7 8 9 38 39 40 41
3 5 7 9 35 37 39 41
69 52 56 50 37 20 24 18
55 57 48 56 23 25 16 24 A+16
A+48 54 55 56 57 22 23 24 25
51 53 55 57 19 21 23 25
» A=[21,4,8,2;7,9,0,8;6,7,8,9;3,5,7,9];x=A; x(:,2)=[]
x=
21 8 2
7 0 8
6 8 9
3 7 9
Pentru ştergerea unui singur element (de exemplu, tot al treilea element să
fie şters, considerând elementele matricei scrise “pe coloană”) se poate folosi
următoarea secvenţă:
» A=[21,4,8,2;7,9,0,8;6,7,8,9;3,5,7,9];x=A;
» x(1:3:16) =[]
x=
7 6 4 9 5 8 8 7 8 9
21 4 8 2
7 9 0 8
exemplu, considerând matricea A= stocată în memoria
6 7 8 9
3 5 7 9
calculatorului, atunci cu instrucţiunea:
» A=[21,4,8,2;7,9,0,8;6,7,8,9;3,5,7,9];A(6,5)=A(1,2)+A(3,1) [Enter]
se obţine o altă matrice la care elementul din linia 6, coloana 5: A(6,5), al matricei
A, este obţinut ca suma dintre elementul de pe linia 1 –coloana 2 (A(1,2)) şi
elementul de pe linia 3, coloana 1 (A(3,1)), celelalte elemente fiind înlocuite cu
valoarea zero:
»A=
21 4 8 2 0
7 9 0 8 0
6 7 8 9 0
3 5 7 9 0
0 0 0 0 0
0 0 0 0 10
Indicii pot fi scalari sau vectori. Indicii vectori permit definirea unor
submatrici, procedeu prin care se pot referi părţi disparate dintr-o matrice. Spre
exemplu, dacă se presupune că matricea M6x10 există deja salvată pe disc,
»M=[1,2,3,4,5,6,7,8,9,10;-1,2,3,-4,5,-6,7,-8,9,-10;0,2,0,4,0,6,0,8,0,10;
-1,2,-3,4,-5,6,-7,8,-9,10;1,2,3,0,0,0,7,8,9,10;10,9,8,7,6,5,4,3,2,1];
M=
1 2 3 4 5 6 7 8 9 10
-1 2 3 -4 5 -6 7 -8 9 -10
0 2 0 4 0 6 0 8 0 10
-1 2 -3 4 -5 6 -7 8 -9 10
1 2 3 0 0 0 7 8 9 10
10 9 8 7 6 5 4 3 2 1
»B1=M(1:5,3) [Enter]
B1 =
3
3
0
-3
3
»D1=M(:,3) [Enter]
extrage din matricea M, o submatrice D1 cu elementele extrase din matricea M
(toate liniile şi numai coloana 3) având următoarea configuraţie:
»D1 =
3
3
0
-3
3
8
»E1=M(1:5,:) [Enter]
UTILIZAREA SIMBOLURILOR
∫
\nabla ∇ \copyright © \in ∈
〈
\perp ⊥ \langle \rangle 〉
E=
(((1+2+3)/((12-3^5)/11)-(14+(34)^(1/5)- log(23))^(1/3))*8^((log(125))/(log(5))))-
sqrt(55)*(12-4^3)/(8)
Utilizarea acestei expresii, în calcule, (pentru determinarea valorii expresiei
f=E^2-3*E+log(E), de exemplu), este posibilă, folosind următoarea secvenţă
MATLAB:
» f=E^2-3*E+log(E)
f =((-2/7-(14+34^(1/5)- log(23))^(1/3))*8^(log(125)/log(5))+
13/2*55^(1/2))^2-3*(-2/7-(14+34^(1/5)-log(23))^(1/3))*8^(log(125)/
log(5))-39/2*55^(1/2)+log((-2/7-(14+34^(1/5)-log(23))^(1/3))*
8^(log(125)/log(5))+13/2*55^(1/2))
»syms x a
»f=x^2-2*a*x+7
f=
x^2-2*a*x+7
» solve(f)
ans =
[ a+(a^2-7)^(1/2)]
[ a-(a^2-7)^(1/2)]
elementele matricei “simbolice” “ans” fiind cele două rădăcini ale ecuaţiei date.
CALCULE SIMBOLICE
Diferenţierea
» syms x a b c
» f=a*x^3+b*x^2+c*x
f=
a*x^3+b*x^2+c*x
2. –se aplică funcţia diff() expresiei simbolice, creată anterior,
“f”:
» diff(f)
ans =
3*a*x^2+2*b*x+c
» diff(f,a)
ans =
x^3
»diff(f,x,2)
ans =
6*a*x+2*b –diferenţiala de ordinul doi în raport cu “x”
» diff(f,2)
ans =
6*a*x+2*b - diferenţiala de ordinul doi în raport cu “x”
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» diff(f,3)
ans =
6*a - diferenţiala de ordinul trei în raport cu “x”
» diff(f,a,2)
ans =
0- diferenţiala de ordinul doi în raport cu “a”
» syms x y u v
» u=2*x^4-log(x^2+4);v=exp(x^2-8)+4*log(3*x^3-2);
» Der_partiala=jacobian([u;v],[x,y])
Der_partiala =
[8*x^3-2*x/(x^2+4)-(2*x+2*y^3)/(x^2+2*x*y^3-5*y),- (6*x*y^2-5)/(x^2+2*x*y^3-5*y)]
[ 2*x*exp(x^2-8*y^3+6*y^2)+36*x^2/(3*x^3-2*y),(-24*y^2+12*y)*exp(x^2-8*y^3+6*y^2)-8/(3*x^3-2*y)]
» syms x y u v a b c d
» u=cos(a*x+b*y);v=sin(c*x-d*y);
» Der_partiala=jacobian([u;v],[x,y])
Der_partiala =
[ -sin(a*x+b*y)*a, -sin(a*x+b*y)*b]
[ cos(c*x-d*y)*c, -cos(c*x-d*y)*d]
Calculul limitelor funcţiilor simbolice
»limit((x^x-a^x)/(a^x-a^a),a)
ans =
1/log(a)
»syms n a
» limit((n^2)*(a^(1/n)-a^(1/(n+1))),n,inf)
ans =
log(a)
» limit(exp(1/(x-a)),x,a,'left')
ans =
0
» limit(exp(1/(x-a)),x,a,'right')
ans =
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
inf
n
Pentru calculul sumelor de tipul ∑
k =1
a k , în care şirul a k este definit
» syms k n
» symsum(1/(k^2+k),1,n)
ans =
-1/(n+1)+1
∑
k =0
şi ∑
k =0
» syms k x y n
»symsum((x^k)*(k^2+1),k,0,inf)
ans =
-(2*x^2-x+1)/(x-1)^3
» syms k x y n
»symsum(x^k+y^k,k,0,inf)
ans =
-1/(x-1)-1/(y-1)
F((ak)) = f k (a ), k = 0,1,2,..., n
» syms x
» taylor(exp(x^2),4,3)
ans =
exp(9)+6*exp(9)*(x-3)+19*exp(9)*(x-3)^2+42*exp(9)*(x-3)^3
ECUAŢII ALGEBRICE
» solve(x^4-7*x^3+19*x^2-23*x+10)
ans =
[ 1]
[ 2]
[ 2+i]
[ 2-i]
» solve(‘x^2=6*x-5’)
ans =
[ 1]
[ 5]
x = 2 y -2 - 2
Rezolvarea sistemului de ecuaţii este realizabilă
2ln(x + 7) = yln3
cu următoarea secvenţă:
»syms x y
» [x,y]=solve('x=2^(y-2)-2','2*log(x+7)=y*log(3)')
x=
1/4*exp(2.7726)-2
y=
2.7726/log(2)
În scrierea soluţiei acestui sistem de ecuaţii, MATLAB foloseşte
transformarea ln 16 =2,7726. Astfel, soluţia sistemului se mai poate scrie sub
forma consacrată {x = 2; y = 4} .
Rezolvarea ecuaţiilor parametrice sau a sistemelor cu numar mare de
ecuaţii, MATLAB afişează un “câmp” “S” al soluţiilor. “Extragerea” soluţiilor din
acest “câmp” se realizează folosind o instrucţiune simplă:S.(nume_soluţie). Pentru
ilustrarea acestor situaţii, se studiază rezolvarea sistemelor:
( x + y ) = 3z − 1
2
x 2 + ax + (a + 1)y + a = 0 ( y + z ) 2 = 3u − 1
2 ; . Secvenţa următoare rezolvă
2
y + ay + (a + 1)x + a = 0 ( z + u ) = 3x − 1
( u + x ) 2 = 3 y − 1
primul sistem:
»syms x y a
» S=solve('x^2+a*x+(a+1)*y=-a','y^2+a*y+(a+1)*x=-a')
S=
x: [4x1 sym]
y: [4x1 sym]
» Solutiile=[S.x,S.y]
Solutiile =
[ 1/2-1/2*(-3-8*a)^(1/2), 1/2+1/2*(-3-8*a)^(1/2)]
[ 1/2+1/2*(-3-8*a)^(1/2), 1/2-1/2*(-3-8*a)^(1/2)]
[-a-1/2+1/2*(4*a^2+1)^(1/2),-a-1/2+1/2*(4*a^2+1)^(1/2)]
[ -a-1/2-1/2*(4*a^2+1)^(1/2), -a-1/2-1/2*(4*a^2+1)^(1/2)]
» syms x y z u
»S=solve('(x+y)^2=3*z-1','(y+z)^2=3*u-1','(z+u)^2=3*x-
1','(u+x)^2=3*y-1')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
S=
u: [2x1 sym]
x: [2x1 sym]
y: [2x1 sym]
z: [2x1 sym]
» solutii=[S.x,S.y,S.z,S.u]
solutii =
[3/8+1/8*i*7^(1/2), 3/8+1/8*i*7^(1/2), 3/8+1/8*i*7^(1/2), 3/8+1/8*i*7^(1/2)]
[3/8- 1/8*i*7^(1/2), 3/8- 1/8*i*7^(1/2), 3/8- 1/8*i*7^(1/2), 3/8- 1/8*i*7^(1/2)]
» syms x y t
» y1=dsolve('Dy=-y*(0.9/(1+2*t))','y(0)=1')
y1 =
1/(1+2*t)^(9/20)
» y3=dsolve('Dy=-y*(0.9/(1+2*x))','y(0)=1')
y3 =
exp(-9/10/(1+2*x)*t)
1
Să se calculeze: 5
3 − 44 + 8−3
Să se calculeze expresiile:
2
2
E 2 = 3 15 ; E 3 = 43 ,56 ; E 4 = 3 18 − 45 ⋅ + 23 − 8 99
88 ,9
În MATLAB, se foloseşte algoritmul:
» E2=15^(1/3) [Enter]
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
E2 =
2.4662
» E3=sqrt(43.56) [Enter]
E3 =
6.6000
» E4=((18-45*(2/88.9))^(1/3)+sqrt(23))^2-99^(1/8) [Enter]
E4 =
52.4891
Să se calculeze :
E 5 = e 5− 3 3
; E 6 = ln 9 − ; E 7 = lg 3 2002 − 13 ⋅
2
1
5
(
; E 8 = log 4 90 − 4 3 )
1 2
3 4
E9 = e
12 − 3 5 3 12 − 4 3
E 10 = ( 1 + 2 + 3) : − 14 + 5 34 − ln 23 ⋅ 8 log5 125 _ 55 ⋅
11 8
» E7=log10(2002^(1/3)-13*sqrt(1/5))
E7 =
0.8318
» E8=(log(90-3^(1/4)))/(log(4))
E8 =
3.2353
1 2
Pentru calculul expresiei , se procedează astfel :
3 4
E9 = e
»x=[1,2;3,4];
»E9=exp(x)
E9 =
2.7183 7.3891
20.0855 54.5982
»E9=exp([1,2;3,4])
APLICAŢII
• Să se introducă de la tastatură, următoarele matrici :
e lg 9 1
1 2 0 ln 5
A= 3 B= π C= 2 D=
3 4
6
3
2 ln 7 lg 18 9
2 0 π 1
4
3 2 6 5
5 3
3 ln 9 7
• Să se scrie numărul :
123,456789012345678901
în formatele: “scurt”, “lung”, “cu virgulă mobilă – scurt = eng. scurt”, “cu
virgulă mobilă – lung =eng. lung”, “raţional”, “cu două zecimale exacte”.
M=[1,2,3,4,5,6,7,8,9,10;-1,2,3,-4,5,-6,7,-8,9,-10;0,2,0,4,0,6,0,8,0,10;...
-1,2,-3,4,-5,6,-7,8,-9,10;1,2,3,0,0,0,7,8,9,10;10,9,8,7,6,5,4,3,2,1]
» A+B -adunare
»A-B -scădere
» A*B -înmulţire
» A/B -împărţire la dreapta
» A\B -împărţire la stânga
» A^B -ridicare la putere
» A' -transpunere
» A+B - plus(A,B)
»A-B - minus(A,B)
» A*B - mtimes(A,B)
» A/B - mrdivide(A,B)
» A\B - mldivide(A,B)
» A^B - mpower(A,B)
» A' - ctranspose(A)
A.*B - times(A,B)
A./B - rdivide(A,B)
A.\B - ldivide(A,B)
A.^B - power(A,B)
A.' - transpose(A)
Ex.:
1 2 5 6
Fie: a= ; b= ; c=2.
3 4 7 8
Să se calculeze:a+b; a-b;a+c.
» a2=a-b [Enter]
a2 =
-4 -4
-4 -4
» a3=a+c [Enter]
a3 =
3 4
5 6
Ex.:
1 2 π 2 4
3
Fie: m= ; n= lg 8
3 4
e ln 7 1 − e
Să se calculeze: M=m+n
» syms a11 a12 a13 a21 a22 a23 a31 a32 a33 b11 b12 b13 b21
b22 b23 b31 b32 b33;
apoi se declară matricele A, respectiv B:
» A = [a11 a12 a13; a21 a22 a23; a31 a32 a33]
A=
[ a11, a12, a13]
[ a21, a22, a23]
[ a31, a32, a33]
PRODUSUL VECTORIAL ŞI
PRODUSUL SCALAR AL DOI VECTORI
» a=[1;2;3]
a=
1
2
3
» b=[5,6,7]
b=
5 6 7
atunci produsul vectorial, respectiv produsul scalar, al celor doi vectori sunt:
» prod_vect_simbolic=a_simbolic*b_simbolic
prod_vect_simbolic =
[ a11*b11, a11*b12, a11*b13]
[ a21*b11, a21*b12, a21*b13]
[ a31*b11, a31*b12, a31*b13]
» prod_scalar_simbolic=b_simbolic*a_simbolic
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
prod_scalar_simbolic =
a11*b11+a21*b12+a31*b13
PRODUSUL MATRICILOR
» a3=a*c [Enter]
a3 =
2.0000 4.0000
6.0000 8.0000
10.0000 5.6569
0 + 2.0000i 6.2832
» a4=b*c [Enter]
a4 =
3.4641 -6 4i 2 - 4i 14
16.0000 18 0 2 12
a 11 a 12 a 13
Înmulţirea a două matrici simbolice, A = a 21 a 22 a 23 şi
a 31 a 32 a 33
b 11 b 12 b 13
B = b 21 b 22 b 23 ., se realizează astfel:
b 31 b 32 b 33
» syms a11 a12 a13 a21 a22 a23 a31 a32 a33 b11 b12 b13 b21 b22 b23
b31 b32 b33;
» X=A*B
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
X=
[a11*b11+b21*a12+a13*b31,b12*a11+a12*b22+a13*b32,b13*a11+b23*a12+a13*b33]
[a21*b11+b21*a22+a23*b31,b12*a21+a22*b22+a23*b32,b13*a21+b23*a22+a23*b33]
[a31*b11+b21*a32+a33*b31,b12*a31+a32*b22+a33*b32,b13*a31+b23*a32+a33*b33]
ÎMPĂRŢIREA LA DREAPTA
Ex.:
1 2 5 6
Fie: a= ; b= ;
3 4
7 8
Să se calculeze:a/b; b/a.
Cu secvenţa MATLAB următoare, rezultă:
» a=[1,2;3,4];b=[5,6;7,8];
» a1=a/b [Enter]
a1 =
3.0000 -2.0000
2.0000 -1.0000
» a2=b/a [Enter]
a2 =
-1 2
-2 3
1 2 3 −3 2i 1 − 2i 7
Fie: a= ; b= .
3 4 8
9 0 1
6
a 11 a 12
Pentru împarţirea la dreapta, a două matrici simbolice, A = şi
a 21 a 22
B = [ b 1 b 2 ] , se procedează astfel:
» X=B/A
X=
[ -(a21*b2-b1*a22)/(a11*a22-a12*a21), (a11*b2-a12*b1)/(a11*a22-a12*a21)]
x 1 ⋅ a 11 + x 2 ⋅ a 12 = b 1
Soluţiile sistemului de ecuaţii: se obţin cu
x 1 ⋅ a 21 + x 2 ⋅ a 22 = b 1
următoarele comenzi
» x1 = X(1)
x1 =
-(a21*b2-b1*a22)/(a11*a22-a12*a21)
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» x2 = X(2)
x2 =
(a11*b2-a12*b1)/(a11*a22-a12*a21)
ÎMPĂRŢIREA LA STÂNGA
Ex.6:
1 2 5 6
Fie: A= ; B= ;
3 4
7 8
Să se calculeze:A\B; B\A.
Cu secvenţa MATLAB următoare, rezultă:
» A=[1,2;3,4];b=[5,6;7,8];
» A1=A\B [Enter]
A1 =
-3.0000 -4.0000
4.0000 5.0000
» A2=B\A [Enter]
A2 =
5.0000 4.0000
-4.0000 -3.0000
PRODUSUL KRONECKER
Produsul Kronecker este cea mai mare matrice formată din toate produsele
posibile realizate între elementele a două matrici (nu trebuie confundat “Produsul
Kronecker” cu “simbolul Kronecker” sau “delta Kronecker”, a cărei exprimare este
1 pentru i = k
dată de: δ ik = ). Această matrice este utilizată în calculul
0 pentru i ≠ k
tensorial, în teoria deformării elastice, în teoria deformării plastice, respectiv în
calculele aferente analizei cu elemente finite a proceselor de deformare plastică şi
elasto-vâsco-plastică a materialelor. Vectorii spaţiali, definiţi pe spaţiul cu trei
dimensiuni ℜ3 , reprezintă mărimi reale, de exemplu mărimi fizice, care conţin
trei informaţii (trei scalari). Descrierea unui vector v în baze diferite ai şi bi prin
coordonatele respective, nu schimbă valoarea sa intrinsecă (v se numeşte şi mărime
invariantă):
v = v ai ⋅ a i = v bi ⋅ b i
a corpului supus acţiunii unor forţe exterioare). Un scalar este tensor, dacă poate fi
scris ca produsul scalar u·v a doi vectori:
• Deviatorul tensiunilor:
σ − σ τ xy τ xz
x m
[ Dσ ] = τ yx σ y − αm τ yz ;
τ
zx τ zy σ z − σm
[ Tσ ] = [ S r ] + [ D σ ] ;
( )
• Invarianţii eforturilor unitare:
∆1 = σ x + σ y + σ z
22 2
∆ 2 x y y z z x τ−σσ+σσ+σσ= xy τ+ yz τ+ zx
Δ 3 =σ x σ y σ z 2σ x y σ y z σ z x−σ x σ −σ y σ −σ z σ
y z2 x z2 x y2
care, în funcţie de tensiunile normale principale σ1 , σ 2 , σ 3 , sunt :
∆ 1 = σ1 + σ 2 + σ 3
∆ 2 = σ 1σ 2 + σ 2 σ 3 + σ 3 σ 1
∆ 3 = σ 1σ 2 σ 3
1 1
ε x − ε m 2 γ xy 2
γ xz
1 1
[ Dε ] = γ yx ε y − ε m γ yz ;
2 2
1 1
2 γ zx 2
γ zy ε z − ε m
1 2 3
De exemplu, produsul Kronecker al două matrici X = ,
4 5 6
1 2
Y= este:
3 4
» X=[1,2,3;4,5,6]; Y=[1,2;3,4];
» kron(X,Y)
ans =
1 2 2 4 3 6
3 4 6 8 9 12
4 8 5 10 6 12
12 16 15 20 18 24
» kron(Y,X)
ans =
1 2 3 2 4 6
4 5 6 8 10 12
3 6 9 4 8 12
12 15 18 16 20 24
de c ori
Dacă b este un scalar iar c este o matrice atunci calculul puterii b c se
realizează folosind valorile proprii ale matricei c respectiv ale scalarului b.
Obs. Operaţia are sens numai dacă matricea b este pătratică iar c
un scalar.
Ex.7:
1 2
Fie: a= ; b=3;c= - 3. Să se calculeze:a^b; b^a; a^c
3 4
» a=[1,2;3,4];b=3;c= -3;
» a1=a^b [Enter]
a1 =
37 54
81 118
» a2=b^a [Enter]
a2 =
87.8864 127.1198
190.6797 278.5661
» a3=a^c [Enter]
a3 =
-14.7500 6.7500
10.1250 -4.6250
TRANSPUNEREA MATRICILOR
D = det(X)
Ex:
Să se calculeze determinanţii următoarelor matrici:
1 2 3
1 2 3 −3 2i 1 − 2i 7
A= B =
4 5 6
C = .
3 4
9
8 9 0 1 6
7 8
» B1 = det(B)
B1 = 0
» C1 = det(C)
» syms a b c d;
»D1= det([a, b; c, d])
» r = det(A)
r = 1/3
CALCULUL INVERSEI
Ex. :
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
2 1
Se cere inversa matricei: A = .
− 1 1
Cu secvenţa MATLAB următoare, rezultă:
» A = [2, 1 ; -1, 1] ;
» B = inv(A)
B=
0.3333 -0.3333
0.3333 0.6667
PSEUDO- INVERSA
»I=P*C
I=
1.0000 0.0000
0.0000 1.0000
în timp ce, produsul C*P este o matrice de ordinul 3x3, dar nu matricea unitate :
»Q=C*P
Q=
0.8293 -0.1958 0.3213
-0.1958 0.7754 0.3685
0.3213 0.3685 0.3952
RANGUL MATRICEI
Ex.:
3 2 −5 4
Să se determine rangul matricei A = 3 −1 3 − 3
.
3 5 − 13 11
Egalitatea din ultima relaţie, se obţine numai pentru anumiţi vectori δB . Aplicând
norma ambilor membri ai egalităţii A·x=B, se obţine :
B ≤A x ,
δx δB
≤ A A -1
x B
în care A-1 este matricea inversă a lui A, obţinută prin calcule (afectate de erori de
rotunjire, adică AA -1 ≠ I ). Astfel, pentru o matrice nesingulară A, pozitiv
definită, se defineşte numărul de condiţionare calculat ca raportul dintre cea mai
mare şi cea mai mică valoare proprie a acesteia :
λ1
cond .( A ) = A A -1 = ≥1
λ2
În aceste condiţii, relaţia de estimare a erorii soluţiei devine :
δx δB
≤ cond .( A ) ⋅
x B
δB
în care măsoară incertitudinea relativă existentă în vectorul B (de exemplu,
B
δB
dacă elementele vectorului B sunt date cu trei cifre semnificative, atunci B
δx
este de ordinul 10-3 sau 10-4), iar x
reprezintă incertitudinea relativă existentă
în vectorul x, şi este determinată de incertitudinea existentă în vectorul B.
Dacă, atât matricea A cât şi vectorul B sunt afectati de erori, atunci
sistemul se scrie sub forma :
( A + δA )( x + δx ) = B + δB ⇒ δx = ( A + δA ) −1 ( δB − δAx )
Dacă vectorul termenilor liberi este determinat exact şi neafectat de erori,
iar matricea A are coeficienţi perturbaţi de erori, atunci sistemul Ax=B devine :
( A + δA )( x + δx ) = B ,
de unde rezultă :
[
( x + δx ) = ( A + δA ) −1 B sau δx = ( A + δA ) −1 − A −1 B ]
Ultima relaţie, aranjată, devine :
δx = −A −1 ( δA )( x + δx ) ,
δx ≤ A -1 δA x +δx sau
δx δA
≤ cond. (A)
x +δx A
» cond(X)
O funcţie mai performantă care permite calculul numărului de condiţionare
este rcond() şi se apelează cu sintaxa:
» rcond(X)
În MATLAB:
• -numerele de condiţionare :
» C1=cond(A1); c2=cond(A2)
C1=1.7234e+004 c2=inf
» D1=condest(A1); d2=condest(A2)
D1=2,0845e+004 d2=2.7129e+017
» R1=rcond(A1); r2=rcond(A2);
R1=5.4453e-005 r2=4.1842-018
» X2=A2\B
X2=[-8.1041 7.0348]*1.0e+013
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
Ex.:
Se vor determina numerele de condiţionare pentru sistemul « iniţial » de ecuaţii:
45 x 1 + 23,123 x 2 = 2,34
x 1 + 15 x 2 = 3,45
respectiv pentru sistemul "perturbat":
45 x 1 + 23 ,124 x 2 = 2,34
x 1 + 15 x 2 = 3,45
» d1=condest(a1)
d1 =
4.8072
» r1=rcond(a)
r1 =
0.2435
» r2=rcond(a1)
r2 =
0.2434
» b=[2.34;3.45];
» x1=a\b
x1 =
-0.0685
0.2346
» x2=a1\b
x2 =
-0.0685
0.2346
FACTORIZAREA MATRICILOR
a 11 x 1 + a12 x 2 + + a 1n x n = b 1 a 11 a12 a 1n
a x + a x + + a x = b
21 1 22 2 2n n 2 a 21 a 22 a 2n
, în care A = , este
a n1 x1 + a n 2 x 2 + + a nn x n = b n
a n1 a n 2 a nn
x1 b1
x2 b2
matricea coeficienţilor; x = este vectorul necunoscutelor; B = este
xn b n
vectorul termenilor liberi, ai sistemului, metoda generală de transformare într-un
sistem echivalent, “Metoda de eliminare a lui Gauss”, se prezintă în continuare.
− a ( 1)
înmulţită cu ( 1) , obţinându-se un nou sistem de ecuaţii: ( 1)
A x = B ( 1) . În a
i1
a
11
doua transformare, se foloseşte a doua ecuaţie, din sistemul A ( 1) x = B ( 1 ) , înmulţită
− a ( 2)
cu ( 2 ) , pentru eliminarea necunoscutei x2 din ultimele n-2 ecuaţii ale acestui
i2
a
22
sistem, obţinându-se un nou sistem: A ( 2 ) x = B ( 2 ) . Se observă că înainte de
eliminarea necunoscutei xk, sistemul echivalent, obţinut după eliminarea
necunoscutelor x1, x2, …, xk-1, poate fi scris sub forma:
A ( k ) x = B ( k ) , k=1,2, …, n
a cărui descriere analitică este:
b( k)
1( k )
( ) b
A ( k ) = a (ik, j) , B ( k ) = 2 , iar elementele matricei A ( k ) sunt:
( k)
b n
( k −1)
a i , j , i ≤ k −1
( k)
a i , j = 0, k, ij≥≤ k - 1
a ( k −1)
a (i k, j−1) − i , k −1
− ak( k−−11, )j , i ≥ k, j ≥ k
( k −1 )
a k −1,k −1
, respectiv, elementele
b ( k − 1) , i≤ k−1
( k)
i ( k − 1)
b i = ( k − 1 ) a i ,k − 1 ( k − 1 )
bi − ( k − 1) b k − 1 , i≥k
a k − 1,k − 1
l 21 s 11 = a 21 ; l 31 s 11 = a 21 , , l n1 s 11 = a n1
k −1 k −1
j=1
∑ l kju j,k + u k ,k +1 = a kk
u k ,k = a k ,k −
j=1
l kju jk ∑
k −1 k −1
∑
j=1
l kju j,k +1 + u k ,k +1 = a k ,k +1
u k ,k +1 = a k ,k +1 −
j=1
l kju j,k +1∑
k −1 k −1
∑ l kju jn + u kn = a kn
u kn = a kn − l kju jn ∑
j=1 j= 1
Elementele coloanei k a matricei L (inferioare diagonalei principale), sunt
date de ecuaţiile:
1
k −1
k −1
∑ l k +1, j u j,k + l k +1,k u k ,k = a k +1,k l
k +1,k
=
u k ,k
a
k +1,k − ∑ l u
k +1, j jk
j=1 j=1
k −1 k −1
∑ 1
l k + 2, j u j,k + l k + 2,k u k ,k = a k + 2,k l k + 2 ,k =
u k ,k
a k + 2 ,k − ∑ l k + 2, j u jk
j=1
j=1
k −1
k −1
∑ l n , j u j,k + l n ,k u k ,k = a n ,k l n ,k = 1 a n ,k −
u k ,k ∑ l n , j u jk
j=1 j=1
S=L’*L
L=chol(S)
[L,P]=chol(S)
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» S=pascal(7)
S=
1 1 1 1 1 1 1
1 2 3 4 5 6 7
1 3 6 10 15 21 28
1 4 10 20 35 56 84
1 5 15 35 70 126 210
1 6 21 56 126 252 462
1 7 28 84 210 462 924
» L=chol(S)
L=
1 1 1 1 1 1 1
0 1 2 3 4 5 6
0 0 1 3 6 10 15
0 0 0 1 4 10 20
0 0 0 0 1 5 15
0 0 0 0 0 1 6
0 0 0 0 0 0 1
Rt·R·X=B
RtY=B şi RX=Y.
9 1 −1 0
1 9 0 − 1
A =
− 1 0 9 1
0 −1 1 9
Cu secvenţa MATLAB următoare, rezultă:
»A=[9,1,-1,0;1,9,0,-1;-1,0,9,-1;0,-1,1,9];
» [r,p]=chol(A)
r=
3,0000 0,3333 − 0,3333 0
0 2,9814 0,0373 − 0,3354
0 0 2,9812 0,3396
0 0 0 2,9618
p=0 (matrice pozitiv definită)
x + 2y + z + t = 1
2x + y + 3z + 3t = −2
Temă:Să se rezolve sistemul: prin factorizare Choleski.
x + y + z + t = −1
2x + 7 y + 2z + 3t = 4
Ex.:
1 2 3
4
Să se factorizeze matricea A = 5 6
prin metoda lower-upper.
7 8 0
Cu secvenţa MATLAB
»A=[1,2,3;4,5,6;7,8,0];
»[L]=lu(A)
L=
7.0000 8.0000 0
0.1429 0.8571 3.0000
0.5714 0.5000 4.5000
»[L,U]=lu(A)
L=
0,1429 1,0000 0
Matricea
0,5714 0,5000 1,0000 triunghiulară
1,0000 0 0 permutată
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
U=
7,0000 8,0000 0
Matricea
0 0,8571 3,0000 superior
0 0 4,5000 triunghiular
» [L,U,P]=lu(A)
L=
1.0000 0 0
0.1429 1.0000 0
0.5714 0.5000 1.0000
U=
7.0000 8.0000 0
0 0.8571 3.0000
0 0 4.5000
P=
0 0 1
1 0 0
0 1 0
» A=[1,-2,3;4,0,6;2,-1,3];
» [L]=lu(A)
L=
4.0000 0 6.0000
0.2500 -2.0000 1.5000
0.5000 0.5000 -0.7500
» [L,U]=lu(A)
L=
0.2500 1.0000 0
1.0000 0 0
0.5000 0.5000 1.0000
U=
4.0000 0 6.0000
0 -2.0000 1.5000
0 0 -0.7500
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» [L,U,P]=lu(A)
L=
1.0000 0 0
0.2500 1.0000 0
0.5000 0.5000 1.0000
U=
4.0000 0 6.0000
0 -2.0000 1.5000
0 0 -0.7500
P=
0 1 0
1 0 0
0 0 1
Rezolvarea sistemelor de ecuaţii AX=B prin factorizarea lower upper
presupune următoarele etape:
»[L,U]=lu(A);
x − 2y + 3z = 1
4x + 6z = − 2 , se foloseşte următoarea secvenţă MATLAB:
2x − y + 3z = − 1
»A=[1,-2,3;4,0,6;2,-1,3];B=[1;-2;-1];
»[L,U]=lu(A);X=U\(L\B)
»[L,U,P]=lu(C); X=U\(L\B)
X=
-0.5000
1.5000
0.5000
x − 2y + 3z = 1
4x + 6z = − 2 , se foloseşte următorul model Simulink :
2x − y + 3z = − 1
FACTORIZAREA q-r
»A=[1,2,3;4,5,6;7,8,0];
» [Q,R]=qr(A)
Q=
-0.1231 0.9045 0.4082
-0.4924 0.3015 -0.8165
-0.8616 -0.3015 0.4082
R=
-8.1240 -9.6011 -3.3235
0 0.9045 4.5227
0 0 -3.6742
1. Y=(Q-1)*B
2. X=R\Y
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
»[Q,R]=qr(A); X=R\(inv(Q)*B)
x − 2y = −2
x + 2y = 3
De exemplu, soluţia sistemului liniar , se obţine, folosind
3x − y = 7
2x + y = 11
următoarea secvenţă:
» A=[1,-2;1,2;3,-1;2,1]; B=[-2;3;7;11]; [Q,R]=qr(A);
» X=R\(inv(Q)*B)
X=
3.0470
1.7047
» A=[1,-2,1,-1;2,-1,3,-3;1,1,1,-1;2,7,2,8]; B=[1;6;7;0];
[Q,R]=qr(A);
» X=R\(inv(Q)*B)
X=
7.0000
2.0000
-4.4000
-2.4000
Vectorul X conţine rădăcinile sistemului: X={x,y,z,t}, x=7; y=2; z=-4,4;
t=-2,4.
a 11 − λ a 12 a 13 a 1n x1
a a 22 − λ a 23 a 2n
21 x 2
a 31 a 32 a 33 − λ a 3n x 3 = 0
a a n2 a n3 a nn − λ x n
n1
unde A este o matrice simetrică reală, x este vectorul variabilelor independente iar
λ un parametru scalar denumit valoare caracteristică sau valoare proprie.
Problema rezolvării sistemului constă în determinarea parametrului λ şi a
vectorului x corespunzător, vector cunoscut sub denumirea de vector caracteristic
sau vector propriu.
În determinarea soluţiilor nebanale ale sistemului de ecuaţii :AX=λX, unde :
A – este matrice pătratică de ordinul n,
X – este vector coloană de ordinul n,
λ - este un scalar,
valorile X, respectiv λ, care satisfac ecuaţia de mai sus se numesc vectori proprii,
respectiv valori proprii.
Pentru a evidenţia semnificaţia fizică a valorilor şi vectorilor proprii se
consideră următoarele exemple.
d x12
m1 = − k x
1 1 + k (
2 2x − x 1
)
d t2
2
dx
m 2 22 = − k 2 ( x 2 − x1 ) − k 3 x 2
dt
unde x 1 , x 2 sunt deplasările pe orizontală faţă de starea de echilibru, iar t este
timpul.
Pentru oscilaţiile naturale sistemul va oscila la o frecvenţă unică ωn ,
obţinându-se oscilaţii sinusoidale de amplitudine y şi unghi de defazaj θ. În acest
caz expresiile celor două deplasări sunt:
x 1 = y 1 sin(ω n t − θ ), x 2 = y 2 sin(ω n t − θ )
− m1ω n2 y 1 − k 1 y 1 + k 2 y 1 − k 2 y 2 = 0
2
− m 2 ω n y 2 − k 2 y 2 + k 3 y 2 − k 2 y 1 = 0
Pentru m 1 = m 2 = m, k 1 = k 2 = k 3 = k şi frecvenţa adimensională λ = mωn2 / k ,
sistemul devine:
( 2 − λ )y 1 − y 2 = 0
− y 1 + ( 2 − λ )y 2 = 0
Sistemul omogen, în necunoscutele y 1 , y 2 , are soluţia banală
y 1 = y 2 = 0 , pentru orice valoare λ, fapt neinteresant din punct de vedere fizic.
Astfel se impune condiţia ca det A ≠ 0 (A fiind matricea sistemului), rezultând
ecuaţia polinomială în λ :
2 − λ −1
P2 ( λ ) ≡ det ≡ λ2 − 4λ + 3 = 0; λ 1 = 1, λ 2 = 3
−1 2 − λ
1 2
y(1) 1 (2) y1
y = → 1, y =λ → λ2
1 2
y2 y2
Din punct de vedere fizic, y 1 şi y 2 reprezintă frecvenţe naturale în
forma adimensională pentru sistemul considerat:
mω 12
λ1 = = 1, ω 1 = k / m
k
mω 22
λ2 = = 3, ω 2 = 3k / m
k
1 şi y 2 pentru λ 1 = 1 şi în
Dacă se rezolvă sistemul omogen în y 1 1
V=eig(A)
V=eig(A,B)
[V,D]=eig(A)
[V,D]=eig(A,B)
[V,D]=eig(A,'nobalance')
Dacă matricea are valori proprii de ordinul întâi (valorile proprii λ sunt
distincte), atunci vectorii proprii sunt independenţi. Dacă vectorii proprii nu sunt
independenţi, atunci matricea originală nu este neregulată. Chiar dacă o matrice
este neregulată, soluţia funcţiei eig() satisface ecuaţia:
A*X=X*D
AX=λBX
unde A şi B sunt matrici pătratice de ordinul n, iar λ este un scalar. Valorile lui λ
care satisfac ecuaţia se numesc valori proprii generalizate şi valorile X
corespunzătoare sunt vectorii proprii generalizaţi. Dacă B este o matrice
nesingulară (det(B)≠0, adică matricea este inversabilă), problema calculului
valorilor şi vectorilor proprii se reduce la o problemă standard cu valori proprii prin
înlocuirea lui A cu B-1A, întrucât ecuaţia este echivalentă cu:
B-1AX=λX
» V=eig(A,B)
» [V,D]=eig(A,B)
»A=[2,-1,0;-1,2,-1;0,-1,2]
»[V,D]=eig(A)
V=
0.5000 -0.7071 -0.5000
0.7071 0.0000 0.7071
0.5000 0.7071 -0.5000
D=
0.5858 0 0
0 2.0000 0
0 0 3.4142
»V=eig(A)
V=
0.5858
2.0000
3.4142
B.—pentru cel de-al doilea sistem :
»A=[2,-1;-1,2];
» [V,D]=eig(A)
V=
-0.7071 -0.7071
-0.7071 0.7071
D=
1 0
0 3
»V=eig(A)
V=
1
3
A⋅V = U⋅Σ
AT ⋅ U = V ⋅ Σ
A = U ⋅ Σ⋅ V T
Ex. :
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
1 5
Să se descompună, în valori singulare, matricea A =
4 3
Rezolvare : Cu secvenţa MATLAB
» A=[1 5; 4 3];
» D=svd(A)
D=
6.6713
2.5482
» [U,S,V]=svd(A)
U=
-0.7163 -0.6977
-0.6977 0.7163
S=
6.6713 0
0 2.5482
V=
-0.5257 0.8507
-0.8507 -0.5257
Ex. :
1 7
5
3
, în valori singulare, folosind toate
Să se descompună matricea A =
8 1
4 9
variantele de apelare ale funcţiei MATLAB svd().
Rezolvarea este imediată, cu următoarea secvenţă:
» A=[1,7;5,3;8,1;4,9]
» D=svd(A)
D=
13.8259
7.4058
» [U,S,V]=svd(A)
U=
-0.4445 0.4723 -0.0336 -0.7604
-0.3930 -0.2855 -0.8693 0.0909
-0.4116 -0.7711 0.4125 -0.2566
-0.6917 0.3176 0.2701 0.5897
S=
13.8259 0
0 7.4058
0 0
0 0
V=
-0.6126 -0.7904
-0.7904 0.6126
» [U,S,V]=svd(A,0)
U=
-0.4445 0.4723
-0.3930 -0.2855
-0.4116 -0.7711
-0.6917 0.3176
S=
13.8259 0
0 7.4058
V=
-0.6126 -0.7904
-0.7904 0.6126
APLICAŢII
1:
e4 2 lg 8 7 5 ln 6
Fie: a= 4 5 ; b= 3 ; c=2.
3 e lg 4 lg 7 8
Să se calculeze:a+b; a-b;a+c.
2:
π 3 3
3 21 sin 20 sin 5 2 4
Fie: m= log 3 5 ; n= 3
log 8 6
arctg 3 e 1 − e log5 7
e ln 7
6
Să se calculeze: M=m+n
3:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
1 2
4 7 3
3 45 5
− 35 2i 1 − 2i 7e log 6 8
Fie: a= 3 ;b= 4 ;
5 8 82 9 0 1 log 54 6
log4π 6
sin 61 3
c=2.
Să se calculeze produsele : ab; ba; ac; bc.
4:
1 ln 2 sin 5 tg 6
Fie: a= log 5 9 ; b= ;
lg 3 4e log 5 7 ln 8
Să se calculeze:a/b; b/a.
5:
1 2e 5 6 3 −7 3 2i 1 − 2i 7e
Fie: a= ; c= .
ln 3 lg 4 5 8 4
9 0 1 log 43 6
Să se calculeze câtul : d=a/b.
6:
1 2 log 6 7 5 3 − 5 log 4 6
Fie: a= 3 ; b= ;
3 4e 7 8
Să se calculeze:a\b; b\a.
7:
1 2e ln 6
Fie: a= 5 ; b=3;c= - 3
3 ln 4
Să se calculeze:a^b; b^a; a^c
1 4
2 3 ln 5
e 2e 5
A = 3 lg 5 B = 7 4 e ln 6
3 4e lg 6 7e
84 e 9
3 −3 2i 1 − 2i 7
C = .
8 9 0 1 6
9:
3 log 85 9
2e 10 ln 4
Calculaţi inversa matricei: A = .
− 11e 12 log 6 9
10:
5 3 2 −5 6
4
Să se determine rangul matricei A = 3 63 −1 23 − 3 .
5 13 5 − 13 11
11:
Să se descompună, prin factorizare Choleski, Lower-Upper, respectiv,
QR, matricile:
1 4
2 3 ln 5
e 2e 5
A = 3 lg 5 B = 7 4 e ln 6
3 4e lg 6 7e
84 e 9
3 −3 2i 1 − 2i 7
C =
8 9 0 1 6
12:
Să se rezolve, folosind metodele de factorizare Choleski, Lower-Upper,
respectiv, QR, următoarele sisteme de ecuaţii lineare:
x − 2y + z − t + 2u = 1
3 x + 2 y − z = 1 0 2x − y + 3z − 3t − u = 6
− x + 3y + 2z = 5 ;
x − y − z = − 1 x + y + z − t + 3u = 7
2x + 7y + 2z + 8t − 2u = 0
13:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
6x − 2y + z − 3t = 21 9 x 1 − x 2 + 2x = 1
3
2x − 3y + z − 3t = 11
−
1x + 8 x 2 − 5 x 3 = −2
5x + 7 y + 3z − 2t = 8 2x − 5x + 7 x = −1
2x + y + 2z + 4t = 10 1 2 3
14:
Să se găsească valorile şi vectorii proprii ai matricelor
9 1 −1 0
1 −1 2 1 2 3 1
9 0 −1
A =
− 1 8 − 5
B =
4 5 6
C =
− 1 0 9 1
2 −5 7
7 8 0
0 −1 1 9
CAPITOLUL III
» n = (0:9)';
STRUCTURI MULTIDIMENSIONALE
» R = randn(3,4,5)
R(:,:,1) =
0.0000 -1.8740 0.7310 0.6771
-0.3179 0.4282 0.5779 0.5689
1.0950 0.8956 0.0403 -0.2556
R(:,:,2) =
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
R(:,:,3) =
0.2120 -0.7420 0.3899 -0.5596
0.2379 1.0823 0.0880 0.4437
-1.0078 -0.1315 -0.6355 -0.9499
R(:,:,4) =
0.7812 -0.2656 0.9863 0.2341
0.5690 -1.1878 -0.5186 0.0215
-0.8217 -2.2023 0.3274 -1.0039
R(:,:,5) =
-0.9471 -1.0559 -1.2173 -1.3493
-0.3744 1.4725 -0.0412 -0.2611
-1.1859 0.0557 -1.1283 0.9535
iar cu secvenţa:
» p = perms(1:4); A = magic(4); M = zeros(4,4,24);
» for k = 1:24
M(:,:,k) = A(:,p(k,:))
End
• pentru înmulţire- “ .* ”
• pentru împărţire – “ ./ “ sau “ .\ “
• pentru ridicare la putere – “ .^ “
ADUNAREA ŞI SCĂDEREA
TABLOURILOR DE VALORI
Ex.11:
1 2 3 − 1 8 π
Fie : a = , b= , c=10, d=
4 5 6 9 5 3
37 e
2 .
e 6
ln 3 − 8
» a=[1,2,3;4,5,6];b=[-1,8,pi;9,sqrt(5),3];c=10;
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» d=[7^(1/3),exp(1);exp(2)/(log(3)-8),6]
» A=a-b [Enter]
A=
2.0000 -6.0000 -0.1416
-5.0000 2.7639 3.0000
» B=a-c [Enter]
B=
-9 -8 -7
-6 -5 -4
» C=c-a [Enter]
C=
9 8 7
6 5 4
» D=c-b [Enter]
D=
11.0000 2.0000 6.8584
1.0000 7.7639 7.0000
» E=a+d Enter]
În cazul E=a+d, MATLAB returnează un mesaj de eroare, întrucât nu este
îndeplinită condiţia de corespondenţă a dimensiunilor celor doi operanzi:
»E= a+d
??? Error using ==> +
Matrix dimensions must agree..
??? Eroare la utilizarea operatorului « + »
Matricile trebuie să aibă aceleaşi dimensiuni
Ex.:
1 2 3 − 1 8 π
Fie : a = , b= , c=10,
4 5 6
9 5 3
37 e
d= 2 .
e 6
ln 3 − 8
Să se calculeze: produsele:ab;ac;ca;cb; ad
» A=a.*b [Enter]
A=
-1.0000 16.0000 9.4248
36.0000 11.1803 18.0000
» B=a.*c [Enter]
B=
10 20 30
40 50 60
» C=c.*a [Enter]
C=
10 20 30
40 50 60
» D=c.*b [Enter]
D=
-10.0000 80.0000 31.4159
90.0000 22.3607 30.0000
» E=a.*d
??? Error using ==> .*
Matrix dimensions must agree.
??? Eroare la utilizarea operatorului « + »
Matricele trebuie să aibă aceleaşi dimensiuni
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
Ex.:
1 2 3 − 1 8 π
Fie : a = , b= , c=10.
4 5 6 9 5 3
Să se calculeze: a:b;a:c;c:a;c:b.
Rezolvare:
Cu secvenţa MATLAB următoare, rezultă:
» a=[1,2,3;4,5,6]; b=[-1,8,pi;9,sqrt(5),3]; c=10;
» d=a./b [Enter]
d=
-1.0000 0.2500 0.9549
0.4444 2.2361 2.0000
» e=a./c[Enter]
e=
0.1000 0.2000 0.3000
0.4000 0.5000 0.6000
» f=c./a [Enter]
f=
10.0000 5.0000 3.3333
2.5000 2.0000 1.6667
» g=c./b [Enter]
g=
-10.0000 1.2500 3.1831
1.1111 4.4721 3.3333
Ex.:
1 2 3 − 1 8 π
Fie : a = , b= , c=10.
4 5 6 9 5 3
Să se calculeze:a.\b;a.\c;c.\a;c.\b.
Soluţie:
» e=a.\c [Enter]
e=
10.0000 5.0000 3.3333
2.5000 2.0000 1.6667
» f=c.\a [Enter]
f=
0.1000 0.2000 0.3000
0.4000 0.5000 0.6000
» g=c.\b [Enter]
g=
-0.1000 0.8000 0.3142
0.9000 0.2236 0.3000
RIDICAREA LA PUTERE A
TABLOURILOR DE VALORI
corespunzătoare din matricea C: adică elementul A(i,j) este obţinut prin ridicarea la
puterea C(i,j) a elementului B(i,j).
Ex.:
1 2 3 − 1 8 π
Fie : a = , b= , c=10.
4 5 6 9 5 3
Să se calculeze : ab; ac; ca; cb.
Rezolvare:
» e=a.^c [Enter]
e=
1 1024 59049
1048576 9765625 60466176
» f=c.^a [Enter]
f=
10 100 1000
10000 100000 1000000
» g=c.^b [Enter]
g=
Ex.:
1 3 π −6 0
Să se determine transpusa tabloului a = .
i 3 − 2i 1 + 11 7 9
ŞIRURI DE CARACTERE;
MATRICI DIN ŞIRURI DE CARACTERE
CREAREA MATRICIOR CU
ŞIRURI DE CARACTERE
coduri_ASCII_ majuscule =
Columns 1 through 11
65 66 67 68 69 70 71 72 73 74 75
Columns 12 through 22
76 77 78 79 80 81 82 83 84 85 86
Columns 23 through 25
87 88 90
» nume='Popescu J. Eduard'
nume =
Popescu J. Eduard
» whos nume
Name Size Bytes Class
» Nume_si_Functia=strcat(nume,',',functia)
Nume_si_Functia =
Popescu J. Eduard,Director General Adjunct
» whos Nume_si_Functia
Name Size Bytes Class
ans 1x42 84 char array
Grand total is 42 elements using 84 bytes
» whos numele_si_functia
Name Size Bytes Class
numele_si_functia 2x24 96 char array
Grand total is 48 elements using 96 bytes
Cod Caracter Cod Caracter Cod Caracter Cod Caracter Cod Caracter
0. (zero) 27. → 54. 4 81. N 108. h
1. ☺ 28. ← 55. 5 82. O 109. i
2. ☻ 29. └ 56. 6 83. P 110. j
3. 30. ↔ 57. 7 84. Q 111. k
4. 31. 58. 85. 112.
5. ◊ 32. ▲ 59. 8 86. R 113. l
6. ♣ 33. ▼ 60. 9 87. S 114. m
7. ♠ 34. (blank) 61. : 88. T 115. n
8. ● 35. ! 62. ; 89. U 116. o
9. ◘ 36. " 63. < 90. V 117. p
10. ○ 37. # 64. = 91. W 118. q
11. ◙ 38. $ 65. > 92. X 119. r
12. ♂ 39. % 66. ? 93. Y 120. s
13. ♀ 40. & 67. @ 94. Z 121. t
14. ♪ 41. ' 68. A 95. [ 122. u
15. ♫ 42. ( 69. B 96. \ 123. v
16. ☼ 43. ) 70. C 97. ] 124. w
17. ► 44. * 71. D 98. ^ 125. x
18. ◄ 45. + 72. E 99. _ 126. y
19. ↨ 46. , 73. F 100. ` 127. z
20. ‼ 47. - 74. G 101. a 128. {
21. ¶ 48. . 75. H 102. b 129. |
22. § 49. / 76. I 103. c 130. }
23. ― 50. 0 77. J 104. d 131. ~
24. ↕ 51. 1 78. K 105. e 132. ∆
25. ↑ 52. 2 79. L 106. f
26. ↓ 53. 3 80. M 107. g
» nume_si_functia_numeric=double(nume_si_functia)
nume_si_functia_numeric =
Columns 1 through 12
80 111 112 101 115 99 117 32 74 46 32 69
68 105 114 101 99 116 111 114 32 71 101 110
Columns 13 through 24
100 117 97 114 100 32 32 32 32 32 32 32
101 114 97 108 32 65 100 106 117 110 99 116
Se observă că matricea “nume_si_functia” (cu 2 linii şi 24 coloane) a
fost convertită într-o matrice cu aceleaşi dimensiuni dar în reprezentare numerică,
nume_si_functia_numeric. De exemplu, pentru verificare, se poate folosi
următoarea secvenţă:
»valoarea_numerica_a_literei_P=double('P')
valoarea_numerica_a_literei_P =
80
»valoarea_numerica_a_literei_o=double('o')
valoarea_numerica_a_literei_o =
111
Pentru revenirea la forma anterioară (matrice cu caractere) se foloseşte
secvenţa:
» nume_si_functia=char(nume_si_functia_numeric)
nume_si_functia =
Popescu J. Eduard
Director General Adjunct
» char(65:75)
ans =
ABCDEFGHIJK
» char(ones(4,20)*double('#'))
ans =
####################
####################
####################
####################
Astfel, dacă :
» p=’m’;
atunci expresia:
» p+2
returnează rezultatul:
ans =
111
» char(p+1)
ans =
n
» double('<')/double('x')
ans =
0.5000
»s1='ann'; s2='ban';
»s1<s2
ans =
1 0 0
În acest exemplu, caracterul de pe prima poziţie, din şirul s1 are “valoare”
mai mică decât caracterul corespunzător din şirul s2, rezultatul afişat fiind, în
consecinţă “1”, în timp ce, celelalte “elemente ” ale şirului s1 sunt mai mari sau
egale decât “valorile” caracterelor de pe poziţiile corespunzătoare ale şirului s2,
rezultatul afişat fiind “0”, întrucât rezultatul comparării este fals.
Dacă şirurile nu au aceeaşi dimensiune (acelaşi număr de caractere),
folosirea operatorilor relaţionali este improprie, MATLAB afişând un mesaj de
eroare :
» s3='anna'; s2='ban';
» s3>s2
» strcmp(s2,s3)
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
ans =
0
» numesiadresa(1:3)
ans =
A2N
» numesiadresa(1:4)
ans =
A2Nl
» numesiadresa(1:20)
ans =
A2Nl1eb weB rrYtuo x
» s='x=-b/(2*a)';b=8;a=7;
» eval(s)
x=
-0.5714
» x=0:0.01:10;
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
exp(-0.5*x).*sin(x);
» plot(x,eval(f)),grid
» student.legitimatie='JUANCA0123';
» student.calificative=[7 9 6 5];
» student
student =
nume: 'Juan Antonio Cajigal'
legitimatie: 'JUANCA0123'
calificative: [7 9 6 5]
» student.calificative(2)
ans =
9
» student.calificative(4)
ans =
5
» student(2).nume='Luis Jimenez';
» student(2).legitimatie='LUJIM0012';
» student(2).calificative=[7 5];
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» student(1)
ans =
nume: 'Juan Antonio Cajigal'
legitimatie: 'JUANCA0123'
calificative: [7 9 6 5]
»student
student =
1x2 struct array with fields:
nume
legitimatie
calificative
» cursuri(1).grupa(1:2).nume
ans =
Juan Antonio Cajigal
ans =
Luis Jimenez
Pentru ştergerea sau anularea unor câmpuri ale structurii create se foloseşte
funcţia MATLAB rmfield().
STRUCTURI CELULARE
Definirea celulelor
Indexare:
Considerând că structura “student”, creată în paragraful anterior, există
stocată în memoria calculatorului, se poate defini o structură celulară (“2x2”) prin
atribuirea datelor din celulele specificate:
» c(1,1)={rand(3)};
» c(1,2)={char('Bonzai','Makay')};
» c(2,1)={13};
» c(2,2)={student};
»c
c=
[ 3x3 double ] [ 2x6 char ]
[ 13] [ 1x2 struct ]
»cellplot(c)
»celldisp(c)
c{1,1} =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
c{2,1} =
13
c{1,2} =
Bonzai
Makay
c{2,2} =
1x2 struct array with fields:
nume
legitimatie
calificative
» c{1}
ans =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» c{1}(2,3)
ans =
0.0185
În mod similar, sunt afişate celelalte celule ale structurii celulare “c”:
» c{2}
ans =
13
» c{3}
ans =
Bonzai
Makay
» c{4}
ans =
1x2 struct array with fields:
nume
legitimatie
calificative
» A(:,:,2)= [1 0 4; 3 5 6; 9 8 7]
A(:,:,1) =
5 7 8
0 1 9
4 3 6
A(:,:,2) =
1 0 4
3 5 6
9 8 7
B). Generarea structurilor multidimensionale prin funcţii MATLAB
retea_arbitrara(:,:,2) =
-0.4650 1.0378 1.9574 1.1902 0.0860
0.3710 -0.3898 0.5045 -1.1162 -2.0046
0.7283 -1.3813 1.8645 0.6353 -0.4931
2.1122 0.3155 -0.3398 -0.6014 0.4620
-1.3573 1.5532 -1.1398 0.5512 -0.3210
-1.0226 0.7079 -0.2111 -1.0998 1.2366
B(:,:,2) =
1 3 3 5
4 7 9 7
» a = magic(3); b = pascal(3); c = cat(2,a,b)
c=
8 1 6 1 1 1
3 5 7 1 2 3
4 9 2 1 3 6
» a = magic(3); b = pascal(3); c = cat(5,a,b)
c(:,:,1,1,1) =
8 1 6
3 5 7
4 9 2
c(:,:,1,1,2) =
1 1 1
1 2 3
1 3 6
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
APLICAŢII
[1]:
e2 2e 3 ln 5 −1 8e π 2
Fie: a = 4 , b = ,c=2
4 6 5 6e lg 5 5
9 log 4 7 5 6
3
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
37 e
d= 2
e 6
ln 3 − 8
[2]:
0,1 2π 3 − 5 −1 8 5 π 3
Fie: a = 5 , b = lg 7 log 4 7 ,
4 5 6 ln 4
9 5 3e
37 e
2 .
c=10, d= e
6
ln 3 − 8
Să se calculeze: produsele:ab;ac;ca;cb; ad
[3]:
1 2 3 − 1 8 π
Fie : a = , b= , c=10.
4 5 6
9 5 3
Să se calculeze: a:b;a:c;c:a;c:b.
[4]:
1 2 3 − 1 8 π
Fie : a = , b= , c=10.
4 5 6 9 5 3
Să se calculeze:a.\b;a.\c;c.\a;c.\b.
[5]:
1 2 3 − 1 8 π
Fie : a = , b= , c=10.
4 5 6 9 5 3
Să se calculeze : ab; ac; ca; cb.
[6]:
1 3 π −6 0
Să se determine transpusa tabloului a = .
i 3 − 2i 1 + 11 7 9
CAPITOLUL IV
-expresie_1
matricele sau expresiile matriceale care se compară ;
-expresie_2-
Ex.:
1 2 3
Să se compare elementele matricei A = 4 5 6 cu scalarul B = e 2 − log 3 5 .
7 8 9
Folosind secvanţa MATLAB următoare:
» A=[1,2,3;4,5,6;7,8,9]; B=exp(2)-log(5)/log(3);
» A<=B
ans =
1 1 1
1 1 0
0 0 0
» A>=B
ans =
0 0 0
0 0 1
1 1 1
» A==B
ans =
0 0 0
0 0 0
0 0 0
» A~=B
ans =
1 1 1
1 1 1
1 1 1
Ex.:
− 1 2 4 2 −1 3
5 şi B =
Să se compare matricele A = 3 0 3 −2 2
.
2 1 3
5 −4 1
Cu secvenţa MATLAB următoare, rezultă:
» A=[-1,2,4;3,0,5;2,1,3];B=[2,-1,3;3,-2,2;5,-4,1];
se obţin rezultatele:
» A<B
ans =
1 0 0
0 0 0
1 0 0
» A<=B
ans =
1 0 0
1 0 0
1 0 0
» A>B
ans =
0 1 1
0 1 1
0 1 1
» A>=B
ans =
0 1 1
1 1 1
0 1 1
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» A==B
ans =
0 0 0
1 0 0
0 0 0
» A~=B
ans =
1 1 1
0 1 1
1 1 1
OPERATORI LOGICI
PRECEDENŢA OPERATORILOR
1|0&0=0
0&0|1=1
CUVINTE CHEIE
MATLAB rezervă o listă de cuvinte cheie, listă care poate fi afişată, pentru
evitarea erorilor de evaluare şi de redactare a expresiilor logice, cu funcţia
iskeyword, în linia de comandă MATLAB:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» [Cuvinte_cheie]=iskeyword
Cuvinte_cheie =
'break'
'case'
'catch'
'continue'
'else'
'elseif'
'end'
'for'
'function'
'global'
'if'
'otherwise'
'persistent'
'return'
'switch'
'try'
'while'
INSTRUCŢIUNILE “if “, “else”, “elseif”
b) if expresie_logică_1
grup_de_instrucţiuni_A
else
grup_de_instrucţiuni_B
end
c) if expresie_logică_1
grup_de_instrucţiuni_A
elseif expresie_logică_2
grup_de_instrucţiuni_B
end
d) if expresie_logică_1
grup_de_instrucţiuni_A
elseif expresie_logică_2
grup_de_instrucţiuni_B
else
grup_de_instrucţiuni_C
end
if A if A
x=a x=a
else elseif B
if B x=b
x=b elseif C
else x=c
if C else
x=c x=d
else end
x=d
end
end
end
e x−3 − 4 dac ă − 6 ≤ x < −4
2 3
4
f = log 5
x + 2 + x + 3
dac ă − 4 ≤ x ≤ 10 , pentru valorile întregi
π 5
3
2
−4
dac ă 10 < x ≤ 15
0,456 ex +5
ale
variabilei x.
Se va folosi următoarea secvenţă MATLAB (pentru simplificare se va utiliza
funcţia length(x) şi o buclă repetitivă for, care va fi prezentată în secţiunea
următoare):
» x=-6:15;
» for k=1:length(x)
if x(k)<-4
f(k)=exp(x(k)-3)-4
elseif (x(k)>=-4)&(x(k)<=10)
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
f(k)=(log(x(k)^2+(2+sqrt(x(k)^4+3))^(1/3)))
else
f(k)=det([pi,3^(1/5);0.456,exp(x(k)^2-4)])
end
end
f=
1.0e+096 *
Columns 1 through 7
-0.0000 -0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
INSTRUCŢIUNEA DE CICLARE « for »
for index=expresie
grup_de_instrucţiuni
end
în care :
index –reprezintă contorul de iterare
expresie- este o matrice, un scalar sau, de cele mai multe ori, o
expresie de forma :
“De la …” “Până la …”
se prezintă aici numai valoarea « finală » a expresiei f, valorile intermediare fiind omise,
pentru acurateţea prezentării
4) –dacă expresia este de forma : »valoare iniţială « : « pas » :
« valoare finală », iar pasul are valoare pozitivă, atunci valoarea
iniţială trebuie sa fie mai mică decât valoarea finală ;
5) –dacă expresia este de forma : »valoare iniţială « : « pas » :
« valoare finală », iar pasul are valoare negativă, atunci valoarea
iniţială trebuie sa fie mai mare decât valoarea finală ;
6) –dacă expresia este de forma : »valoare iniţială « : « valoare
finală », atunci pasul de indexare este, implicit, 1 (unu).
Ti + 1 = Ti − K ⋅ dt ⋅ ( Ti − Tf )
K = 0.05;
Tf = 10; %temperatura finala
a = 0; % momentul initial
b = 100; % intervalul de timp
Timp_initial = a; % initializarea intervalului de timp
T = 25; % initializarea temperaturii
dt = input( 'dt: ' ); % intervalul de calcul (pasul)
Intervalul_de_afisare = input('Afisarea rezultatelor la interval de
(minute):' );
if Intervalul_de_afisare/dt ~= fix(Intervalul_de_afisare/dt)
disp( 'Intervalul de afisare nu este un multiplu de dt !' );
end
format bank
disp( ' Timp Temperatura' );
disp( [Timp_initial T] ) % afiseaza momentul actualizarii si temperatura
for Timp_actualizare = a+dt : dt : b
T = T - K * dt * (T - Tf);
if abs(rem(Timp_actualizare, Intervalul_de_afisare)) < 1e-6
disp( [Timp_actualizare T] )
end
end
%FINAL PROGRAM
e m + 2 d aca m ∈ [ − 10,2]
b) g = − 2 daca m ∈ ( 2,8] cu pasul de indexare de –0,3.
( )
log m − 7 5 + 19 d aca m ∈ ( 8,25]
3
2
a) Cu sintaxa Matlab :
» x=-2*pi:0.1:2*pi;
» f=sin(x);
» plot(x,f)
se obţin valorile funcţiei f, care vor fi afişate dacă se tastează, în linia de comandă,
numele acesteia, şi, într-o fereastră grafică Figure 1 reprezentarea funcţiei f :
1
0
.
8
0
.
6
0
.
4
0
.
2
-
0
.2
-
0
.4
-
0
.6
-
0
.8
-
1
-
8 -
6 -
4 -
2 0 2 4 6 8
if (m(k)>=-10)&(m(k)<=2) 20
g(k)=exp(m(k))+2 15
elseif (m(k)>2)&(m(k)<=8) 10
g(k)=-2
5
elseif (m(k)>8)&(m(k)<=25) -5
g(k)=(log(m(k)^2-5^(1/7))
-10 -5 0 5 10 15 20 25
+19)/log(3)
end
end
» plot(m,g)
m=4;n=3;
for i = 1:m
for j = 1:n
A(i,j) = 1/(i + j - 1);
end
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
end
A=
Columns 1 through 8
1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250
0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111
0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 0.1000
0.2500 0.2000 0.1667 0.1429 0.1250 0.1111 0.1000 0.0909
0.2000 0.1667 0.1429 0.1250 0.1111 0.1000 0.0909 0.0833
Ex.: Un fişier care generează o matrice (s-au introdus, aici, şi linii de help,
folosind modul de scriere MATLAB, linia de text, care conţine informaţia, este
precedată de caracterul “%”):
for i = 1:10
A(i,i) = 1; % se introduce cifra “ 1”, pe diagonala principală
if (i > 1)
A(i,i-1) = 2; % se introduce cifra “ 2”, în faţa diagonalei principale, dar numai pe
ultimele 9 linii,
end
if (i < 10)
A(i,i+1) = 5; % se introduce cifra “ 5”, în dreapta diagonalei principale, dar numai
pe primele 9 linii,
end
end
A=
1 5 0 0 0 0 0 0 0 0
2 1 5 0 0 0 0 0 0 0
0 2 1 5 0 0 0 0 0 0
0 0 2 1 5 0 0 0 0 0
0 0 0 2 1 5 0 0 0 0
0 0 0 0 2 1 5 0 0 0
0 0 0 0 0 2 1 5 0 0
0 0 0 0 0 0 2 1 5 0
0 0 0 0 0 0 0 2 1 5
0 0 0 0 0 0 0 0 2 1
m1=[-4 1 0; 1 -4 1; 0 1 -4]
m2=eye(3)
m3=zeros(3,3)
a=[m1 m2 m3; m2 m1 m2; m3 m2 m1]
b=[-100; -100; -100; 0; 0; 0; 0; 0; 0]
a\b
a=
-4 1 0 1 0 0 0 0 0 b= ans =
1 -4 1 0 1 0 0 0 0 -100 42.8571
0 1 -4 0 0 1 0 0 0 -100 52.6786
1 0 0 -4 1 0 1 0 0 -100 42.8571
0 1 0 1 -4 1 0 1 0 0 18.7500
0 0 1 0 1 -4 0 0 1 0 25.0000
0 0 0 1 0 0 -4 1 0 0 18.7500
0 0 0 0 1 0 1 -4 1 0 7.1429
0 0 0 0 0 1 0 1 -4 0 9.8214
0 7.1429
k(1)=1.5;
k(2)=1;
k(3)=1.5;
k(4)=2;
l(1)=0.3;
l(2)=0.1;
l(3)=0.2;
l(4)=0.2;
b=zeros(4,1);
for i=1:3
b(i)=k(i)*l(i)-k(i+1)*l(i+1);
end
b(4)=1;
m=zeros(4,4);
for i=1:3
m(i,i)=k(i)+k(i+1);
m(i+1,i)=-k(i+1);
m(i,i+1)=-k(i+1);
end
m(4,4)=1;
m(4,3)=0;
b
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
m
x=m\b
Rezultatele sunt :
b= m=
0.3500 2.5000 -1.0000 0 0
-0.2000 -1.0000 2.5000 -1.5000 0
-0.1000 0 -1.5000 3.5000 -2.0000
1.0000 0 0 0 1.0000
x=
0.3471
0.5176
0.7647
1.0000
m=
-0.1961 0.9191 0 0 0 0 0
0.9806 -0.3939 0 0 0 0 0
0 -0.9191 -0.8716 0 0 0 0
0 0.3939 -0.4903 0 0 0 0
0 0 0.8716 -0.8716 0 0 0
0 0 0.4903 0.4903 0 0 0
0 0 0 0.8716 0.9191 0 0
0 0 0 -0.4903 0.3939 0 0
0 0 0 0 -0.9191 0.1961 0
0 0 0 0 -0.3939 0.9806 0
0 0 0 0 0 -0.1961 0.3714
b=
0
0
0
-10
0
0
0
0
0
0
0
d=
-2.1265
-3.7535
3.8868
1.1340
-0.4106
-0.2326
-0.1228
Ex.:
Un fişier pentru calculul elementelor traiectoriei unui proiectil (viteză,
inălţime, distanţă) lansat sub un anumit unghi faţă de orizontală, sub acţiunea
gravitaţiei:
dt = 0.1;
g = 9.8;
u = 60;
Alfa = input( 'Introduceti unghiul de lansare al proiectilului: ' );
Radian = Alfa * pi / 180; % conversia in radiani
x_initial = zeros(1); y_initial = zeros(1); % initializare
y = 0; t = 0;
i = 1; % initial vector subscript
while y >= 0
t = t + dt;
i = i + 1;
y = u * sin(Radian) * t - g * t^2 / 2;
if y >= 0
Distanta_pe_x(i) = u * cos(Radian) * t;
Inaltimea_pe_y(i) = y;
end
end
APLICAŢII
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
[1]:
− 1 2 4
3
Să se compare elementele matricei A = 0 5
cu scalarul B= π ;
2 1 3
[2]:
2 −1 3
2
Să se compare elementele matricei C = 3 −2 cu elementele
5 −4 1
−1 2 4
matricei A = 3 0 5
;
2 1 3
[3]:
− 1 2 8 13
Să se compare elementele matricelor D = ⋅; E = ;
− 3 8 − 4 − 7
[4]:
4 2 −1 3
3
Să se compare elementele matricelor X = ; Y =
3 −2 2
2
5 −4 1
cu scalarul x = log 43 7 ;
[5]:
Să se realizeze un fişier script pentru afişarea unei matrici cu dimensiunea
3x4 în care elementele primei linii să difere printr-o constantă, număr natural,
elementele celei de-a doua linii să difere prin constanta e 2, iar elementele ultimei
linii sa difere prin ln8.
[6]:
Să se actualizeze fişierul de mai jos astfel încât să se afişeze încă două
butoane la alegere :
k=0;
while k~=3
k=menu('Faceti clic pe una dintre optiuni','Fa asta','Fa alta',
'Iesire');
if k==1
disp('Fa asta...Apasa orice cheie pentru a continua...')
pause
elseif k==2
disp('Fa alta...Apasa orice cheie pentru a
continua...')
pause
end
end
[7]:
Să se actualizeze fişierul de mai jos astfel încât să se afişeze încă două
subgrafice, cu titlurile (c) şi (d):
subplot(2,2,1)
plot(rand(1, 20)),title('(a)')
subplot(2,2,2)
axis([0 4 0 4])
plot([0 4], [0 0], [1 1 2 3 3], [0 2 3 2 0]),title('(b)')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
[8]:
Să se actualizeze fişierul de mai jos astfel încât să se afişeze 8, 12, 24 de
„petale”:
x = 0:pi/40:2*pi;
polar(x, sin(2*x)),grid
[9]:
Să se actualizeze fişierul de mai jos astfel încât să se solicite
utilizatorului să introducă diametrul „desenului”:
n=1:200;
d = 137.51;
th = pi*d*n/180;
r = sqrt(n);
plot(r.*cos(th), r.*sin(th), '*')
axis square
[10]:
Să se actualizeze fişierul de mai jos astfel încât “pasul de desenare” să fie
mai mic, respectiv, în altă variantă, să fie mai mare:
x = 0;
y = 0;
dx = pi/100;
p = plot(x, y, 'o', 'EraseMode', 'none'); % 'xor' afişează numai
punctele curente
% ' none' afişează toate punctele
axis([0 20*pi -2 2])
for x = dx:dx:20*pi;
x = x + dx;
y = sin(x);
set(p, 'XData', x, 'YData', y)
pause(0.05)
end
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
[11]:
Să se actualizeze fişierul de mai jos astfel încât “sombrero-ul” să fie
înclinat spre stânga sau spre dreapta, şi “lumina” să “cadă” din dreapta :
[12]:
Să se actualizeze fişierul de mai jos astfel încât imaginea reprezentării
grafice să fie amplasată pe o “matrice” grafică de 3 linii şi 3 coloane (ca în figură):
subplot(3,3,1)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted,
subplot(3,3,2)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted,
subplot(3,3,3)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted
subplot(3,3,4)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted
subplot(3,3,5)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted
subplot(3,3,6)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
subplot(3,3,7)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted
subplot(3,3,8)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted
subplot(3,3,9)
x = 0:pi/20:pi;
bar(x,sin(x),'w'), shading faceted
[13]:
Să se actualizeze fişierul de mai jos astfel încât utilizatorul să fie solicitat
să introducă viteza iniţială şi timpul total al mişcării
g = 9.8;
v0 = 60;
t = 0 : 0.1 : 12.3;
s = v0 * t - g / 2 * t .^ 2;
plot(t, s), title( 'Miscarea pe verticala sub actiunea gravitatiei' )
xlabel( 'Timpul' ), ylabel( 'Inaltimea' ), grid
disp( [t' s'] )
CAPITOLUL V
Funcţia Descriere
conv(p,q) -produsul polinoamelor p şi q
[C,R]=deconv(p,q) -Câtul, C, şi restul R al împărţirii
polinoamelor p şi q
1. poly(r) 1. -determină polinoamele cu rădăcini
2. poly(A) date în vectorul coloană r
2. -determină coeficienţii polinomului
caracteristic ai matricei pătratice A
1. polyder(p) 1. -derivata polinomului p
2. polyder(p,q) 2. -derivata produsului polinoamelor p
3. [A,B]=polyder(p,q) şi q
3. -derivata fracţiei raţionale p/q
1. polyfit(x,y,n) 1. aproximează un set de date x şi y cu
2. [p,S]=polyfit(x,y,n) un polinom de gradul n
3. [p,S,miu]=polyfit(x,y, 2. aproximează un set de date x şi y cu
n) un polinom de gradul n
3. aproximează un set de date x şi y cu
un polinom de gradul n
1. polyval(p,x) 1. evaluarea polinomului p în punctul
2. polyval(p,q) x, sau pe intervalul x
2. evaluarea polinomului p în punctele
vectorului q
polyvalm(A) -evaluarea polinomului în elementele matricei
pătratice A
[r,p,k]=residue(a,b) -descompunerea raportului a două polinoame
a şi b în fracţii simple, având ca rezultat
vectorul coloană al reziduurilor, r, vectorul
coloană al polilor, p, şi k - vectorul linie al
polinomului cât (A/B)
roots(p) -calculează rădăcinile unui polinom p
REPREZENTAREA POLINOAMELOR
f(x) = anxn+an-1xn-1+.....+a2x2+a1x+a0
iar reprezentarea acestuia, în MATLAB, este dată prin vectorul linie f=[a_n,a-
_n_1,...,a2,a1,a0], în care elementele sunt reprezentate de coeficienţii polinomului
de grad n. De exemplu, polinomul p(x)=x4 +7x3+x-8 se introduce astfel:
»p=[1,7,0,1,-8]
Obs.: În polinomul h(x) coeficienţii lui x4, x3 respectiv x, care lipsesc, sunt
înlocuiţi cu valoarea 0 (zero). Altfel, MATLAB va introduce un polinom de grad
inferior celui real (de exemplu, dacă h(x) ar fi introdus de la tastatură numai cu
coeficienţii h=[1,2,-6*(5^(1/3))] acesta reprezintă polinomul h(x)=x2+2x--6 3 5 )
PRODUSUL POLINOAMELOR
Ex.:
-în MATLAB:
»g1 = [1 1 -2];g2 = [1 1];
»g = conv(g1, g2)
g = [1 2 -1 -2]
care în formă algebrică uzuală se scrie : g(x) = x3+2x2-x-2
ÎMPĂRŢIREA POLINOAMELOR
în care :
c - vectorul coeficienţilor polinomului cât
r - vectorul coeficienţilor polinomului rest
Polinoamele c(x) şi r(x) respectă teorema împărţirii cu rest (p(x)=d(x)*c(x)
+r(x), în care p(x) este polinomul- „deîmpărţit”, d(x) reprezintă polinomul-
p( x ) r( x)
„împărţitor” : = c( x ) + )
d( x ) d( x )
Ex.:
Să se calculeze câtul şi restul împărţirii polinoamelor h1(x)= x3+2x2-2 şi
h2(x)= x2+x, folosind o funcţie MATLAB.
-în MATLAB:
»h1 = [1 2 0 -2];
»h2 = [1 1 0];
»[c, r] = deconv(h1, h2)
c=
1 1
r=
0 0 -1 -2
În format algebric uzual cătul împărţirii este: c(x)=x+1, iar restul r(x)= -x-2 .
»r = roots(a)
în care:
a - vector linie al coeficienţilor polinomului
Ex.:
Fie polinomul f(x) = x3-2x2-3x+10. Să se determine rădăcinile ecuaţiei
f(x)=0.
-în MATLAB
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
»f = [1 -2 -3 10]
»r=roots(f)
r=
2+i
2-i
-2
» p = poly(z)
în care:
z – vectorul- coloană al rădăcinilor
Ex.:
Fie rădăcinile unui polinom : x1=2; x2=3; x3=4. Să se determine polinomul
cu rădăcinile x1; x2; x3.
S1 = x1+x2+x3 ⇒ S1= 9
S2 = x1x2+x1x3+x2x3 ⇒ S2=26
S3 = x1x2x3 ⇒ S3= 24
» b=[2;3;4];
» p=poly(b)
p=
1 -9 26 -24
1) Evaluarea simplă:
Ex.:
Să se calculeze valoarea polinomului f(x) = 3x4-5x3+3x-1 în punctul x =
2.
În MATLAB, se declară, mai întâi, valoarea variabilei, apoi se introduce
polinomul de evaluat, folosind regulile standard:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» x = 2;
» f = 3*(x^4)-5*(x^3)+3*x-1
f=
13
Ex.
1)-variabila este un vector linie:
» x= [1 2 0];
» f = 3*x.^4-5*x.^3+3*x-1
f=
0 13 -1
» f = 3*x^4-5*x^3+3*x-1
Ex.
2)-variabila este un vector coloană:
» x=[1;2;0];
» f = 3*x.^4-5*x.^3+3*x-1
f=
0
13
-1
Ex.:
» x=[1,2;3,4];
» f = 3*x^4-5*x^3+3*x-1
f=
414 605
908 1323
Ex.:
» x=[1,2,3;4,5,6];
» f = 3*x.^4-5*x.^3+3*x-1
f=
0 13 116
459 1264 2825
Obs.:
Dacă expresia f(x) se introduce:
» f = 3*x^4-5*x^3+3*x-1
MATLAB afişează mesajul :
??? Error using ==> ^
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
EVALUAREA POLINOAMELOR CU
FUNCŢIA MATLAB POLYVAL(P, Q)
» f = polyval(p, q)
sau
»f=polyvalm(p,q)
în care:
p - vectorul linie al coeficienţilor polinomului;
q – vectorul , respectiv, matricea în care se evaluează polinomul p.
Ex.:
Să se determine valoarea polinomului p(x)=3x4+x3+2x2-1 în punctele
vectorului q=[1,2,3,4,0], respectiv ale matricelor Q = [1 2 ; 3 4] şi R = [1 2 3 ;
3 4 5].
În MATLAB:
» p = [3 1 2 0 -1];
» q = [1 2 3 4 0]; Q = [1 2 ; 3 4]; R = [1 2 3 ; 3 4 5];
» f1=polyval(p,q)
f 1=
5 63 287 863 -1
» f2=polyval(p,Q)
f2 =
5 63
287 863
» f3=polyvalm(p,Q)
f3 =
647 944
1416 2063
» f4=polyval(p,R)
f4 =
5 63 287
287 863 2049
» f5=polyvalm(p,R)
??? Error using ==> polyvalm
Matrix must be square.
EVALUAREA PE INTERVALE
Ex.:
Să se determine valoarea polinomului p(x)=3x4+x3+2x2-1, pentru valorile x
∈ [0,5] în punctele fixe distanţate la 0,2 unităţi.
În MATLAB:
» x = 0:0.2:5;
» p = [3 1 2 0 -1];
» f = polyval(p, x)
f=
1.0e+003 *
Columns 1 through 10
-0.0010 -0.0009 -0.0005 0.0003 0.0020 0.0050 0.0098 0.0172 0.0279 0.0428
Columns 11 through 20
0.0630 0.0896 0.1239 0.1672 0.2210 0.2870 0.3668 0.4623 0.5755 0.7083
Columns 21 through 26
0.8630 1.0419 1.2473 1.4819 1.7482 2.0490
CALCULUL DERIVATEI
Derivata polinomului
Ex.:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» A = [1 2 -1 2]
» D = polyder(A)
D=
3 4 -1
» D = polyder(A, B)
Ex.:
Să se determine derivata produsului (x3+2x2-x+2) · (x-1).
În MATLAB:
» A = [1 2 -1 2]; B = [1 -1];
» D_prod = polyder(A, B)
D_prod =
4 3 -6 3
» [M, N] = polyder(A, B)
în care:
-M şi N sunt polinoamele de la numărătorul respectiv numitorul expresiei
derivate;
-A şi B sunt polinoamele de la numărătorul respectiv numitorul expresiei
ce urmează a fi derivată.
Ex.:
x 3 + 2x 2 − x + 2
Să se determine derivata expresiei raţionale: .
x −1
În MATLAB:
» A = [1 2 -1 2]; B = [1 -1];
» [M, N] = polyder(A, B)
M=
2 -1 -4 -1
N=
1 -2 1
2x 3 − x 2 − 4x − 1
În format algebric uzual, rezultatul se scrie:
( x − 1) 2
Aceste operaţii se pot executa numai dacă polinoamele au acelaşi grad, prin
urmare polinoamele trebuie transformate, prin extindere spre stânga, astfel încât
acestea să fie de acelaşi grad. După uniformizarea gradului, adunarea algebrică a
polinoamelor se realizează, în MATLAB, ca o însumare a doi vectori de aceeaşi
dimensiune.
Ex.:
Să se calculeze suma şi diferenţa polinoamelor: g(x) = x4-5x2+6x-1 şi h(x)
3
= x +3x-2.
Astfel:
» g = [1 0 -5 6 -1]; h = [0 1 0 3 -2];
» suma = g+h
suma =
1 1 -5 9 -3
» dif = g-h
dif =
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
1 -1 -5 3 1
A( x )
Orice expresie raţională, se poate descompune în fracţii simple,
B( x )
după rădăcinile polinomului de la numitor (soluţiile numitorului se numesc poli):
A( x ) r1 r2 r3 rn
= + + + ... + + k (x)
B( x ) x − p 1 x − p 2 x − p 3 x − pn
» [r, p, k] = residue(A, B)
în care:
r - vectorul coloană al reziduurilor;
p - vectorul coloană al polilor;
k - vectorul linie al polinomului cât (A/B)
Ex.:
A ( x ) x 3 − 6x 2 + 11 x − 6
Să se descompună în fracţii simple expresia: = .
B( x ) x 2 − 9x + 20
» A = [1 -6 11 -6]; B = [1 -9 20];
» [Catul,Restul]=deconv(A,B)
Catul =
1 3
Restul =
0 0 18 -66
reziduuri_partiale =
24
-6
polii_fractiei =
5
4
coeficientii_catului =
1 3
x 3 − 6x 2 + 11 x − 6
=
24
+
( − 6 ) + ( x + 3)
2
x − 9x + 20 x−5 x−4
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
CAPITOLUL VI
Obs.:
Dacă x se găseşte între două valori din tabel funcţia
table1() returnează o valoare interpolată liniar;
Funcţia MATLAB table1() este înlocuită în versiunile
superioare ale MATLAB(ulterioare versiunii 5.3) cu
funcţiile interp1(),interp2(), interp3(), interpft(),
interplat(), interplon(), interpm(), interpn().
Ex.:
Fiind date perechile de numere (x,y) : (-2,6); (-1,2); (0,3); (2,1); (4,7) ,se
cere să se găsească valorile y corespunzătoare pentru x1 = -1; x2 = 3; x3 = 3.5; x4 =
0.5; x5 = 3.75; x6 = -0.573.
Soluţie:
-se organizează perechile de numere (x,y) ca matrice cu 2 coloane, apoi se
foloseşte funcţia table1(), pentru a găsi valorile cerute:
»y2=table1(tablou_original,3)
y2 = 4
»y3=table1(tablou_original,3.5)
y3 = 5.5
»y4=table1(tablou_original,0.5)
y4 = 2.5
»y5=table1(tablou_original,3.75)
y5 = 6.25
»y6=table1(tablou_original,-0.573)
y6 = 2.427
Atenţie !
Coloana I trebuie să fie monotonă (elementele trebuie să fie
ordonate crescător) !
Valorile căutate trebuie să se încadreze între cea mai mică şi cea
mai mare valoare a lui x, altfel, se afişează un mesaj de eroare.
Astfel, dacă se cere să se găsească valoarea corespunzătoare lui y
atunci când x=5, MATLAB afişează următorul mesaj :
» y7=table1(tablou_original,5)
??? Error using ==> table1
x0 larger than all values in first column
???Eroare la utilizarea ==> table1
x0 este mai mare decât toate valorile primei coloane
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
»table2(“tab”,x,y)
Obs.:
Funcţia MATLAB table2() este înlocuită în
versiunile superioare versiunii MATLAB 5.3 cu funcţia interp2(),
în linia de comandă a versiunilor superioare ale MATLAB apare
mesajul de avertizare : „Warning: TABLE2 is obsolete and will
be removed in future versions. Use INTERP2 instead.”
(„Atenţie:TABLE2 este depăşită şi va fi înlocuită în viitoarele
versiuni. Folosiţi INTERP2 pentru acelaşi scop!”)
Condiţii:
• -tabelul “tab” este organizat ca o matrice, cu n linii şi m coloane,
întotdeauna având, pe poziţia (1,1), elementul 0 ;
• -numărul de linii este dat de numărul valorilor argumentului x, la
care se adaugă o linie pentru introducerea valorilor argumentului y,
iar numărul de coloane este dat de numărul valorilor lui y;
• -valorile x-ilor se plasează pe prima coloană, în ordine crescătoare,
începând cu a 2-a linie;
• -valorile y-ilor se plasează pe prima linie, în ordine crescătoare,
începând cu a 2-a coloană;
Ex.:
Fiind date tripletele:
x y
0 1 2 3 4 5 6 7 8 9 10
-3 0 1 2 4 8 7 1 0 1 1
1
2 9 3 1 7 6 5 3 1 0 -3
8 -8 9 1 0 2 -8 2 1 0 1
10 0 0 1 7 2 8 1 2 1 0
0
Soluţie:
»tablou_original_2= [0,1,2,3,4,5,6,7,8,9,10;-3,0,1,2,4,8,7,11,0,1,1;
2,9,3,1,7,6,5,3,1,0,-3;8,-8,9,1,0,2,-8,2,1,0,1;
100,0,0,1,7,2,8,1,2,1,10] ;
»z1=table2(tablou_original_2,-3,7)
z1=11
»z2=table2(tablou_original_2,-3,6.5)
z2=9
»z3=table2(tablou_original_2,-2,6)
z3=6.6
»z4=table2(tablou_original_2,50,8)
z4=1.4565
»z5=table2(tablou_original_2,99,9.9)
z5=0.1087
»z6=table2(tablou_original_2,-4,8)
»z7=table2(tablou_original_2,2,11)
INTERPOLAREA ŞI REGRESIA
f (x i ) = y i , i = 1, 2, 3, , n
d (f , F ) =0
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
cât sunt mai elaborate considerentele pe baza carora i s-a stabilit forma (cu
cât este mai puţin empirică). Având în vedere imprecizia datelor, nu este de
asteptat ca funcţia model să interpoleze punctele tabelate (chiar dacă acest lucru
este teoretic posibil) şi este deci firesc să se impună minimizarea distanţei d(f, F)
în raport cu valorile parametrilor:
d(f , F ) = min im
aj
n
S= ∑
i =1
[ y i − F( x i ; a ) ] 2
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
Acest procedeu se numeşte regresie sau ajustare prin metoda celor mai
mici pătrate. Termenul preluat din limba engleză este fitare (de la "to fit"—a
potrivi), desemnând procesul de ajustare a parametrilor curbei de regresie.
n
Intr-un context mai larg, funcţionala S = ∑
i =1
[ y i − F( x i ; a ) ] 2 reprezintă
n
1
χ2 = ∑σ
i =1
2
i
[ y i − F( x i ; a ) ] 2
n
Spre deosebire de funcţionala S = ∑
i =1
[ y i − F( xi ; a ) ]2 , funcţia de
din care pot fi determinaţi parametrii aj. Ajustarea pe baza funcţiei de merit
χ2 mai este numită uneori şi regresie "hi-p&trat".
Curba de regresie y = F(x;a.) nu trebuie să treacă în mod necesar prin
nici unul din punctele tabelate Mi(xi, yi), ci doar prin barele de eroare ale
acestora (de lungime σi ), minimizând funcţionala χ2 .
Deoarece erorile de măsurare ale datelor induc imprecizii în
determinarea parametrilor de model, informaţia furnizată de procesul de
ajustare nu este completă fără estimarea acestor erori. Admiţând că datele sunt
independente, considerente de propagare a erorilor arată. că varianţa (imprecizia
2
probabilă patratică.) σa j asociată parametrului aj rezultă prin cumularea
contribuţiilor ponderate cu σi2 de la fiecare valoare discretă yi:
n 2
∂a j
σ a2 =
j ∑
i =1
σ i2
∂y i
n n
S= ∑
i =1
ri2 = ∑
i =1
( y i − ŷ i ) 2 . Reziduum-ul este calculat ca diferenţa dintre valoarea
„observată” y i şi valoarea previzionată ŷ i : r = y − ŷ i . MATLAB recunoaşte
patru tipuri de metode aplicative variante ale metodei celor mai mici pătrate:
Metoda lineara a celor mai mici pătrate;
Metoda ponderată a celor mai mici pătrate;
Metoda robustă a celor mai mici pătrate;
Metoda nelineară a celor mai mici pătrate.
n
∂S
∂p 1
= −2
i =1
∑x i ( y i − ( p1 ⋅ x i + p 2 ) ) = 0
n
∂S
∂p 2
= −2
i =1
∑( y i − (p1 ⋅ x i + p 2 ) ) = 0
y = X ⋅β+ε
unde:
-y este un vector coloană (n linii ), al răspunsurilor;
- β este un vector coloană (m linii), al coeficienţilor;
-X este o matrice nxm, a valorilor previzionate;
- ε este vectorul coloană (n linii ), al erorilor.
Pentru un polinom de gradul întâi, cele n ecuaţii cu două necunoscute, exprimate
în funcţie de y, X şi β sunt:
y 1 x1 1
y 2 x 2 1 p
y 3 = x 3 1 x 1
p 2
y n x n 1
Soluţia problemei, dată prin metoda celor mai mici patrate, este un vector
b, care conţine vectorul coeficienţilor β. Ecuaţiile generalizate ataşate acestui
sistem sunt reprezentate prin:
(X T
)
⋅ X ⋅ b = XT ⋅ y ,
cu soluţia generalizată:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
(
b = XT ⋅ X ) −1
⋅ XT ⋅ y
ŷ = X ⋅ b = H ⋅ y ,
unde:
H = X ⋅ XT ⋅ X( ) −1
⋅ XT
r = y − ŷ = ( 1 − H ) ⋅ y
n
S= ∑
i =1
w i ( y i − ŷ i ) 2
(
ˆ = XT ⋅ W ⋅ X
b =β ) −1
⋅ XT ⋅ W ⋅ y ,
1
wi =
σ2
−1
1 n
wi =
n ∑ (yi − y) 2
i =1
Această relaţie este acoperitoare pentru calculul ponderilor, dacă setul de date
conţine valori identice (repetiţii). În acest caz, n reprezintă numărul de replici
identice.
Metoda celor mai mici pătrate, în general, este sensibilă la valorile „ieşite”
din setul de valori, adică din modul în care evoluează acest set de date.
Minimizarea influenţei ieşirilor este realizabilă prin metoda, robustă, a celor mai
mici pătrate. Această metodă este disponibilă în două variante:
1. Metoda reziduurilor absolute (LAR=Least Absolute Residuals)-această
metodă aproximează setul de valori printr-o curbă care minimizează
diferenţa absolută a reziduurilor, în raport cu diferenţa pătratelor acestora.
Din acest motiv, valorile extreme au o influenţă redusă.
2. Metoda ponderilor bipătrate –Această variantă a metodei minimizează
suma pătratelor ponderilor, în care ponderea reprezintă „distanţa” lacare se
găseşte fiecare punct faţă de linia de aproximare. Astfel, punctele apropiate
de curbă au o pondere ridicată, iar punctele „îndepărtate” de curbă, dau
ponderi reduse (valori apropiate de zero).
ri
radj =
1 − hi
în care ri este reziduul pătratic uzual, iar hi este „rotunjirea” care ajustează
reziduurile prin lipsă. „Actualizarea” se realizează prin:
radj
u= ,
K ⋅s
unde K este o constantă de reglaj K=4.685. şi s este varianţa robustă dată prin
relaţia:
DMA
s=
0,6745
wi =
( i )
1 − ( u ) 2 2 ,
ui < 1
0, ui > 1
y = f ( X, β) + ε
unde
y este vectorul coloană al răspunsurilor (n linii);
f este o funcţie de β şi X;
β este vectorul coloană al coeficienţilor (m linii);
X este matricea proiectată a modelului (n linii, m coloane );
ε este vectorul coloană al erorilor (n linii).
ŷ =f ( X, β)
MODELE PARAMETRICE
În MATLAB sunt disponibile câteva modele parametrice consacrate,
pentru interpolarea şi aproximarea datelor:
1. Funcţii exponenţiale
2. Serii Fourier
3. Modelul Gauss
4. Modelul polinomial
n
Ecuaţia caracteristică acestui model este: y = ∑
i =1
p i ⋅ x n +1−i , în care
sunt folosite atunci când sunt necesare aproximări empirice simple. Acestea pot
fi utilizate în cazul interpolărilor sau extrapolărilor seturilor de date.
5. Serii de puteri
6. Expresii raţionale
∑p
i =1
i ⋅ x n + 1− i
forma: y = n , în care gradul numărătorului, 0 ≤ n ≤ 5 ,
x m
+ ∑q
i =1
i ⋅x m−i
7. Sume de sinus
n
Modelul matematic este dat de relaţia: y= ∑i= 1 a i ⋅ sin (b i ⋅ x + c i ) , în care
a este amplitudinea, b, este frecvenţa, iar c este constanta de fază pentru fiecare
termen al sumei de sinusi ( 1 ≤ n ≤ 8 ).
8. Distribuţia Weibull
9. Modele utilizator
INTERPOLAREA LINEARĂ
yi = interp1(x,Y,xi)
yi = interp1(Y,xi)
yi = interp1(x,Y,xi,metoda)
yi = interp1(x,Y,xi,metoda,extrapolata)
Ex. :
Să se genereze o curbă sinusoidală „primară”, apoi să se interpoleze peste un
număr mai mare de abscise:
Soluţie:
Varianta A
» x = 0:10;
» y = sin(x);
» xi = 0:.25:10;
» yi = interp1(x,y,xi);
» plot(x,y,'o',xi,yi)
Varianta B
» x = 0:0.1 :10;
» y = sin(x);
» xi = 0:.25:10;
» yi = interp1(x,y,xi);
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» plot(x,y,'o',xi,yi)
Ex. :
Se consideră doi vectori: unul reprezentând deceniile 1 până la 9 ale
secolului trecut, cel de-al doilea reprezentând populaţia Statelor Unite ale Americii
(în milioane locuitori) pentru fiecare început de deceniu:
» t = 1900:10:1990;
» p = [75.995 91.972 105.711 123.203 131.669 150.697 179.323…
203.212 226.505 249.633];
Soluţie:
Prin interpolare:
»populatia_in_1975=interp1(t,p,1975)
se obţine rezultatul:
»populatia_in_1975=
214.8585
Interpolând între anii 1900 şi 2000 se obţin rezultatele, respectiv, graficul evoluţiei
populaţiei între anii 1900 şi 2000:
» x = 1900:2000;
» y = interp1(t,p,x);
» plot(t,p,'o',x,y)
INTERPOLAREA BIDIMENSIONALĂ
ZI = interp2(X,Y,Z,XI,YI)
ZI = interp2(Z,XI,YI)
ZI = interp2(Z,de_n_ori)
ZI = interp2(X,Y,Z,XI,YI,metoda)
CONCLUZIE :
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
Oricare dintre aceste variante interpolează între punctele unei reţele bi-
dimensionale, fiind găsite valorile unei funcţii f(x,y) care face conexiunea între
punctele intermediare.
» [X,Y] = meshgrid(-3:.25:3);
» Z = peaks(X,Y);
» [XI,YI] = meshgrid(-3:.125:3);
» ZI = interp2(X,Y,Z,XI,YI);
» mesh(X,Y,Z), hold, mesh(XI,YI,ZI+15)
» hold off
»axis([-3 3 -3 3 -5 20])
INTERPOLARE TRIDIMENSIONALĂ
» VI = interp3(X,Y,Z,V,XI,YI,ZI)
» VI = interp3(V,XI,YI,ZI)
» VI = interp3(V,de_n_ori)
» VI = interp3(...,metoda)
» [x,y,z,v] = flow(10);
» [xi,yi,zi] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3);
» vi = interp3(x,y,z,v,xi,yi,zi);
» slice(xi,yi,zi,vi,[6 9.5],2,[-2 .2])
Planul de
secţionare
y=[2]
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
yy = spline(x,y,xx)
pp = spline(x,y)
unde:
- x,y sunt vectori linie ce conţin abscisele, respectiv ordonatele
punctelor;
- xi este vector ce conţine noua abscisă
Ex.:
Să se determine valoarea y1 de interpolare pentru x1=2.7; dacă:
»x=[0,1,2,3,4,5] ; y=[0,20,60,68,77,100] ;
»y1=spline(x,y,2.7)
y1=67.4340
Ex.:
Folosind aceiaşi vectori, se cere interpolarea în punctele (1.5,2.7) respectiv
în (1.2,3.4,4.5).
»x=[0,1,2,3,4,5] ; y=[0,20,60,68,77,100] ;
»y2=spline(x,y,[1.5,2.7])
y2=42.2500 67.4340
»y3=spline(x,y,[1.2,3.4,4.5])
y3 = 28.8320 70.0480 86.6250
Ex.:
Folosind vectorii x=[0,1,2,3,4,5] şi y=[0,20,60,68,77,100] se cere interpolarea în
“n=26” puncte echidistante situate între 0 şi 5:
»xi=0:0.2:5;
» yi=spline(x,y,xi)
yi =
Columns 1 through 8
0 -1.2480 0.7360 5.3440 11.9680 20.0000 28.8320 37.8560
Columns 9 through 16
46.4640 54.0480 60.0000 63.9040 66.1120 67.1680 67.6160 68.0000
Columns 17 through 24
68.7760 70.0480 71.8320 74.1440
77.0000 80.4160 84.4080 88.9920
Columns 25 through 26
94.1840 100.0000
Ex.:
Să se reprezinte grafic o
interpolare lineară şi o interpolare spline
cubică pentru datele şi rezultatele
exemplului anterior.Pentru reprezentarea
grafică se va folosi funcţia MATLAB
plot() :
»x i=0:0.2:5;
»y i=spline(x,y,x i);
»plot(x,y,xi,yi,x,y,’o’)
Ex.:
a) Fiind date 10 perechi de puncte în xOy, să se traseze graficul rezultat prin
interpolare spline pe o reţea de patru ori
mai fină (x=0:10; y=sin x)
Soluţie:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
»x = 0:10; y = sin(x);
»xi = 0:0.25:10;
»yi = spline(x,y,xi);
»plot(x,y,’o’,xi,yi)
b)
Folosind, pentru x pasul iterării
0.5 iar funcţia y=tgx+sinx, să se
reprezinte pe acelaşi grafic valorile
funcţiei (y- cu linie punctată de culoare
roşie), valorile interpolate prin metoda
spline(yi-cu linie continuă de culoare
magenta ) şi valorile interpolate prin
metoda cubic (zi-cu linie continuă de
culoare verde):
»x = 0:0.5:10; y = tan(x)+sin(x);
»xi = 0:0.125:10;
»yi = spline(x,y,xi);
»zi=interp1(x,y,xi,'cubic');
»plot(x,y,'r:',xi,yi,'m-',xi,zi,'g-')
INTERPOLAREA MULTIPLĂ
‘linear’ – interpolare
lineară;
‘spline’ – interpolare spline;
‘cubic’ – interpolare cubică.
Soluţie :
» x=-10:0.5:10;
» y=(log(abs(x+12))+2)./(exp(x)+12);
» xi=[-10,-9.75,-4.25,4.15,0.1,6.35];
» yi1 = interp1(x,y,xi,'linear');
» yi2 = interp1(x,y,xi,'spline');
» yi3 = interp1(x,y,xi,'cubic');
»plot(x,y,'r:',xi,yi1,'m-',xi,yi2,'g-',xi,yi3,'k-.')
REGRESIA POLINOMIALĂ
y1 1 t 1 t 12
y
2 1 t 2 t 22
1 a0
y3 t 3 t 23
ecuaţii (vectorul y are 6 elemente) cu 3 necunoscute: = ⋅ a1 .
y4 1 t 4 t 42
1 a 2
y5
t 5 t 52
y 6 1 t 6 t 62
Presupunând că sunt date
elementele vectorului t şi ale vectorului
corespondent, y, se formează matricea X,
a coeficienţilor sistemului, în funcţie de
dimensiunea vectorului t, în raport de
puterile întâi şi a doua ale elementelor
acestui vector:
» t = [0, 0.3, 0.8, 1.1, 1.6, 2.3]'; y
= [0.5, 0.82, 1.14, 1.25, 1.35,
1.40]';X= [ones(size(t)) t t.^2]
X=
1.0000 0 0
1.0000 0.3000 0.0900
1.0000 0.8000 0.6400
1.0000 1.1000 1.2100
1.0000 1.6000 2.5600
1.0000 2.3000 5.2900
REGRESIA EXPONENŢIALĂ
REGRESIA
MULTIPLĂ
În cazul în care
y este o funcţie de mai
multe variabile
independente,
ecuaţiile
matriceale, care
exprimă relaţia dintre
variabile, pot fi
definite pentru a
include şi datele
adiţionale. Astfel,
dacă se
presupune că, pentru doi parametri diferiţi, definiţi vectorial, x1 = [.2 .5 .6 .8 1.0
1.1]' şi x2 = [.1 .3 .4 .9 1.1 1.4]', s-au determinat experimental, statistic sau prin
altă metodă, valorile funcţiei, şi acestea sunt cuprinse în vectorul y = [0.17 0.26
0.28 0.23 0.27 0.24]', atunci, funcţia- model matematic lineară, care ar putea
exprima relaţia între parametri, este: y = a 0 + a 1 ⋅ x1 + a 2 ⋅ x 2 , în care ai reprezintă
parametrii lineari ce urmează a fi determinaţi. Regresia multiplă determină soluţia
{ a 0 , a 1 , a 2 } folosind metoda celor mai mici pătrate. Pentru aceasta, se
construieşte matricea regresiilor, X, şi se găsesc coeficienţii necunoscuţi (a=[a0; a1;
a2]):
» x1 = [3.2 4.5 7.6 8.8 1.0 3.1]'; x2 = [2.1 4.3 5.4 8.9 1.1 1.4]';
» y = [2.5 3.3 4.5 5.2 8.9 4.7]';
» X = [ones(size(x1)) x1 x2];
» a = X\y
a=
6.4905
-1.0243
0.8208
» y_model=6.4905-1.0243.*x1+0.8208.*x2
y_model =
4.9364
5.4106
3.1381
4.7818
6.3691
4.4643
» Y=X*a;
» eroarea_maxima=max(abs(Y-y))
eroarea_maxima =
2.5309
» x1 = [.2 .5 .6 .8 1.0 1.1]'; x2 = [.1 .3 .4 .9 1.1 1.4]'; y = [.17 .26 .28 .23 .
27 .24]';
» X = [ones(size(x1)) x1 x2];
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» a = X\y
a=
0.1018
0.4844
-0.2847
» y_model=0.1018+0.4844.*x1-0.2847.*x2
y_model =
0.1702
0.2586
0.2786
0.2331
0.2730
0.2361
» Y=X*a;
» eroarea_maxima=max(abs(Y-y))
eroarea_maxima =
0.0038
a) » p = polyfit(x,y,n)
b) » [p,S] = polyfit(x,y,n)
c) » [p,S,miu] = polyfit(x,y,n)
Descriere:
p( x ) = p 1 ⋅ x n + p 2 ⋅ x n −1 + ... + p n ⋅ x + p n +1
Dacă funcţia polyfit este apelată în varianta b), cu parametrii de ieşire p şi
S, atunci, se returnează coeficienţii polinomiali în vectorul linie p, şi o structură S,
care poate fi utilizată, cu funcţia polyval, pentru estimarea erorilor de previzionare.
Apelarea cu varianta c), funcţia polyfit, determină obţinerea coeficienţilor
x − µ1
polinomului p, în variabila x̂ = , în care µ1 = mean ( x ) este valoarea
µ2
medie a variabilei x, respectiv µ 2 = std( x ) deviaţia standard, calculată cu relaţia
n n
1
s=
1
n −1
⋅ ∑( x i − x ) 2 , în care x =
n
⋅ ∑
i =1
x i ,iar miu ( parametrul de ieşire, în
i =1
cazul celei de-a treia variante de apelare a funcţiei polyfit), este vectorul
miu = [µ1 , µ 2 ] .
De exemplu, dacă se consideră setul de date măsurate x-y, şi se doreşte
aproximarea datelor cu o curbă polinomială de gradul III, atunci secvenţa
MATLAB următoare, determină afişarea grafică a rezultatelor aproximării:
» x2 = 1:.1:5;
» y2 = polyval(p,x2);
» plot(x,y,'o',x2,y2),ylabel('Valorile determinate pentru y2' ),
xlabel('Valorile x2'), grid on
Reprezentarea grafică a acestei aproximări este redată în figură:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
Valoare aproximată
X2aproximat =4,5
Y2aproximat =385.9449
Valoare
măsurată
x=2
y=43,1
EROAREA APROXIMĂRII
n n n
1 1 x
σ2 =
n
⋅ ∑ ( x i − x ) 2 , sau
i =1
σ2 =
n −1
⋅ ∑( xi
i =1
− x ) 2 , unde x = ∑
i =1
n
i
.
−( x −µ) 2
1 2 σ2
Φ( x, µ, σ) = ⋅e
σ ⋅ 2π
x
2
∫0 e
−t 2
erf ( x ) = ⋅ ⋅ dt
π
»p = polyfit(x,y,6)
»p=
0.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
» f = polyval(p,x);
»tabel = [x y f y-f]
tabel =
Valorile x Valorile y Valorile f Valorile erorii
0 0 0.0004 -0.0004
0.1000 0.1125 0.1119 0.0006
0.2000 0.2227 0.2223 0.0004
0.3000 0.3286 0.3287 -0.0001
0.4000 0.4284 0.4288 -0.0004
0.5000 0.5205 0.5209 -0.0004
0.6000 0.6039 0.6041 -0.0002
0.7000 0.6778 0.6778 0.0000
0.8000 0.7421 0.7418 0.0003
0.9000 0.7969 0.7965 0.0004
1.0000 0.8427 0.8424 0.0003
1.1000 0.8802 0.8800 0.0002
1.2000 0.9103 0.9104 -0.0000
1.3000 0.9340 0.9342 -0.0002
1.4000 0.9523 0.9526 -0.0003
1.5000 0.9661 0.9664 -0.0003
1.6000 0.9763 0.9765 -0.0002
1.7000 0.9838 0.9838 0.0000
1.8000 0.9891 0.9889 0.0002
1.9000 0.9928 0.9925 0.0003
2.0000 0.9953 0.9951 0.0002
2.1000 0.9970 0.9969 0.0001
2.2000 0.9981 0.9982 -0.0001
2.3000 0.9989 0.9991 -0.0003
2.4000 0.9993 0.9995 -0.0002
2.5000 0.9996 0.9994 0.0002
Se poate observa că, pe acest interval, ajustarea polinomială este relativ
corespunzătoare, dar, dacă se extinde intervalul (vectorul x devine x=0:0.1:5),
reprezentarea grafică arată ca aproximarea devine neconformă, aceasta
deteriorându-se rapid:
» x = (0: 0.1:7)';
» y = erf(x);
» polytool(x,y,6)
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
obţinându-se imaginea:
CAPITOLUL VII
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
NOŢIUNI GENERALE
»trafic=[11,11,9;7,13,11;14,17,20;11,13,9;43,51,69;38,46,76;61,132,186;75,135,
180;38,88,115;28,36,55;12,12,14;18,27,30;18,19,29;17,15,18;19,36,48;32,47,10;
42,65,92;57,66,151;44,55,90;114,145,257;35,58,68;11,12,15;13,9,15;10,9,7]
trafic =
11 11 9
7 13 11
14 17 20
11 13 9
43 51 69
38 46 76 Ora Pct. A Pct. B Pct. C
61 132 186 înregistrării
75 135 180 01 h 00 min 11 11 9
38 88 115 02 h 00 min 7 13 11
28 36 55 03 h 00 min 14 17 20
12 12 14 04 h 00 min 11 13 9
18 27 30 05 h 00 min 43 51 69
18 19 29 06 h 00 min 38 46 76
17 15 18 07 h 00 min 61 132 186
19 36 48 08 h 00 min 75 135 180
32 47 10 09 h 00 min 38 88 115
42 65 92
10 h 00 min 28 36 55
57 66 151
11 h 00 min 12 12 14
44 55 90
12 h 00 min 18 27 30
114 145 257
35 58 68 13 h 00 min 18 19 29
11 12 15 14 h 00 min 17 15 18
13 9 15 15 h 00 min 19 36 48
10 9 7 16 h 00 min 32 47 10
Matricea trafic, a 17 h 00 min 42 65 92
observaţiilor zilnice, poate fi 18 h 00 min 57 66 151
19 h 00 min 44 55 90
utilizată în analize şi
20 h 00 min 114 145 257
prelucrări matematice
21 h 00 min 35 58 68
ulterioare. În acest sens,
22 h 00 min 11 12 15
23 h 00 min 13 9 15
24 h 00 min 10 9 7
presupunând necesară reprezentarea grafică, pentru vizualizarea traficului, la un
moment dat (considerând reperele orare date de vectorul t=1:24), se foloseşte
următoarea secvenţă MATLAB:
» t=1:24;
» set(0,'defaultaxeslinestyleorder','-|--|-.');
» set(0,'defaultaxescolororder',[0 0 0]);
» xlabel('Timpul'), ylabel('Numar de vehicule in trafic'), grid on
» plot(t,trafic), legend('Locatia A','Locatia B','Locatia C',0)
» cftool
Această comandă are ca efect activarea interfeţei grafice Curve Fitting Tool
(Instrument de ajustare a curbelor):
» cftool
date ajustate. Reprezentarea grafică a reziduurilor arată că o ajustare mai bună este
posibilă, sau nu. În funcţie de mărimea erorilor de calcul şi a distanţei faţă de
valorile discrete efective, se poate lua decizia unei ajustări ulterioare, pentru
creşterea calităţii aproximării, prin metode şi tehnici multiple.
Pentru a determina cea mai bună ajustare sau aproximare trebuie avute în
vedere atât rezultatele grafice cât şi rezultatele numerice ale procedurii efective.
Pentru exemplificare se consideră că pentru vectorul populatia_USA =
[3.9,5.3,7.2,9.6,12.9,17.1,23.1,31.4,38.6,50.2,62.9,76,92,105.7,122.8,131.7,150.7,1
79,205,226.5,248.7]' raportat la anii de referinţă cuprinşi în vectorul
anii_de_referinta=[1790,1800,1810,1820,1830,1840,1850,1860,1870,1880,1890,
1900,1910,1920,1930,1940,19
50,1960,1970,1980,1990]’ s-au
realizat ajustări folosind
expresii polinomiale de diferite
grade (2, 4 şi 7) respectiv o
ajustare exponenţială de un
singur termen, a*exp(b*x)
(adică a ⋅ e b⋅x ), şi s-au obţinut
reprezentările grafice (ale
rezultatelor ajustării, respectiv
ale reziduurilor), din figură:
2050, ceea ce va permite extrapolarea, prin cele trei expresii polinomiale, a valorii
vectorului populatia_USA corespunzătoare acestui an:
Parametrii
numerici ai ajustării se pot
seta din interfaţa Curve
Fitting Tool ->Fitting
->Results şi Table of Fits-
>Table options:
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
∑ ω ( ŷ
i =1
i i − yi ) 2
-SST): R − square = n . R-square poate lua valori cuprinse între 0
∑i =1
ωi ( y i − y i ) 2
relaţia: SSE
∑ω (y
i =1
i i − ŷ i ) 2
. O valoare apropiată de 0 înseamnă
RMSE = =
v v
o bună aproximare.
Validarea parametrului #Coeff are ca efect afişarea numărului de
coeficienţi folosiţi pentru aproximarea datelor.
Intervalul de confidenţă (de siguranţă) reprezintă limitele, inferioară
respectiv superioară, ale coeficienţilor ecuaţiei aproximării. Formatul afişat pentru
un parametru este: p1 = 0.006541 (0.006124, 0.006958), ceea ce înseamnă că
valoarea calculată a coeficientului este 0.006541, limita inferioară 0.006124
respectiv limita superioară 0.006958. Implicit, nivelul de siguranţă este 95%, şi se
poate modifica din interfaţa Curve Fitting Tool meniul View, opţiunea
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
Din interfaţa Curve Fitting Tool, butonul Analysis se pot realiza analize
ale parametrilor ajustării, în funcţie de datele originale. Se pot interpola, extrapola
date, se pot diferenţia şi integra curbele de variaţie ale ajustării, între anumite
limite. Pentru aceasta, se sccesează vectorul Xi dorit, din câmpul Analyze at Xi, se
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
selectează caseta aferentă evaluării Evaluate fit at Xi, pentru afişarea rezultatelor
şi reprezentarea grafică a acestora fiind necesară validarea casetelor Plot results şi
Plot data set, după care se accesează butonul Apply, pentru realizarea procedurii.
De exemplu pentru extrapolarea necesară identificării datelor ajustării folosind
ajustarea polinomială, pentru populaţia corespunzătoare anului 2025, se va
modifica ultima valoare din câmpul Analyze at Xi, la valoarea 2025:
Ex.:
Se va realiza o ajustare polinomială de ordinul III, V şi VI, pentru vectorii
x = [4:0.1:7 9:0.2:12]', y = c(1) + c(2)*x + c(3)*x.^2 + c(4)*x.^3 +
(rand(size(x))-0.5), ai cărui coeficienţi sunt elementele vectorului c = [8 -5 13 12].
»x = [4:0.1:7 9:0.2:12]' ;c = [8 -5 13 12]; y = c(1) + c(2)*x + c(3)*x.^2 +
c(4)*x.^3 + (rand(size(x))-0.5);
»cftool
Ex.:
Se va ajusta o curbă de variaţie a coeficientului de dilatare a Cu, în raport
cu temperatura. Pentru aceasta se va considera vectorul temp al temperaturilor, un
vector cu 236 elemente, cu temperaturi cuprinse între 24,41 [K] şi 848,23 [K], iar
valorile măsurate experimental, pentru coeficientul de dilatare, pentru aceste
temperaturi, stocate în vectorul coloană coef_CU. Se va realiza o aproximare
raţională, cu o funcţie având atat numărătorul cât şi numitorul, polinoame de gradul
doi. După ce sunt introduse datele, în fereastra de comandă (prin una din opţiunile
posibile:de la tastatură, import, încarcare etc.), se activează procesul de ajustare, cu
funcţia cftool, apoi se setează parametrii de aproximare din interfaţa Fitting...,
selectând, din câmpul Type of fit, opţiunea Rational. Apoi, se nominalizează tipul
polinomului de la numărător (Numerator), respectiv de la numitorul expresiei
raţionale (Denominator):
Journal for Numerical Methods in Engineering", vol. 30, pag. 1719- 1737,
1990.
[4] BROWN, E.E.& col.- “Superalloys – Processing – 2nd. Int.Conf. on
Superalloys”, Publ.AIME, 1972, pag. L1-L12.
[5] BUDIANSKY, B. & col.- “Mechanics of Solids”, Ed. H.G.Hopkins &
M.J.Sewell, publ. Pergamon Press Oxford, 1982, pag. 13.
[6] DODESCU, GH. -Metode numerice în algebră, Editura Tehnică,
Bucureşti, 1979 .
[7] FORRAY, M.J. - Calculul variaţional în ştiinţă şi tehnică, Editura
Tehnică, Bucureşti, 1975 .
[8] GHINEA, M. -MATLAB- Calcul numeric, grafică, aplicaţii,
Editura Teora, Bucureşti, 1997.
[9] GREBENIŞAN, G. –Metodă de optimizare numerică a parametrilor
deformării superplastice, Sesiunea anuală de comunicări ştiinţifice, Oradea,
1999
[10] GREBENIŞAN, G. –Program dezvoltat în mediul MATLAB 5.3, pentru
determinarea analitică a parametrilor tehnologici la deformarea
superplastică (partea I-Consideraţii teoretice), Simpozion “Materiale
avansate, tratamente termice şi calitatea managementului”, Editura
Politehnica, Timişoara, 2001.
[11] GREBENIŞAN, G. - Program dezvoltat în mediul MATLAB 5.3, pentru
determinarea analitică a parametrilor tehnologici la deformarea
superplastică (partea II-Aplicaţie), Simpozion “Materiale avansate,
tratamente termice şi calitatea managementului”, Editura Politehnica,
Timişoara, 2001.
[12] GREBENIŞAN, G. –Parametrii tehnologici ai deformării superplastice-
program de calcul în MATLAB-studiu de caz, Sesiunea anuală de
comunicări ştiinţifice, Oradea, 2002.
[13] HAHN, B.D. –Essential MATLAB for Scientists and Engineers, Ed. By
Butterworth-Heinemann, Cape Town, 2002.
[14] KOBAYASHI, S. -Metal Forming and the Finite Element Method, Oxford
Universitz Press, New York, 1989.
[15] LEWIS, P.E.,ş.a. - The Finite element Method. Principles and
Applications, Addison Wesley Publishing Company, London, 1991 .
[16] LUNGU, N. - Matematici cu aplicaţii tehnice, Editura Tehnică,
Bucureşti,1990 .
[17] MARCIUK, G.I - Metode de analiză numerică, Editura Academiei
Române, Bucureşti, 1983, trad. din lb. rusă .
[18] MARINESCU, GH. et al. –Probleme de analiză numerică, Ed. Didactică şi
Pedagogică, Bucureşti, i978.
[19] MOSZYNSKI, K.-Metode numerice de rezolvare a ecuaţiilor diferenţiale
ordinare, Ed. Tehnică, Bucureşti, 1973.
[20] MUNTEANU, M. - Metoda elementului finit, Reprografia
Universităţii « Transilvania », Braşov,1997.
[21] PASCARIU, I -Elemente finite. Concepte, aplcaţii, Editura
Militară,Bucureşti, 1985.
[22] POTERAŞU, V.F.,ş.a..-Metode numerice în elasticitate şi plasticitate,vol.
I, Editura Academiei Române, Bucureşti, 1993 .
[23] OLARIU, V.,ş.a.. - Modelare numerică cu elemente finite, Editura
Tehnică, Bucureşti, 1986 .
[24] SALVADORI, M.-Metode numerice în algebră, Editura Tehnică,
Bucureşti, 1972
[25] SAWCZUK, A.,ş.a. - Teoria plasticităţii, Editura Tehnică, Bucureşti,
1970, trad. de prof. dr. ing. N. Cristescu .
[26] SIMIONESCU, I. et al.-Metode numerice în tehnică, Ed. Tehnică,
Bucureşti, 1995.
[27] VOINEA, R.,ş.a. -Introducere în mecanica soliduli cu aplicaţii în
inginerie, Editura Academiei Române, Bucureşti, 1989 .
ANEXĂ
format short e
%matricea deformatiilor reale;
eps=[0.0000318 0.000077 0.000155 0.000285 0.000669 0.00131 0.00256 0.00637 ;
0.0000318 0.000077 0.000155 0.000285 0.000669 0.00131 0.00256 0.00637 ;
0.0000328 0.0000793 0.000155 0.000285 0.000711 0.00139 0.00256 0.00637 ;
0.0000318 0.0000793 0.000155 0.000285 0.000711 0.00139 0.00256 0.0000947;
0.0000318 0.0000746 0.000155 0.000303 0.000711 0.00139 0.00256 0.00599 ;
0.0000318 0.0000746 0.000146 0.000268 0.000649 0.00116 0.00226 0.00499 ;
0.0000793 0.000155 0.000285 0.000711 0.00139 0.00272 0.00637 0.0117 ;
0.0000299 0.0000746 0.000137 0.000277 0.000629 0.00131 0.00233 0.0047 ;
0.0000318 0.000077 0.000146 0.000285 0.00069 0.00135 0.00248 0.00564 ;
0.0000318 0.000077 0.000146 0.000285 0.00069 0.00135 0.00248 0.00547 ;
0.0000309 0.0000746 0.000146 0.000268 0.000669 0.00123 0.0024 0.00547 ];
%matricea coeficientilor de sensibilitate a vitezei de deformare;
m=[ 0.31 0.22 0.19 0.17 0.15 0.13 0.11 0.08;
0.24 0.28 0.25 0.21 0.14 0.11 0.08 0.07;
0.6 0.44 0.37 0.31 0.26 0.23 0.2 0.15;
0.58 0.58 0.6 0.62 0.61 0.59 0.54 0.37;
0.31 0.27 0.24 0.21 0.017 0.14 0.12 0.1;
0.5 0.4 0.36 0.29 0.21 0.17 0.15 0.13;
0.26 0.49 0.65 0.54 0.46 0.39 0.3 0.22;
0.45 0.58 0.63 0.62 0.58 0.53 0.46 0.38;
0.29 0.41 0.47 0.5 0.51 0.48 0.44 0.37;
0.37 0.43 0.46 0.49 0.51 0.51 0.5 0.48;
0.44 0.43 0.45 0.47 0.5 0.52 0.52 0.51;
0.45 0.51 0.52 0.53 0.53 0.55 0.57 0.59];
%matricea rezistenţelor la deformare;
sigma=[ 19.167544 24.47654 27.613674 31.233444 35.232428 39.851944
42.334072 46.402004;
12.479588 15.926988 19.167544 21.649672 25.993396 27.613674
29.371848 31.233444;
3.930036 5.998476 8.135864 10.411148 12.479588 15.030664
17.995428 20.33966;
0.413688 0.620532 0.965272 1.447908 2.41318 3.723192
5.033204 9.790616;
16.616468 21.167036 25.372864 30.406068 34.336104 38.748776
41.161956 46.470952;
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
%set(title('TEMPERATURA [C]'),'color','r')
index=1;
%text(50,0.0055,{'\leftarrow temp'},'FontSize',10)
legend('temp.',1)
subplot(2,3,2);plot(mar_gr/1000,'y');
%set(title('DIM. GRAUNTILOR [m*10^-6]'),'color','y')
legend('dim. gr.',1)
subplot(2,3,3);plot(eps,'m');
%set(title('VIT. DE DEF. [sec^-1]'),'color','m')
legend('vit. de def.',1)
subplot(2,3,4);plot(m/100,'g');
%set(title('COEFICIENTUL m'),'color','g')
legend('coef. "m"',1)
subplot(2,3,5);plot(sigma/10000,'b');
%set(title('REZ. DE DEF. [N/mm^2]'),'color','b')
legend('rez. de def.',1)
subplot(2,3,6);plot(k/1000000,'k');
%set(title('CONSISTENTA [N/mm^2]'),'color','k')
legend('consistenta',1)
disp(blanks(1)')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
if r==1;
delete(h)
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE
IN WORKSPACE ! VALORILE AFISATE AU EROAREA DATORATA
POZITIONARII POINTERULUI PE GRAFIC !','!! VERIFICARE !!')
elseif (r~=1)&(r~=0)
disp('!! EROARE!! NU ATI APASAT NICI TASTA "1" SI NICI
TASTA "0" ! ACESTA ESTE MOTIVUL PENTRU CARE PRACTIC S-A
PIERDUT O ETAPA A PROGRAMULUI !! PENTRU A REVENI
APASATI [Ctrl+C] DUPA CARE INTRODUCETI <nume_fisier> IN
COMMAND WINDOW !' )
errordlg('NU ATI APASAT NICI TASTA "1" SI NICI TASTA"0"! ACESTA
ESTE MOTIVUL PENTRU CARE PRACTIC S-A PIERDUT O ETAPA A
PROGRAMULUI !! PENTRU A REVENI APASATI [Ctrl+C] DUPA CARE
INTRODUCETI <nume_fisier> IN COMMAND WINDOW ! PENTRU A
CONTINUA APASATI ORICE TASTA !','!!! EROARE UTILIZATOR !!!')
else
sigma_calc = k.*(eps.^m);
subplot(1,1,1)
plot(sigma_calc,'r');
ylabel('REZISTENTA [kPa]')
xlabel('INDEX')
set(title('GRAFICUL VALORILOR CALCULATE PENTRU REZISTENTA DE
DEFORMARE'),'color','r')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
disp(blanks(1)')
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
temp1 = temp(1:8);
mar_gr1 = mar_gr(1:8);
eps1 = eps(1:8);
m1 = m(1:8);
sigma1 = sigma(1:8);
k1 = k(1:8);
temp2 = temp(9:16);
mar_gr2 = mar_gr(9:16);
eps2 = eps(9:16);
m2 = m(9:16);
sigma2 = sigma(9:16);
k2 = k(9:16);
temp3 = temp(17:24);
mar_gr3 = mar_gr(17:24);
eps3 = eps(17:24);
m3 = m(17:24);
sigma3 = sigma(17:24);
k3 = k(17:24);
temp4 = temp(25:32);
mar_gr4 = mar_gr(25:32);
eps4 = eps(25:32);
m4 = m(25:32);
sigma4 = sigma(25:32);
k4 = k(25:32);
temp5 = temp(33:40);
mar_gr5 = mar_gr(33:40);
eps5 = eps(33:40);
m5 = m(33:40);
sigma5 = sigma(33:40);
k5 = k(33:40);
temp6 = temp(41:48);
mar_gr6 = mar_gr(41:48);
eps6 = eps(41:48);
m6 = m(41:48);
sigma6 = sigma(41:48);
k6 = k(41:48);
temp7 = temp(49:56);
mar_gr7 = mar_gr(49:56);
eps7 = eps(49:56);
m7 = m(49:56);
sigma7 = sigma(49:56);
k7 = k(49:56);
temp8 = temp(57:64);
mar_gr8 = mar_gr(57:64);
eps8 = eps(57:64);
m8 = m(57:64);
sigma8 = sigma(57:64);
k8 = k(57:64);
temp9 = temp(65:72);
mar_gr9 = mar_gr(65:72);
eps9 = eps(65:72);
m9 = m(65:72);
sigma9 = sigma(65:72);
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
k9 = k(65:72);
temp10 = temp(73:80);
mar_gr10 = mar_gr(73:80);
eps10 = eps(73:80);
m10 = m(73:80);
sigma10 = sigma(73:80);
k10 = k(73:80);
temp11 = temp(81:88);
mar_gr11 = mar_gr(81:88);
eps11 = eps(81:88);
m11 = m(81:88);
sigma11 = sigma(81:88);
k11 = k(81:88);
temp12 = temp(89:96);
mar_gr12 = mar_gr(89:96);
eps12 = eps(89:96);
m12 = m(89:96);
sigma12 = sigma(89:96);
k12 = k(89:96);
% Cu majuscule se vor nota valorile calculate ale lui 'm' si 'k' prin metoda numerica
conditie = 1;
pas = 0.001;
eroare = 0.000001;
expresie = 0;
M = 0;
i = 0;
while conditie
M = M+pas;
i = i+1;
s11 = sum(eps1.^(2*M));
s21 = sum((eps1.^M).*sigma1.*log(eps1));
s31 = sum((eps1.^M).*sigma1);
s41 = sum((eps1.^(2.*M)).*sigma1.*log(eps1));
expresie = s11*s21-s31*s41;
s12 = sum(eps2.^(2*M));
s22 = sum((eps2.^M).*sigma2.*log(eps2));
s32 = sum((eps2.^M).*sigma2);
s42 = sum((eps2.^(2.*M)).*sigma2.*log(eps2));
expresie = s12*s22-s32*s42;
s13 = sum(eps3.^(2*M));
s23 = sum((eps3.^M).*sigma3.*log(eps3));
s33 = sum((eps3.^M).*sigma3);
s43 = sum((eps3.^(2.*M)).*sigma3.*log(eps3));
expresie = s13*s23-s33*s43;
s14 = sum(eps4.^(2*M));
s24 = sum((eps4.^M).*sigma4.*log(eps4));
s34 = sum((eps4.^M).*sigma4);
s44 = sum((eps4.^(2.*M)).*sigma4.*log(eps4));
expresie = s14*s24-s34*s44;
s15 = sum(eps5.^(2*M));
s25 = sum((eps5.^M).*sigma5.*log(eps5));
s35 = sum((eps5.^M).*sigma5);
s45 = sum((eps5.^(2.*M)).*sigma5.*log(eps5));
expresie = s15*s25-s35*s45;
s16 = sum(eps6.^(2*M));
s26 = sum((eps6.^M).*sigma6.*log(eps6));
s36 = sum((eps6.^M).*sigma6);
s46 = sum((eps6.^(2.*M)).*sigma6.*log(eps6));
expresie = s16*s26-s36*s46;
s17 = sum(eps7.^(2*M));
s27 = sum((eps7.^M).*sigma7.*log(eps7));
s37 = sum((eps7.^M).*sigma7);
s47 = sum((eps7.^(2.*M)).*sigma7.*log(eps7));
expresie = s17*s27-s37*s47;
s18 = sum(eps8.^(2*M));
s28 = sum((eps8.^M).*sigma8.*log(eps8));
s38 = sum((eps8.^M).*sigma8);
s48 = sum((eps8.^(2.*M)).*sigma8.*log(eps8));
expresie = s18*s28-s38*s48;
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
s19 = sum(eps9.^(2*M));
s29 = sum((eps9.^M).*sigma9.*log(eps9));
s39 = sum((eps9.^M).*sigma9);
s49 = sum((eps9.^(2.*M)).*sigma9.*log(eps9));
expresie = s19*s29-s39*s49;
s10 = sum(eps10.^(2*M));
s20 = sum((eps10.^M).*sigma10.*log(eps10));
s30 = sum((eps10.^M).*sigma10);
s40 = sum((eps10.^(2.*M)).*sigma10.*log(eps10));
expresie = s10*s20-s30*s40;
s111 = sum(eps11.^(2*M));
s211 = sum((eps11.^M).*sigma11.*log(eps11));
s311 = sum((eps11.^M).*sigma11);
s411 = sum((eps11.^(2.*M)).*sigma11.*log(eps11));
expresie = s111*s211-s311*s411;
s112 = sum(eps12.^(2*M));
s212 = sum((eps12.^M).*sigma12.*log(eps12));
s312 = sum((eps12.^M).*sigma12);
s412 = sum((eps12.^(2.*M)).*sigma12.*log(eps12));
xpresie = s112*s212-s312*s412;
sigma_calc1 = K1.*(eps1.^((-1)*M));
sigma_calc2 = K2.*(eps2.^((-1)*M));
sigma_calc3 = K3.*(eps3.^((-1)*M));
sigma_calc4 = K4.*(eps4.^((-1)*M));
sigma_calc5 = K5.*(eps5.^((-1)*M));
sigma_calc6 = K6.*(eps6.^((-1)*M));
sigma_calc7 = K7.*(eps7.^((-1)*M));
sigma_calc8 = K8.*(eps8.^((-1)*M));
sigma_calc9 = K9.*(eps9.^((-1)*M));
sigma_calc10 = K10.*(eps10.^((-1)*M));
sigma_calc11 = K11.*(eps11.^((-1)*M));
sigma_calc12 = K12.*(eps12.^((-1)*M));
subplot(1,2,1)
plot(eps1,sigma_calc1,'r')
grid on
set(title('SIGMA CALCULAT-1'),'color','r')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
hold off
subplot(1,2,2)
plot(eps2,sigma_calc2,'b');grid
set(title('SIGMA CALCULAT-2'),'color','b')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps4,sigma_calc4,'k')
set(title('SIGMA CALCULAT-4'),'color','k')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
subplot(1,1,1)
subplot(1,2,1)
plot(eps5,sigma_calc5,'y')
set(title('SIGMA CALCULAT-5'),'color','y')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(1,2,2)
plot(eps6,sigma_calc6,'r')
set(title('SIGMA CALCULAT-6'),'color','r')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,1)
plot(eps7,sigma_calc7,'m')
set(title('SIGMA CALC7'),'color','m')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
n=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ4,...
'BackgroundColor','g','ForegroundColor','r','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps8,sigma_calc8,'c')
set(title('SIGMA CALCULAT-8'),'color','c')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
end
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(1,2,1)
plot(eps9,sigma_calc9,'b')
set(title('SIGMA CALCULAT-9'),'color','b')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
end
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(1,2,2)
plot(eps10,sigma_calc10,'k')
set(title('SIGMA CALCULAT-10'),'color','k')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
pause
subplot(2,1,1)
plot(eps11,sigma_calc11,'r')
set(title('SIGMA CALCULAT-11'),'color','r')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps12,sigma_calc12,'b')
set(title('SIGMA CALCULAT-12'),'color','b')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
'BackgroundColor','g','ForegroundColor','r','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps2,sigma2,'g*')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','g')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
end
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
n=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ4,...
'BackgroundColor','g','ForegroundColor','r','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,1)
plot(eps3,sigma3,'b')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','b')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps4,sigma4,'g')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','g')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,1)
plot(eps5,sigma5,'k')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','k')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps6,sigma6,'r')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','r')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,1)
plot(eps7,sigma7,'b')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','b')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
end
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps8,sigma8,'y')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','y')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
pause
subplot(2,1,1)
plot(eps9,sigma9,'r')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','r')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlign
ment','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps10,sigma10,'c')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','c')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlign
ment','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,1)
plot(eps11,sigma11,'r')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','r')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
j=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
disp('ALEGETI PUNCTELE ! ')
disp('INCHEIATI APASAND TASTA "E N T E R " ')
[x,y]=ginput;
disp(blanks(1)')
disp('C O O R D O N A T E L E S U N T:')
disp(blanks(1)')
disp([blanks(4),'ABSCISA',blanks(6),'ORDONATA'])
disp(blanks(1)')
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
n=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ4,...
'BackgroundColor','g','ForegroundColor','r','FontWeight','bold','HorizontalAlignme
nt','left');
pause
subplot(2,1,2)
plot(eps12,sigma12,'b')
set(title('VITEZA DE DEFORMARE FUNCTIE DE REZISTENTA LA
DEFORMARE'),'color','b')
disp(blanks(1)')
h=uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ1,...
'BackgroundColor','b','ForegroundColor','y','FontWeight','bold','HorizontalAlignme
nt','left');
disp(blanks(1)')
r=input('DORITI SA AFLATI COORDONATELE PUNCTELOR DE PE
GRAFIC ?\n\n PENTRU "DA" APASATI "1 urmat de ENTER"\n PENTRU "NU"
APASATI "0 urmat de ENTER"');
if r==1;
www.cartiaz.ro – Carti si articole online gratuite de la A la Z
disp([x,y])
disp('Apasati orice tasta pentru a continua')
disp('Apasati [Ctrl + C] pentru a renunta')
helpdlg('COORDONATELE PUNCTELOR SELECTATE SUNT AFISATE IN
WORKSPACE','!! VERIFICARE !!')
else
disp(blanks(1)')
uicontrol('Style','text','Position',[8 5 800 25],'String',MESAJ2,...
'BackgroundColor','y','ForegroundColor','b','FontWeight','bold','HorizontalAlignme
nt','left');
pause
delete(j)
delete(h)
msgbox('S F A R S I T P R O G R A M','!!!! OPTIMIZARE !!!!')
disp(' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
')
disp(' ~~~~~~~~~~ SFARSIT PROGRAM ~~~~~~~~ ')
disp(' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
')
%Sfarsit program