Egzamin z Metod Numerycznych ZSI, Grupa: A

Podobne dokumenty
Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 26 czerwca 2017 roku

ELEMENTY ANALIZY NUMERYCZNEJ ELEMENTY ANALIZY NUMERYCZNEJ. Egzamin pisemny zestaw 1 24 czerwca 2019 roku

Bardzo łatwa lista powtórkowa

Obliczenia Naukowe. Wykład 12: Zagadnienia na egzamin. Bartek Wilczyński

x y

Analiza numeryczna kolokwium2a-15grudnia2005

Aproksymacja. funkcji: ,a 2. ,...,a m. - są funkcjami bazowymi m+1 wymiarowej podprzestrzeni liniowej X m+1

Interpolacja funkcji

Układy równań liniowych. Krzysztof Patan

INFORMATYKA ELEMENTY METOD NUMERYCZNYCH.

Matematyka stosowana i metody numeryczne

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

Analiza numeryczna Kurs INP002009W. Wykład 8 Interpolacja wielomianowa. Karol Tarnowski A-1 p.223

Przykładowy program ćwiczeń

Metody numeryczne Numerical methods. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Rozwiązywanie równań nieliniowych

3. Interpolacja. Interpolacja w sensie Lagrange'a (3.1) Dana jest funkcja y= f x określona i ciągła w przedziale [a ;b], która

1 Równania nieliniowe

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

dr inż. Damian Słota Gliwice r. Instytut Matematyki Politechnika Śląska

ECTS (Część 2. Metody numeryczne) Nazwa w języku angielskim: Algorithms and data structures.

Laboratorium 5 Przybliżone metody rozwiązywania równań nieliniowych

Zajęcia nr 1: Zagadnienia do opanowania:

Interpolacja. Marcin Orchel. Drugi przypadek szczególny to interpolacja trygonometryczna

Matematyka stosowana i metody numeryczne

Obliczenia Naukowe i Metody Numeryczne Przykładowe zadania z Analizy Numerycznej z poprzednich lat 5 października 2009

Metody numeryczne. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/50

Metody numeryczne Numerical methods. Elektrotechnika I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

INTERPOLACJA I APROKSYMACJA FUNKCJI

2.2 Udowodnić,żejeżelif(x)=(x x 0 )(x x 1 )...(x x p ),to[x 0,x 1,...,x n ;f]= 0dlan p.jakajestwartośćtegoilorazu,gdyn=p+1?

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Obliczenia naukowe Wykład nr 6

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

Obliczenia naukowe Wykład nr 2

Metody numeryczne I Równania nieliniowe

y ( x) x i. y x i y( x) = ( x) x i,

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

Matematyka stosowana i metody numeryczne

Metody numeryczne. Sformułowanie zagadnienia interpolacji

Wykład 5. Metoda eliminacji Gaussa

Całkowanie numeryczne przy użyciu kwadratur

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. prof. dr hab.inż. Katarzyna Zakrzewska

Obliczenia Naukowe i Metody Numeryczne. Laboratorium Komputerowe lista 4 5 października 2012

MATLAB Prowadzący: dr hab. inż. Marek Jaszczur Poziom: początkujący

Zwięzły kurs analizy numerycznej

METODY ROZWIĄZYWANIA RÓWNAŃ NIELINIOWYCH

S Y L A B U S P R Z E D M I O T U

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

Rozwiązywanie układów równań liniowych

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

Metody numeryczne Wykład 7

Obliczenia iteracyjne

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Metody numeryczne. Ilorazy różnicowe. dr Artur Woike. Wzory interpolacyjne Newtona i metoda Aitkena.

Wstęp do metod numerycznych Rozwiazywanie równań algebraicznych. P. F. Góra

Zaawansowane metody numeryczne

automatyka i robotyka II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania. Technologie informatyczne

Równania nieliniowe. LABORKA Piotr Ciskowski

RÓWNANIA NIELINIOWE Maciej Patan

Zaawansowane metody numeryczne

Iteracyjne rozwiązywanie równań

Analiza numeryczna Lista nr 3 (ćwiczenia) x x 2 n x.

5. Twierdzenie Weierstrassa

Wartości i wektory własne

METODY NUMERYCZNE. Wykład 3. Plan. Aproksymacja Interpolacja wielomianowa Przykłady. dr hab.inż. Katarzyna Zakrzewska, prof.agh. Met.Numer.

METODY NUMERYCZNE. Wykład 4. Numeryczne rozwiązywanie równań nieliniowych z jedną niewiadomą. Rozwiązywanie równań nieliniowych z jedną niewiadomą

Metody Numeryczne. Wojciech Szewczuk

Interpolacja, aproksymacja całkowanie. Interpolacja Krzywa przechodzi przez punkty kontrolne

Metody numeryczne. Równania nieliniowe. Janusz Szwabiński.

Metody numeryczne Wykład 4

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2016/2017

Metody numeryczne. materiały do wykładu dla studentów

Metody Numeryczne Wykład 4 Wykład 5. Interpolacja wielomianowa

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

Obliczenia naukowe Wykład nr 8

Zaawansowane metody numeryczne

Metody numeryczne. dr Artur Woike. Ćwiczenia nr 2. Rozwiązywanie równań nieliniowych metody połowienia, regula falsi i siecznych.

Elementy Analizy Numerycznej - opracowanie pytań egzaminacyjnych

Metody numeryczne Wykład 6

Rozwiązywanie równań nieliniowych i ich układów. Wyznaczanie zer wielomianów.

Metody Numeryczne w Budowie Samolotów/Śmigłowców Wykład I

Wstęp do metod numerycznych Uwarunkowanie Eliminacja Gaussa. P. F. Góra

Metody rozwiązywania równań nieliniowych

Metody numeryczne Numerical methods. Energetyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólnoakademicki / praktyczny)

Elementy metod numerycznych

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Metody numeryczne w przykładach

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Metody numeryczne II. Układy równań liniowych

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Interpolacja. Interpolacja wykorzystująca wielomian Newtona

Rozwiązywanie układów równań liniowych metody dokładne Materiały pomocnicze do ćwiczeń z metod numerycznych

Wstęp do analizy matematycznej

Inżynierskie metody analizy numerycznej i planowanie eksperymentu / Ireneusz Czajka, Andrzej Gołaś. Kraków, Spis treści

Transkrypt:

Egzamin z Metod Numerycznych ZSI, 06.2005. Grupa: A Nazwisko: Imię: Numer indeksu: Ćwiczenia z: Data: Część 1. Test wyboru, max 36 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa odpowiedź jest warta 1 punkt. 1. Co robi funkcja DGESV biblioteki LAPACK rozwiązuje układ równań liniowych Ax = b metodą eliminacji Gaussa z wyborem elementu głównego w kolumnie rozwiązuje układ równań liniowych Ax = b z użyciem rozkładu P A = LU rozwiązuje układ równań liniowych Ax = b metodą najmniejszych kwadratów 2. Jak najlepiej postąpić, aby rozwiązać zadanie interpolacji trygonometrycznej pewnej funkcji zadanej w 1024 węzłach Skorzystać z biblioteki LAPACK Skorzystać z biblioteki FFTW Skorzystać z algorytmu różnic dzielonych podanego na wykładzie 3. Algorytm numerycznie poprawny zawsze daje mały błąd względny w arytmetyce fl może dawać duży błąd bezwzględny na dużych danych jest zawsze odporny na zaburzenia danych 4. Metoda eliminacji Gaussa może w praktyce czasami dawać wyniki obarczone dużym błędem względnym Rozkład QR może w praktyce czasami dawać wyniki obarczone dużym błędem względnym Gdy cond(a) = 55, rozwiązanie układu równań z nieosobliwą macierzą A wymiaru 256 256 przy użyciu rozkładu QR wyznaczonego metodą Householdera musi w praktyce zawsze dać wyniki obarczone błędem względnym mierzonym w normie Euklidesowej na poziomie poniżej 10 3 1

5. Zadanie interpolacji trygonometrycznej polega na znalezieniu wielomianu dobrze aproksymującego zadaną funkcję trygonometryczną kombinacji funkcji postaci sin(kx) i cos(kx) interpolujących zadaną funkcję wielomianu trygonometrycznego niskiego stopnia, interpolującego zadany wielomian trygonometryczny 6. Która z metod najlepiej nadaje się do rozwiązania równania x = sin(x + 0.0001) (jego rozwiązanie jest w przybliżeniu równe zero). Banacha siecznych bisekcji 7. Dobre uwarunkowanie zadania powoduje, że każdy algorytm jego wykonania dla w arytmetyce fl wynik najwyższej możliwej dokładności rozwiązanie można wyznaczyć kosztem wielomianowym zadanie mieści się w pamięci podręcznej cache 8. Aby rozwiązać układ równań liniowych z nieosobliwą macierzą A wymiaru N algorytmem eliminacji Gaussa, wystarczy wykonać rzędu N 3 działań w ogólnym przypadku rzędu N 2 działań, gdy macierz jest górna trójkątna rzędu N działań, gdy macierz jest trójdiagonalna 9. Mamy stablicowane N + 1 wartości funkcji f w węzłach x, przy czym x 0 < x 1 <... < x N. Wyjaśnij, co robi poniższy kod g = 0. 0 ; f o r ( i = 0 ; i <= N; i ++) g = g + f [ i ] ( x [ i +1] x [ i ] ) ; wyznacza wielomian interpolacyjny dla stablicowanej funkcji f w węzłach x 0,..., x N wyznacza przybliżenie miejsca zerowego pochodnej funkcji f na odcinku (x 0, x N ) oblicza przybliżenie całki x N x 0 f(x) 10. Liczba x = 0.01 nie jest reprezentowana dokładnie w arytmetyce podwójnej precyzji. Błąd bezwzględny reprezentacji f l(x) x jest równy około 10 14 około 10 16 około 10 18 2

11. Znane jest przybliżenie wartości liczby 1/π z błędem względnym równym 10 3. Ile iteracji metody Newtona x n+1 = x n (2 π x n ) wystarczy, aby zagwarantować, że jej wartość obliczono z precyzją 10 12 : 3 13 23 12. Aby obliczyć wartość całki 1 1 (1+sin(sin(x))) dx z dokładnością ɛ = 10 6, wystarczy skorzystać z kwadratury złożonej trapezów, opartej na 20 węzłach procedury DQUAD biblioteki QUADPACK z parametrem PRECISION = double tej całki nie da się policzyć w arytmetyce f l z żądaną dokładnością Część 2. Zadania (pół)otwarte, max. 25 pkt Uzupełnij wolne miejsca. W razie potrzeby skorzystaj z dodatkowej kartki, zaznaczając numer zadania, które tam rozwiązujesz. Każde prawidłowo rozwiązane zadanie jest warte 5 punktów. 13. Wymień znane Ci metody rozwiązywania równań nieliniowych w kolejności od najszybciej do najwolniej zbieżnych:,, 14. Wymień przynajmniej dwa zadania numeryczne w których wykorzystuje się interpolację wielomianową:,,, 15. Dany jest wielomian w(x) = a 0 + a 1 x +... + a 10 x 10. Aby wyznaczyć jego wartość w punkcie x = 17.125, należy skorzystać z algorytmu. Aby wyznaczyć jego wszystkie miejsca zerowe, dobrze jest użyć procedury z biblioteki. Aby wyznaczyć dokładną wartość całki z tego wielomianu, wystarczy użyć kwadratury opartej na węzłach. 16. Zapisz poniżej wielomian interpolacyjny Lagrange a oparty na węzłach x i = i π/2, i = 0... 2, dla funkcji f(x) = sin(x). Oszacuj, jaki błąd popełniamy, gdy zamiast sin(0.15) wykorzystamy wartość w(0.15). 3

17. Pewna procedura generuje rozkład macierzy A w postaci trzech macierzy P, L, U spełniających zależność P A = LU. Zapisz, jak wykorzystać ten rozkład do efektywnego rozwiązania układu równań Ax = b. Część 3. Kody, max. 9 pkt,,. 18. Chcemy obliczyć rozwiązanie układu równań { 6x + 4y = 3 3x 2y = 5 korzystając z GCC i pewnej fortranowskiej biblioteki. Aby uruchomić te kody należy wywołać kompilator GCC z następującymi parametrami:. Wymień kody, które są błędne:. Wskaż przynajmniej dwa różne błędy w tych kodach: Listing 1: Kod A #i n c l u d e s t d i o. h #d e f i n e I J ( i, j, n ) ( ( i ) 1) (n )+(( j ) 1) i n t d g e s v ( i n t N, i n t NRHS, double A, i n t LDA, i n t IPIV, \ double B, i n t LDB, i n t INFO ) ; i n t main ( v o i d ) { double A, x ; i n t N = 2, INFO, IPIV, NRHS = 1 ; A = ( double ) m a l l o c (N N s i z e o f ( double ) ) ; x = ( double ) m a l l o c (N s i z e o f ( double ) ) ; A [ I J ( 1, 1,N ) ] = 6. 0 ; A [ I J ( 1, 2,N ) ] = 4. 0 ; A [ I J ( 2, 1,N ) ] = 3. 0 ; A [ I J ( 2, 2,N ) ] = 2.0; x [ 0 ] = 3. 0 ; x [ 1 ] = 5. 0 ; IPIV = ( i n t ) m a l l o c (N s i z e o f ( i n t ) ) ; d g e s v (&N, &NRHS, A, &N, IPIV, x, &N, &INFO ) ; p r i n t f ( x = [%g, %g ]. Kod z a k o ń c z e n i a : %d\n, x [ 0 ], x [ 1 ], INFO ) ; f r e e ( IPIV ) ; f r e e (A ) ; f r e e ( x ) ; r e t u r n ( 0 ) ; } Listing 2: Kod B #i n c l u d e s t d i o. h #d e f i n e I J ( i, j, n ) ( ( j ) 1) (n )+(( i ) 1) i n t d g e s v ( i n t N, i n t NRHS, double A, i n t LDA, i n t IPIV, double B, \ i n t LDB, i n t INFO ) ; i n t main ( v o i d ) { double A, x ; i n t N = 2, INFO, IPIV, NRHS = 1 ; A = ( double ) m a l l o c (N N s i z e o f ( double ) ) ; x = ( double ) m a l l o c (N s i z e o f ( double ) ) ; A [ I J ( 1, 1,N ) ] = 6. 0 ; A [ I J ( 1, 2,N ) ] = 4. 0 ; A [ I J ( 2, 1,N ) ] = 3. 0 ; A [ I J ( 2, 2,N ) ] = 2.0; x [ 0 ] = 3. 0 ; x [ 1 ] = 5. 0 ; IPIV = ( i n t ) m a l l o c (N s i z e o f ( i n t ) ) ; dgesv (N, NRHS, A, N, IPIV, x, N, INFO ) ; p r i n t f ( x = [%g, %g ]. Kod z a k o ń c z e n i a : %d\n, x [ 0 ], x [ 1 ], INFO ) ; f r e e ( IPIV ) ; f r e e (A ) ; f r e e ( x ) ; r e t u r n ( 0 ) ; } 4

Odpowiedzi dla wersji A Część 1. Test wyboru, max 36 pkt Zaznacz prawidziwe odpowiedzi literą T, a fałszywe N. Każda prawidłowa odpowiedź jest warta 1 punkt. 1. Co robi funkcja DGESV biblioteki LAPACK rozwiązuje układ równań liniowych Ax = b metodą eliminacji Gaussa z wyborem elementu głównego w kolumnie rozwiązuje układ równań liniowych Ax = b z użyciem rozkładu P A = LU rozwiązuje układ równań liniowych Ax = b metodą najmniejszych kwadratów 2. Jak najlepiej postąpić, aby rozwiązać zadanie interpolacji trygonometrycznej pewnej funkcji zadanej w 1024 węzłach Skorzystać z biblioteki LAPACK Skorzystać z biblioteki FFTW Skorzystać z algorytmu różnic dzielonych podanego na wykładzie 3. Algorytm numerycznie poprawny 4. zawsze daje mały błąd względny w arytmetyce fl może dawać duży błąd bezwzględny na dużych danych jest zawsze odporny na zaburzenia danych Metoda eliminacji Gaussa może w praktyce czasami dawać wyniki obarczone dużym błędem względnym Rozkład QR może w praktyce czasami dawać wyniki obarczone dużym błędem względnym Gdy cond(a) = 55, rozwiązanie układu równań z nieosobliwą macierzą A wymiaru 256 256 przy użyciu rozkładu QR wyznaczonego metodą Householdera musi w praktyce zawsze dać wyniki obarczone błędem względnym mierzonym w normie Euklidesowej na poziomie poniżej 10 3 5. Zadanie interpolacji trygonometrycznej polega na znalezieniu wielomianu dobrze aproksymującego zadaną funkcję trygonometryczną kombinacji funkcji postaci sin(kx) i cos(kx) interpolujących zadaną funkcję wielomianu trygonometrycznego niskiego stopnia, interpolującego zadany wielomian trygonometryczny 1

6. Która z metod najlepiej nadaje się do rozwiązania równania x = sin(x + 0.0001) (jego rozwiązanie jest w przybliżeniu równe zero). Banacha siecznych bisekcji 7. Dobre uwarunkowanie zadania powoduje, że każdy algorytm jego wykonania dla w arytmetyce fl wynik najwyższej możliwej dokładności rozwiązanie można wyznaczyć kosztem wielomianowym zadanie mieści się w pamięci podręcznej cache 8. Aby rozwiązać układ równań liniowych z nieosobliwą macierzą A wymiaru N algorytmem eliminacji Gaussa, wystarczy wykonać rzędu N 3 działań w ogólnym przypadku rzędu N 2 działań, gdy macierz jest górna trójkątna rzędu N działań, gdy macierz jest trójdiagonalna 9. Mamy stablicowane N + 1 wartości funkcji f w węzłach x, przy czym x 0 < x 1 <... < x N. Wyjaśnij, co robi poniższy kod g = 0. 0 ; f o r ( i = 0 ; i <= N; i ++) g = g + f [ i ] ( x [ i +1] x [ i ] ) ; wyznacza wielomian interpolacyjny dla stablicowanej funkcji f w węzłach x 0,..., x N wyznacza przybliżenie miejsca zerowego pochodnej funkcji f na odcinku (x 0, x N ) oblicza przybliżenie całki x N x 0 f(x) 10. Liczba x = 0.01 nie jest reprezentowana dokładnie w arytmetyce podwójnej precyzji. Błąd bezwzględny reprezentacji f l(x) x jest równy około 10 14 około 10 16 około 10 18 11. Znane jest przybliżenie wartości liczby 1/π z błędem względnym równym 10 3. Ile iteracji metody Newtona x n+1 = x n (2 π x n ) wystarczy, aby zagwarantować, że jej wartość obliczono z precyzją 10 12 : 3 13 23 2

12. Aby obliczyć wartość całki 1 1 (1+sin(sin(x))) dx z dokładnością ɛ = 10 6, wystarczy skorzystać z kwadratury złożonej trapezów, opartej na 20 węzłach procedury DQUAD biblioteki QUADPACK z parametrem PRECISION = double tej całki nie da się policzyć w arytmetyce f l z żądaną dokładnością Część 2. Zadania (pół)otwarte, max. 25 pkt Uzupełnij wolne miejsca. W razie potrzeby skorzystaj z dodatkowej kartki, zaznaczając numer zadania, które tam rozwiązujesz. Każde prawidłowo rozwiązane zadanie jest warte 5 punktów. 13. Wymień znane Ci metody rozwiązywania równań nieliniowych w kolejności od najszybciej do najwolniej zbieżnych: Newtona (stycznych), siecznych, bisekcji 14. Wymień przynajmniej dwa zadania numeryczne w których wykorzystuje się interpolację wielomianową: metoda siecznych (interpolacja Lagrange a wielom. stopnia 1), stycznych (wielomianem Hermite a stopnia 1), kwadratury interpolacyjne, aproksymacja funkcji 15. Dany jest wielomian w(x) = a 0 + a 1 x +... + a 10 x 10. Aby wyznaczyć jego wartość w punkcie x = 17.125, należy skorzystać z algorytmu Hornera. Aby wyznaczyć jego wszystkie miejsca zerowe, dobrze jest użyć procedury DGEEV z biblioteki LAPACK. Aby wyznaczyć dokładną wartość całki z tego wielomianu, wystarczy użyć kwadratury Gaussa opartej na pięciu węzłach. 16. Zapisz poniżej wielomian interpolacyjny Lagrange a oparty na węzłach x i = i π/2, i = 0... 2, dla funkcji f(x) = sin(x). Oszacuj, jaki błąd popełniamy, gdy zamiast sin(0.15) wykorzystamy wartość w(0.15). Szukamy wielomianu st. 2 w węzłach równoodległych w przedziale (0, π). Wartości f w tych węzłach to 0, 1, 0. Współczynniki w bazie Newtona są równe 0, 2/π, 4/π 2. Wielomian to w(x) = 2/πx 4/π 2 x(x π/2). Oszacowanie błędu wynika ze standardowych oszacowań w(x) f(x) = f (3) (ξ) 3! x(x π/2)(x π). Dla x = 0.15 mamy więc w(0.15) f(0.15) (1/6) 0.63757 0.11. 17. Pewna procedura generuje rozkład macierzy A w postaci trzech macierzy P, L, U spełniających zależność P A = LU. Zapisz, jak wykorzystać ten rozkład do efektywnego rozwiązania układu równań Ax = b. oblicz b = P b, rozwiąż Ly = b, rozwiąż Ux = y. Część 3. Kody, max. 9 pkt 3

18. Chcemy obliczyć rozwiązanie układu równań { 6x + 4y = 3 3x 2y = 5 korzystając z GCC i pewnej fortranowskiej biblioteki. Aby uruchomić te kody należy wywołać kompilator GCC z następującymi parametrami: gcc -o kod kod.c -llapack -lblas -lg2c -lm. Wymień kody, które są błędne: A, B. Wskaż przynajmniej dwa różne błędy w tych kodach: A: złe makro (zamienione kolumny i wiersze), więc kod rozwiązuje macierz transponowaną B: wszystkie parametry typu int źle przekazane do DGESV (powinny być wskaźniki) Listing 3: Kod A #i n c l u d e s t d i o. h #d e f i n e I J ( i, j, n ) ( ( i ) 1) (n )+(( j ) 1) i n t d g e s v ( i n t N, i n t NRHS, double A, i n t LDA, i n t IPIV, \ double B, i n t LDB, i n t INFO ) ; i n t main ( v o i d ) { double A, x ; i n t N = 2, INFO, IPIV, NRHS = 1 ; A = ( double ) m a l l o c (N N s i z e o f ( double ) ) ; x = ( double ) m a l l o c (N s i z e o f ( double ) ) ; A [ I J ( 1, 1,N ) ] = 6. 0 ; A [ I J ( 1, 2,N ) ] = 4. 0 ; A [ I J ( 2, 1,N ) ] = 3. 0 ; A [ I J ( 2, 2,N ) ] = 2.0; x [ 0 ] = 3. 0 ; x [ 1 ] = 5. 0 ; IPIV = ( i n t ) m a l l o c (N s i z e o f ( i n t ) ) ; d g e s v (&N, &NRHS, A, &N, IPIV, x, &N, &INFO ) ; p r i n t f ( x = [%g, %g ]. Kod z a k o ń c z e n i a : %d\n, x [ 0 ], x [ 1 ], INFO ) ; f r e e ( IPIV ) ; f r e e (A ) ; f r e e ( x ) ; r e t u r n ( 0 ) ; } Listing 4: Kod B #i n c l u d e s t d i o. h #d e f i n e I J ( i, j, n ) ( ( j ) 1) (n )+(( i ) 1) i n t d g e s v ( i n t N, i n t NRHS, double A, i n t LDA, i n t IPIV, double B, \ i n t LDB, i n t INFO ) ; i n t main ( v o i d ) { double A, x ; i n t N = 2, INFO, IPIV, NRHS = 1 ; A = ( double ) m a l l o c (N N s i z e o f ( double ) ) ; x = ( double ) m a l l o c (N s i z e o f ( double ) ) ; A [ I J ( 1, 1,N ) ] = 6. 0 ; A [ I J ( 1, 2,N ) ] = 4. 0 ; A [ I J ( 2, 1,N ) ] = 3. 0 ; A [ I J ( 2, 2,N ) ] = 2.0; x [ 0 ] = 3. 0 ; x [ 1 ] = 5. 0 ; IPIV = ( i n t ) m a l l o c (N s i z e o f ( i n t ) ) ; dgesv (N, NRHS, A, N, IPIV, x, N, INFO ) ; p r i n t f ( x = [%g, %g ]. Kod z a k o ń c z e n i a : %d\n, x [ 0 ], x [ 1 ], INFO ) ; f r e e ( IPIV ) ; f r e e (A ) ; f r e e ( x ) ; r e t u r n ( 0 ) ; } 4