22
NUMERIČKE METODE I MATEMATIČKO MODELIRANJE 6. PREDAVANJE

NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

  • Upload
    others

  • View
    30

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

NUMERIČKE METODE I

MATEMATIČKO MODELIRANJE

6. PREDAVANJE

Page 2: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA U NUMERIČKIM METODAMA

I MATEMATIČKOM MODELIRANJU

Page 3: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA – VEKTORI I MATRICE

l  vektori se prikazuju pomoću jednodimenzionalnih polja

l  tipična klasifikacija matrica:

simetrična realna ortogonalna realna hermitska

unitarna

Page 4: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

l  česti tipovi matrica: 1) dijagonalna, kada je ,za 2) gornja trokutna za

LINEARNA ALGEBRA - MATRICE

3) donja trokutna za

Page 5: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA - MATRICE

4) gornja Hessenbergova za

5) donja Hessenbergova za

6) trodijagonalna za

Page 6: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA - MATRICE

Osnovne operacije sa matricama:

- zbrajanje i oduzimanje - množenje skalara i matrice - množenje vektora i matrice

- množenje dvije matrice

Page 7: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA - VEKTORI I MATRICE

- transponiranje matrice - konjugiranje kompleksne matrice

Osnovne operacije sa vektorima:

- zbrajanje i oduzimanje vektora - množenje skalara i vektora

Page 8: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA - VEKTORI

- množenje dva vektora (Hadamardov produkt) - unutarnji (skalarni) produkt dva vektora

- vanjski (vektorski) produkt dva vektora

Page 9: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA – NORMA

l  Norma vektora i matrica l  Klasa vektorskih normi: p-norme

l  Cauchy-Schwartz nejednakost: za svaki x i y (realni ili kompleksni prostor), ako su x i y linearno zavisni vrijedi nejednakost

Page 10: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA - NORMA

l  norma se može koristiti u proračunu relativne greške u reprezentaciji vektora x u računalu

l  npr. ako je reprezentacija vektora u računalu, onda se za može definirati relativna greška

l  matrična norma – npr. Frobeniusova norma

l  p-norma

Page 11: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

LINEARNA ALGEBRA – VEKTORI I MATRICE

Victoria Popsueva (M. H. Jensen, Computation Physics)

l  vektori i matrice u matematičkom modeliranju se kodiraju jednodimenzionalnim i dvodimenzionalnim poljima

l  Potrebna je posebna pozornost u inicijalizaciji, pristupu, alociranju i brisanju polja

Page 12: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

MATEMATIČKO MODELIRANJE SA VEKTORIMA I MATRICAMA

l  dva moguća smjera u radu sa poljima:

1) deklaracije polja gdje je dimenzija polja dana pri kompajliranju

2) deklaracije polja gdje je dimenzija polja određena prilikom samog izvođenja programa (dinamička alokacija memorije)

l  deklaracije i baratanje jednodimenzionalnim poljima smo već savladali

l  u slučaju matrica primjenjujemo analogni pristup, u 2) slučaju koriste se dvostruki pokazivači (pokazivači na pokazivače za neku varijablu) npr. int **matr;

Page 13: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

Vektori i matrice su ovdje definirani unaprijed, polja su određena prilikom kompajliranja programa

DEFINIRANJE POLJA PRILIKOM KOMPAJLIRANJA

Page 14: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

DEFINIRANJE POLJA PRILIKOM KOMPAJLIRANJA

Page 15: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

DINAMIČKA DEFINICIJA POLJA ZA VEKTORE I MATRICE

Page 16: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

DINAMIČKA DEFINICIJA POLJA ZA VEKTORE I MATRICE

Page 17: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

DINAMIČKA DEFINICIJA POLJA ZA VEKTORE I MATRICE

Page 18: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

l  program poziva funkciju void **matrix(…) koja rezervira memoriju za dvodimenzionalnu matricu

l  matrica je reprezentirana dvostrukim pokazivačem na segment memorije koji sadrži niz double* pokazivača

l  svaki double* pokazivač pokazuje na jedan red matrice

DINAMIČKA DEFINICIJA POLJA ZA VEKTORE I MATRICE

Page 19: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

l  moguće je korištenje gotove biblioteke sa funkcijama za definiranje matrica i vektora, itd.

l  potrebno je uključiti u program i odgovarajuću datoteku zaglavlja lib.h

l  Navedena biblioteka se može preuzeti sa web stranice kolegija, preporuča se integriranje poziva unutar makefile-a

DINAMIČKA DEFINICIJA POLJA ZA VEKTORE I MATRICE

Page 20: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

l  zbrajanje dvije matrice

l  množenje dvije matrice

OPERACIJE S MATRICAMA

Page 21: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

OPERACIJE S MATRICAMA

l  prilikom korištenja matrica u modeliranju na računalu, treba voditi računa o rasploloživoj memoriji

l  za pohranjivanje matrice čiji elementi su dvostruke preciznosti, potrebno je 64 bita po matričnom elementu, tj. ukupno byte-ova

l  dakle, za pohranjivanje matrice dimenzije potrebno je približno 1GB memorije

l  u pravilu se izbjegava fiksno definiranje dimenzija matrica pri kompajliranju, koristi se dinamičko alociranje memorije i oslobađanje memorije kada matrica više nije potrebna (koristiti new i delete)

Page 22: NUMERIČKE METODE I MATEMATIČKO MODELIRANJE

ZADATAK 6

Napisati program u kojem se dinamički alociraju dvije nxn matrice A i B, u programu treba definirati vrijednosti matričnih elemenata.

Treba definirati dvije funkcije koje se pozivaju iz glavnog programa i

izvode sljedeće:

1) funkcija koja računa matricu C, gdje je C = A+A*A - A*B 2) funkcija koja provjerava da li je matrica A dijagonalna, gornja trokutna ili donja trokutna

U svakoj od navedenih funkcija treba ispisati rezultat. Provjeriti na

jednostavnom primjeru matrice malih dimenzija da program dobro radi. Preporuka je koristiti funkcije iz lib.cpp, odnosno lib.h.