Sunteți pe pagina 1din 12

L3.

Schimb de informaţie între Mathcad şi alte


aplicaţii. Rezolvarea unui sistem de ecuaţii cu
citire/scriere în/din fişiere şi utilizarea
componentelor de tip Excel şi bază de date

Enunțul şi scopul lucrării

Un sistem de ecuaţii liniare se poate scrie sub formă


matriceală 𝐴 ∙ x = b, unde A este matricea coeficienţilor, b
este vectorul termenilor liberi, iar x este vectorul
necunoscutelor.
Se consideră în continuare următorul sistem de trei ecuaţii
liniare, cu trei necunoscute:
3.2𝑥 + 0.01𝑦 + 0.02𝑧 = 2
{ −6𝑥 − 0.05𝑧 = −4
12𝑥 − 18𝑦 − 3.12𝑧 = 11
Să se realizeze următoarele:
1. Considerând că matricea coeficienţilor este definită în
fişierul text matrice.txt, iar vectorul termenilor liberi se
găseşte în fişierul text vector.txt, să se citească aceste date
în Mathcad, folosind componente de tip File Input şi să se
memoreze în variabilele A, respectiv b;
2. Să se calculeze determinantul matricei A;
3. O metodă de rezolvare a sistemelor în care
determinantul matricei coeficienţilor este nul sau aproape
27
Îndrumar de laborator
nul este descompunerea SVD (Singular Value
Decomposition). Să se realizeze descompunerea SVD a
matricei A, folosind funcţiile svds şi svd. Să se extragă, cu
ajutorul funcţiei submatrix, matricele U şi V din
descompunerea SVD. Să se calculeze soluţia sistemului şi
să se scrie această soluţie în fişierul excel solutie.xls,
folosind o componentă de tip File Output;
4. Să se efectueze o verificare asupra soluţiei sistemului,
utilizând o componentă Excel care să aibă ca intrare soluţia
sistemului şi ca ieşire vectorul termenilor liberi (se va
verifica dacă înmulţind matricea A cu vectorul soluţie x se
obţine vectorul termenilor liberi);
5. Pentru exemplificarea facilităţilor oferite de Mathcad în
ceea ce priveşte schimbul de informaţie cu alte aplicaţii, se
consideră că matricea coeficienţilor A se găseşte într-o
bază de date Access cu numele coeficienti.mdb, care
conţine un singur tabel cu trei câmpuri numerice
corespunzătoare coeficienţilor celor trei necunoscute. Să
se insereze în documentul Mathcad o componentă de tip
bază de date (ODBC – Open Database Connectivity) pentru
citirea matricei coeficienţilor.

28
Schimb de informaţie între Mathcad şi alte aplicaţii
Suport teoretic

Elemente teoretice legate de schimbul de informaţie între


Mathcad şi alte aplicaţii au fost prezentate în cadrul
cursului de Metode şi Programe de Calcul Numeric.

Produse software folosite

Mathcad
Notepad
Microsoft Excel
Microsoft Access

Funcţiile şi resursele utilizate

• svds
• svd
• submatrix
• diag
• opţiunile Insert->Data->File Input, Insert->Data-
>File Output, Insert->Components

Modul de lucru

Se vor parcurge următoarele etape:


1. Utilizând editorul de texte Notepad se creează două
fişiere text care conţin matricea coeficienţilor, respectiv
vectorul termenilor liberi:
29
Îndrumar de laborator

Se utilizează opţiunea Insert->Data->File Input pentru a citi


datele din cele două fişiere text şi a le memora în
variabilele A şi b;
2. Se calculează determinantul matricei A cu ajutorul
operatorului corespunzător din paleta Calculator;
3. Rezolvarea sistemului de ecuaţii prin descompunerea
SVD presupune următoarele:
- se descompune matricea A sub forma:
A = U · diag(S) · VT,
unde U şi V sunt două matrice ortogonale, obţinute cu
ajutorul funcţiei svd, care întoarce o matrice ce conţine
concatenate prin suprapunere matricele U şi V; acestea
pot fi extrase cu ajutorul funcţiei submatrix. Vectorul S se
obţine cu funcţia svds;
- soluţia sistemului se obţine cu relaţia:

Ce fel de variabilă este x?


Soluţia x a sistemului se scrie în fişierul excel solutie.xls
folosind opţiunea Insert->Data->File Output;
30
Schimb de informaţie între Mathcad şi alte aplicaţii
4. Se creează un fişier Excel cu următorul conţinut:

Pentru coloana termenilor liberi se scriu formulele


matematice corespunzătoare (de exemplu în celula F3 se
va completa formula B3*E3+C3*E4+D3*E5).
Se inserează în documentul Mathcad o componentă Excel,
folosind opţiunea Insert->Components. Se alege tipul
componentei (Microsoft Excel), se selectează ca sursă
fişierul excel creat anterior şi se stabilesc intrările şi ieşirile
pentru componenta creată. Intrarea este reprezentată de
soluţia sistemului, iar ieşirea de vectorul termenilor liberi:

31
Îndrumar de laborator
Se completează placeholder-ele corespunzătoare intrării şi
ieşirii:

Se verifică dacă valorile din coloana corespunzătoare


termenilor liberi sau valorile afişate în urma evaluării
variabilei vect_term_liberi coincid cu elementele vectorului
b;
5. Se creează în Microsoft Access baza de date
coeficienti.mdb, conţinând tabelul cu următoarea
structură:

Pentru a putea insera în Mathcad o componentă de tip


ODBC, trebuie ca înainte să se parcurgă următorii paşi de
configurare:
- deschiderea aplicaţiei Adminstrative Tools din
fereastra Control Panel;
- deschiderea aplicaţiei Data Sources (ODBC);
32
Schimb de informaţie între Mathcad şi alte aplicaţii
- adăugarea unei noi surse de date, selectând
driver-ul corespunzător (Driver do Microsoft Access):

După parcurgerea acestor paşi de configurare,


componenta de tip bază de date poate fi inserată în
documentul Mathcad cu opţiunea Insert->Components,
selectând ca tip de componentă ODBC Input:

33
Îndrumar de laborator
Se selectează sursa de date creată anterior:

Se selectează ce câmpuri ale tabelului Access să fie


transferate către Mathcad:

Se memorează într-o variabilă conţinutul transferat din


baza de date Access:

34
Schimb de informaţie între Mathcad şi alte aplicaţii
Rezultate

Sunt prezentate mai jos rezultatele solicitate în secțiunea


Enunțul şi scopul lucrării:
• Citirea din fişiere text a matricei A şi a vectorului b:

• Determinantul matricei A:

• Rezolvarea sistemului folosind descompunerea


SVD:

35
Îndrumar de laborator

• Scrierea soluţiei în fişierul excel solutie.xls:

36
Schimb de informaţie între Mathcad şi alte aplicaţii
• Verificarea soluţiei cu ajutorul unei componente
Excel:

• Citirea coeficienţilor dintr-o bază de date Access:

Concluzii/comentarii

Facilitatea Mathcad de a face schimb de informaţie cu alte


aplicaţii este una extrem de utilă în practică. De multe ori,
datele ce intervin în calculele necesare rezolvării unei
probleme provin din diferite tipuri de fişiere (text, excel,

37
Îndrumar de laborator
baze de date etc.) De asemenea, este frecventă
necesitatea transferului rezultatelor obţinute în Mathcad
către alte aplicaţii.
Prin intermediul componentelor, se pot primi date de la
Mathcad şi se pot transmite date spre Mathcad, în mod
dinamic.

S-ar putea să vă placă și