35
I nstytut Konstr ukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego W spomagania P rojektowania Semestr II. 30 wrzesie 2013 ń SciLab w obliczeniach numerycznych - część 1 Slajd 1 Układy równań liniowych Macierze rzadkie

Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

  • Upload
    vanngoc

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 1

Układy równań liniowychMacierze rzadkie

Page 2: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 2

Plan zajęć

1. Zadanie rozwiązania układu równań liniowych.

2. Ćwiczenie 1 - rozwiązanie układu równań liniowych postaci Ax = b.

3. Ćwiczenie 2 - operacje We-Wy, porównanie metod rozwiązania układu równań liniowych. oszacowanie błędu (wektora reszt) przy pomocy normy, iteracyjne poprawianie rozwiązania.

4. Ćwiczenie 3 - znalezienie rozkładu trójkątnego macierzy.

5. Przykład 4, Ćwiczenie 5 - wykorzystanie funkcji związanych z macierzami rzadkimi.

6. Ćwiczenie 6 - rozwiązywanie układu równań liniowych z macierzą rzadką, symetryczną, dodatnio określoną.

7. Ćwiczenie 7 - rozwiązywanie układu równań liniowych.

8. Zadanie 8 – przykład inżynierski – wyznaczenie sił w modelu kratownicy metodą równoważenia węzłów.

Page 3: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 3

Układ równań liniowych

Zapis w postaci macierzowej

=+++

=+++=+++

nnnnnn

nn

nn

bxaxaxa

bxaxaxabxaxaxa

2211

22222121

11212111

0det,][

2

1

2

1

21

22221

11211

≠=

=

AbxAb

bb

x

xx

aaa

aaaaaa

nnnnnn

n

n

Page 4: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 4

Ćwiczenie 1Rozwiązać, układ równań, zapisany w postaci macierzowej M x = t:

● wykorzystując macierz odwrotną do macierzy M● przy użyciu funkcji SciLaba linsolve():

=

−−−−

7902

1213211211111111

4

3

2

1

xxxx

Page 5: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 5

Ćwiczenie 1Rozwiązać, układ równań, zapisany w postaci macierzowej M x = t:

● wykorzystując macierz odwrotną do macierzy M● przy użyciu funkcji SciLaba linsolve():

=

−−−−

7902

1213211211111111

4

3

2

1

xxxx

M = [ 1, 1, 1, -1; 1, -1, -1, 1; 2, 1, -1, 2; 3, 1, 2, -1]t = [2, 0, 9, 7]'x = inv(M) * t// x = [1, 2, 3, 4]'

Page 6: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 6

Ćwiczenie 1Rozwiązać, układ równań, zapisany w postaci macierzowej M x = t:

● wykorzystując macierz odwrotną do macierzy M● przy użyciu funkcji SciLaba linsolve():

UWAGA: funkcja linsolve() rozwiązuje równanie macierzowe postaci M*x + t =0 .

=

−−−−

7902

1213211211111111

4

3

2

1

xxxx

Page 7: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 7

Ćwiczenie 1Rozwiązać, układ równań, zapisany w postaci macierzowej M x = t:

● wykorzystując macierz odwrotną do macierzy M● przy użyciu funkcji SciLaba linsolve():

UWAGA: funkcja linsolve() rozwiązuje równanie macierzowe postaci M*x + t = 0 .

=

−−−−

7902

1213211211111111

4

3

2

1

xxxx

M = [ 1, 1, 1, -1; 1, -1, -1, 1; 2, 1, -1, 2; 3, 1, 2, -1]t = [2, 0, 9, 7]'x = linsolve(M, -t)// x = [1, 2, 3, 4]'

Page 8: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 8

Ćwiczenie 2Skrypt /pub/programy/mo-1.sce zawiera polecenia pozwalające podstawić pod

zmienne n,A dane zapisane w sformatowanym pliku tekstowym macierz_aa.txt.

Po otwarciu skryptu, uzupełnić skrypt o polecenia formujące wektor kolumnowy b (n= rozmiar wektora = wymiar macierzy A) podstawiając:

niA

b ij

nji ,...,14

max,...,1

===

Page 9: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 9

Ćwiczenie 2Skrypt /pub/programy/mo-1.sce zawiera polecenia pozwalające podstawić pod

zmienne n,A dane zapisane w sformatowanym pliku tekstowym macierz_aa.txt.

Po otwarciu skryptu, uzupełnić skrypt o polecenia formujące wektor kolumnowy b (n= rozmiar wektora = wymiar macierzy A) podstawiając:

niA

b ij

nji ,...,14

max,...,1

===

// sformowanie wektora bfor i=1:n b(i) = max(A(i,1:n))/4end

Page 10: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 10

Ćwiczenie 2Uzupełnić skrypt o polecenia rozwiązujące układ równań Ax = b przy użyciu:

● funkcji SciLaba linsolve() (zapisując rozwiązanie jako zmienną x1)

● macierzy odwrotnej do macierzy A (zapisując rozwiązanie jako zmienną x2)

Porównać oba otrzymane rozwiązania.

Page 11: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 11

Ćwiczenie 2Uzupełnić skrypt o polecenia rozwiązujące układ równań Ax = b przy użyciu:

● funkcji SciLaba linsolve() (zapisując rozwiązanie jako zmienną x1)

● macierzy odwrotnej do macierzy A (zapisując rozwiązanie jako zmienną x2)

Porównać oba otrzymane rozwiązania.

// rozwiązanie układów równańx1 = linsolve(A,-b)x2 = inv(A)* b

disp(x1); disp(x2)disp(clean(x1)); disp(clean(x2))

x1 = x2 ?

Które rozwiązanie poprawne?

Page 12: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 12

Ćwiczenie 2 Zapisać polecenia obliczające i wyświetlające na ekranie wektory reszt

r1, r2 (rp = A*xp – b, p=1,2), oraz ich normy

Page 13: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 13

Ćwiczenie 2 Zapisać polecenia obliczające i wyświetlające na ekranie wektory reszt

r1, r2 (rp = A*xp – b, p=1,2), oraz ich normy

// oszacowanie błędówr1 = A * x1 - br2 = A * x2 - bp1 = norm(r1); p2 = norm(r2)disp(p1); disp(p2)// p1 = 0.2499...// p2 = 0.0000...

Page 14: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 14

Ćwiczenie 3 Uzupełnić skrypt, poprzez dopisanie poleceń, które:

● wykorzystując funkcję lu()znajdą rozkład trójkątny macierzy EA = LU (UWAGA: [L,U,E]=lu(A))

Page 15: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 15

Ćwiczenie 3 Uzupełnić skrypt, poprzez dopisanie poleceń, które:

● wykorzystując funkcję lu()znajdą rozkład trójkątny macierzy EA = LU (UWAGA: [L,U,E]=lu(A))

// otrzymanie rozkładu trójkątnego[L,U,E] = lu(A)

Page 16: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 16

Ćwiczenie 4Macierz rzadka - macierz w której znaczną część elementów stanowią zeraprofil macierzy - zapis elementów niezerowych macierzy rzadkich

Page 17: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 17

Ćwiczenie 4Macierz rzadka - macierz w której znaczną część elementów stanowią zeraprofil macierzy - zapis elementów niezerowych macierzy rzadkich

Skrypt /pub/programy/mo-2.sce zawiera polecenia pozwalające podstawić pod zmienne m,B,z dane zapisane w sformatowanym pliku tekstowym macierz_bb.txt.

Po otwarciu skryptu, zapisz polecenia które pozwolą zliczyć jakim procentem elementów macierzy B są zera

Page 18: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 18

Ćwiczenie 4Macierz rzadka - macierz w której znaczną część elementów stanowią zeraprofil macierzy - zapis elementów niezerowych macierzy rzadkich

Skrypt /pub/programy/mo-2.sce zawiera polecenia pozwalające podstawić pod zmienne m,B,z dane zapisane w sformatowanym pliku tekstowym macierz_bb.txt.

Po otwarciu skryptu, zapisz polecenia które pozwolą zliczyć jakim procentem elementów macierzy B są zera

zera=0for i=1:m for j=1:m if B(i,j)==0 then

zera = zera+1 end

endendprocent = zera/(m*m)*100; disp(procent)

Page 19: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 19

Przykład 5

Uzupełnij skrypt, stworzony w poprzednim zadaniu:● Wykorzystując funkcję SciLaba sparse() przekształć macierz B do

profilu generowanego przez tą funkcję.

B_s = sparse(B)

Page 20: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 20

Przykład 5

Uzupełnij skrypt, stworzony w poprzednim zadaniu:● Wykorzystując funkcję SciLaba sparse() przekształć macierz A do

profilu generowanego przez tą funkcję.

B_s = sparse(B)● Rozwiąż układ równań B x = z za pomocą funkcji lusolve()

służącej do rozwiązywania układów równań liniowych z macierzą rzadką. Wynik podstawić pod zmienną xg.

xg = lusolve (B_s, z)

Page 21: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 21

Przykład 5

Uzupełnij skrypt, stworzony w poprzednim zadaniu:● Wykorzystując funkcję SciLaba sparse() przekształć macierz B do

profilu generowanego przez tą funkcję.

B_s = sparse(B)● Rozwiąż układ równań B x = z za pomocą funkcji lusolve()

służącej do rozwiązywania układów równań liniowych z macierzą rzadką. Wynik podstawić pod zmienną xg.

xg = lusolve (B_s, z)● oszacuj za pomocą normy błąd rozwiązania, porównaj go z błędem

rozwiązania otrzymanego za pomocą funkcji inv().

pg = norm (B_s*xg – z)pinv = norm (B*inv(B)*z - z)

Page 22: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 22

Ćwiczenie 6

W nowym skrypcie zapisać polecenia przy pomocy których można● sformować macierz T, oraz wektor zx,

● przekształcić macierz T do postaci rzadkiej, wykorzystując sposób zapisu macierzy rzadkiej w SciLabie (patrz funkcje sparse(), full())

● rozwiązać układ równań Ty = zx wykorzystując funkcję lusolve()● oszacować za pomocą normy błąd rozwiązania

=

=

101

...21

,

120]0[......

32233213

]0[320

zT

Page 23: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 23

Ćwiczenie 6

// sformowanie macierzy T i zx

=

=

101

...21

,

120]0[......

32233213

]0[320

zT

Page 24: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 24

Ćwiczenie 6

// sformowanie macierzy T i zxT = zeros(101,101)for i = 1:100 T(i,i) = 19 + i T(i,i+1) = 3; T(i+1,i) = 3 zx(i) = iendT(101,101) = 120; zx(101) = 101

=

=

101

...21

,

120]0[......

32233213

]0[320

zT

Page 25: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 25

Ćwiczenie 6

// sformowanie macierzy T i zxT = zeros(101,101)for i = 1:100 T(i,i) = 19 + i T(i,i+1) = 3; T(i+1,i) = 3 zx(i) = iendT(101,101) = 120; zx(101) = 101T_sp = sparse(T) // budowa profilu macierzy rzadkiejy = lusolve (T_sp, zx) // rozwiązanie funkcją lusolvep_ch = norm (T_sp * y - zx) // oszacowanie błędudisp(p)T_n = full(T_sp)// tablica z profilu macierzy rzadkiej

=

=

101

...21

,

120]0[......

32233213

]0[320

zT

Page 26: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 26

Ćwiczenie 7 W nowym skrypcie zapisać instrukcje za pomocą których● zostanie wygenerowana macierz kwadratowa H (wymiaru 100x100),

poprzez – wypełnienie losowo wybranymi liczbami z przedziału [-1,1), – następnie zwiększenie elementów przekątnej głównej o liczbę

100, ● zostanie rozwiązany układ równań Hx = d, gdzie d jest wektorem

kolumnowym jedynek, za pomocą

– funkcji linsolve()– wykorzystania macierzy odwrotnej

● zostaną oszacowane oba rozwiązania● Rozwiązanie otrzymane funkcją linsolve() zostanie zapisane do

sformatowanego pliku tekstowego – zapis w dwóch kolumnach: i, xi

Page 27: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 27

Ćwiczenie 7 W nowym skrypcie zapisać instrukcje za pomocą których● zostanie wygenerowana macierz kwadratowa H (wymiaru 100x100),

poprzez – wypełnienie losowo wybranymi liczbami z przedziału [-1,1), – następnie zwiększenie elementów przekątnej głównej o liczbę

100,

Page 28: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 28

Ćwiczenie 7 W nowym skrypcie zapisać instrukcje za pomocą których● zostanie wygenerowana macierz kwadratowa H (wymiaru 100x100),

poprzez – wypełnienie losowo wybranymi liczbami z przedziału [-1,1), – następnie zwiększenie elementów przekątnej głównej o liczbę

100,

// wygenerowanie macierzy HH = 2*rand(100,100) - 1H = H + 100*eye(100,100)

Page 29: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 29

Ćwiczenie 7

// wykorzystanie macierzy odwrotnejx_odw = inv(H) * d

// oszacowania rozwiazańNorma_1 = norm(H*x – d)Norma_2 = norm(H*x_odw – d)

● zostanie rozwiązany układ równań Hx = d, gdzie d jest wektorem kolumnowym jedynek, za pomocą

● zostaną oszacowane oba rozwiązania

x = linsolve(H,-d)

Page 30: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 30

Ćwiczenie 7 ● rozwiązanie zostanie zapisane do sformatowanego pliku tekstowego –

zapis w dwóch kolumnach: i, xi

● nazwa pliku: ~/rozwiazanie_linsolve.txt

Page 31: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 31

Ćwiczenie 7

// zapis rozwiązania do pliku tekstowegou = file('open','~/rozwiazanie_linsolve.txt','unknown')for i = 1:100 write(u,[i,x(i)],'(f6.0,f10.4)') endfile('close',u)

● rozwiązanie zostanie zapisane do sformatowanego pliku tekstowego – zapis w dwóch kolumnach: i, xi

● nazwa pliku: ~/rozwiazanie_linsolve.txt

Page 32: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 32

Zadanie 8

W powyższym modelu kratownicy należy, wykorzystując metodę równoważenia węzłów wyznaczyć wartości sił w prętach, oraz wartości sił reakcji.

równoważąc siły w każdym z węzłów wyznaczamy 10 równań liniowych:

Zapisując współczynniki każdego z równań jako elementy macierzy A i wektora b, oraz definiując wektor

otrzymujemy do rozwiązania układ równań liniowych Ax = b

PNERANRA CEDECYAYYACAXx =⋅==+ )sin(:...0:;0: α

TBYBXAYAXDECECDBDBCAC RRRRNNNNNNx ],,,,,,,,,[=

Page 33: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 33

Zadanie 8

PNERANRA CEDECYAYYACAXx =⋅==+ )sin(:...0:;0: αT

BYBXAYAXDECECDBDBCAC RRRRNNNNNNx ],,,,,,,,,[=

=

=

P

bA

DEC

...00

,

00000)sin(0000...

00100000000001000001

α

Page 34: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 34

Zadanie 8

TBYBXAYAXDECECDBDBCAC RRRRNNNNNNx ],,,,,,,,,[=

Przygotować skrypt rozwiązujący zadanie. ● przyjąć jako dane wejściowe : AB, AC, DE, P● wyniki – wyznaczone wartości sił wyświetlić na ekranie● zamieścić instrukcje generujące model kratownicy

Page 35: Układy równań liniowych Macierze rzadkieetacar.put.poznan.pl/albert.kubzdela/lab2_1-2014ns.pdf · Instytut Konstrukcji Budowlanych M etody Obliczeniowe Zakład Komputerowego Wspomagania

Instytut Konstrukcji Budowlanych M etody ObliczenioweZakład Komputerowego W spomagania Projektowania Semestr II.

30 wr zesie 2013ń SciLab w obliczeniach numerycznych - część 1 Slajd 35

Funkcje SciLaba

Wykorzystywane funkcje:● norm() obliczenie normy wektora lub macierzy● linsolve() rozwiązanie układu równań liniowych dowolnej postaci● lu() rozkład LU - metoda Gaussa-Crouta● inv() obliczenie macierzy odwrotnej● sparse() formowanie macierzy rzadkich● full() formowanie macierzy kwadratowej z profilu otrzymanego

funkcją sparse()● lusolve() rozwiązanie układu równań liniowych z macierzą rzadką