Układ równań liniowych

Podobne dokumenty
Zad. 3: Układ równań liniowych

Zad. 5: Układ równań liniowych liczb zespolonych

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Laboratorium nr 5: Mnożenie wektorów i macierzy

Zad. 4: Szablonu dla układu równań liniowych

Zadanie nr 3: Sprawdzanie testu z arytmetyki

Laboratorium nr 4: Arytmetyka liczb zespolonych

Programowanie celowe #1

Zad. 6: Sterowanie robotem mobilnym

Zad. 5: Rotacje 3D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Zad. 5: Sterowanie robotem mobilnym

Zad. 5: Sterowanie dronem

Dodatkowo klasa powinna mieć destruktor zwalniający pamięć.

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

Zaawansowane metody numeryczne

Zadanie nr 2: Arytmetyka liczb zespolonych

1 Powtórzenie wiadomości

Wykład z Technologii Informacyjnych. Piotr Mika

Zadanie 2: Arytmetyka symboli

Układy równań liniowych i metody ich rozwiązywania

Przedrostkowa i przyrostkowa inkrementacja i dekrementacja

Zad. 7: Sterowanie manipulatorem przypadek 3D

Wstęp do metod numerycznych Eliminacja Gaussa Równania macierzowe. P. F. Góra

UKŁADY RÓWNAŃ LINIOWYCH - Metody dokładne

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

Języki i techniki programowania Ćwiczenia 2

Zad. 1: Sterowanie mimika

Monika Wrzosek (IM UG) Programowanie obiektowe 21 / 25

Klasy abstrakcyjne i interfejsy

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Rozdział 6 PROGRAMOWANIE WYPUKŁE I KWADRATOWE

Zad. 4: Rotacje 3D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Układy równań liniowych. Krzysztof Patan

III TUTORIAL Z METOD OBLICZENIOWYCH

Lab 9 Podstawy Programowania

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

Laboratorium z Podstaw Programowania Zajęcia 1

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Programowanie liniowe metoda sympleks

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Układy równań liniowych. Ax = b (1)

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Metody numeryczne Wykład 4

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Przykład 1: Funkcja jest obiektem, przypisanie funkcji o nazwie function() do zmiennej o nazwie funkcja1

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

PROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Programowanie liniowe metoda sympleks

Optymalizacja systemów

1 Przygotował: mgr inż. Maciej Lasota

Definicja problemu programowania matematycznego

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Definiowanie drukarek w programie ZAFIR

Aproksymacja funkcji a regresja symboliczna

UKŁADY RÓWNAŃ LINIOWYCH -Metody dokładne

Laboratorium nr 1. i 2.

Równania liniowe. Rozdział Przekształcenia liniowe. Niech X oraz Y będą dwiema niepustymi przestrzeniami wektorowymi nad ciałem

Zad. 6: Sterowanie robotami mobilnymi w obecności przeszkód

ZASTOSOWANIE PROGRAMOWANIA LINIOWEGO W ZAGADNIENIACH WSPOMAGANIA PROCESU PODEJMOWANIA DECYZJI

Pliki. Informacje ogólne. Obsługa plików w języku C

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Metody numeryczne. Sformułowanie zagadnienia interpolacji

MATLAB tworzenie własnych funkcji

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

Optymalizacja systemów

Ogólne zasady projektowania algorytmów i programowania

Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

2. Układy równań liniowych

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Podstawy Programowania

Zadanie 1 Zakładając liniową relację między wydatkami na obuwie a dochodem oszacować MNK parametry modelu: y t. X 1 t. Tabela 1.

Wykład 5. Metoda eliminacji Gaussa

Metody eksploracji danych Laboratorium 2. Weka + Python + regresja

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III

Kilka prostych programów

Laboratorium Metod Optymalizacji

Metody systemowe i decyzyjne w informatyce

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Elementy animacji sterowanie manipulatorem

Zad. 7: Sterowanie robotami mobilnymi w obecności przeszkód

Pierwsze komputery, np. ENIAC w 1946r. Obliczenia dotyczyły obiektów: o bardzo prostych geometriach (najczęściej modelowanych jako jednowymiarowe)

Wprowadzenie do badań operacyjnych - wykład 2 i 3

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.

Metody i analiza danych

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

1. Pierwszy program. Kompilator ignoruje komentarze; zadaniem komentarza jest bowiem wyjaśnienie programu człowiekowi.

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Ćwiczenie 2 Numeryczna symulacja swobodnego spadku ciała w ośrodku lepkim (Instrukcja obsługi interfejsu użytkownika)

Rozpoznawanie obrazów

Wprowadzenie do programu Mathcad 15 cz. 1

Rekurencja (rekursja)

Transkrypt:

Układ równań liniowych 1 Cel zadania Wykształcenie umiejętności projektowania własnych klas modelujących pojęcia niezbędne do rozwiązania postawionego problemu. Rozwinięcie umiejętności przeciążania operatorów arytmetycznych oraz dostosowywania sposobu formatowania strumienia wejściowego i wyjściowego do potrzeb własnych struktur danych. 2 Opis zadania Należy napisać program, który umożliwia rozwiązanie układu równań liniowych z trzema niewiadomymi postaci: a 11 x 1 + a 12 x 2 + a 13 x 3 = b 1 a 21 x 1 + a 22 x 2 + a 23 x 3 = b 2 a 31 x 1 + a 32 x 2 + a 33 x 3 = b 3 Układ taki wygodnie jest reprezentować w postaci macierzowej jako a 11 a 12 a 13 x 1 b 1 a 21 a 22 a 23 x 2 = b 2 a 31 a 32 a 33 x 3 b 3 Tak więc można zapisać sformułowany problem w bardziej zwartej i ogólnej postaci: Ax=b gdzie A to macierz współczynników równania, x wektor nieznanych wartości, które należy wyliczyć, b wektor wyrazów wolnych. Ponadto program dla znalezionego rozwiązania powinien wyliczyć błąd wynikający z niedokładności obliczeń liczony jako norma wektora: ε= Ax b. Należy zbadać, kiedy wspomniany błąd staje się znaczący. Aby móc to określić należy odwołać się do interpretacji geometrycznej wspomnianego układu równań. Nie przypadkiem został wybrany układ z trzema niewiadomymi. Dla układu z czterema (i więcej) niewiadomymi byłoby to już niemożliwe (dlaczego?). UWAGA: Definiowane w programie klasy muszą odzwierciedlać kluczowe pojęcia znajdujące się w opisie problemu. Do pojęć takich należy między innymi układ równań liniowych. 3 Przykład działania programu W niniejszym rozdziale podany jest przykład działania programu. Przedstawioną formę interakcji z użytkownikiem należy traktować jako obowiązującą. 1

jkowalsk@panamint: rozwiazanie>./rownanie3 Rozwiazywane rownanie: Ax = b a - Wczytaj macierz wspolczynnikow A b - Wczytaj wektor wyrazow wolnych b w - Wczytaj wszystkie wspolczynniki (A i b) p - Pokaz rownanie r - Rozwiaz, pokaz wynik i blad? - Wyswietl menu k - Koniec dzialania programu a Wprowadz wspolczynniki macierzy A. Nalezy je podac w kolejnosci: A_11 A_12 A_13 A_21 A_22 A_23 A_31 A_32 A_33 > 8 2 1 2 9 1 4 1 2 w Wprowadz wspolczynniki dla calego ukladu rownan. Nalezy je podac w kolejnosci: A_11 A_12 A_13 b_1 A_21 A_22 A_23 b_2 A_31 A_32 A_33 b_3 > 2 1 1 1 1 2 1 2 1 1 1-1 r Rozwiazanie (x1,x2,x3): (2, 3, -6) Blad: 0 b Wprowadz wspołczynniki wektora wyrazow wolnych. Nalezy je podac w kolejnosci: b[0] b[1] b[2] itd. > 1 2-1.1 p 2*x1+1*x2+1*x3 = 1 1*x1+2*x2+1*x3 = 2 1*x1+1*x2+1*x3 = -1.1 r 2

Rozwiazanie (x1,x2,x3): (2.1, 3.1, -6.3) Blad: 6.84805e-07 k Koniec dzialania programu. jkowalsk@panamint: rozwiazanie> 4 Zalecenie W programie powinny znaleźć się przeciążenia pozwalające wczytywać macierz A oraz wektor wyrazów wolnych b. Osobne przeciążenia powinny zostać zdefiniowane dla układu równiań liniowych. 5 Testowanie programu Pomimo tego, że program dostarcza interfejs użytkownika przy jego uruchamianiu dobrze jest skorzystać z technik polegających na odpowiednim przekierowaniu strumienia wejściowego. Jest to przypadatne w momencie gdy testowana jest poprawność prowadzonych obliczeń (wyznaczanie rozwiązania równania oraz błędu). Zamiast wprowadzać za każdym razem odpowiednie sekwencje z klawiatury, należy zapisać je do pliku i zawartość pliku przekierować na wejście programu. Poniżej przedstawiony został przykład dla takiej właśnie sytuacji. Wywołanie programu: Zawartość pliku test_programu.txt: a 1 2 1 2 1 1 4 1 2 b 4.1 3.12 0.1 r k rowanie3 < test_programu.txt Działanie programu powinno sprowadzić się do wyświetlenia następującego tekstu: jkowalsk@panamint: rozwiazanie> rowanie3 < test_programu.txt Rozwiazywane rownanie: Ax = b a - Wczytaj macierz wspolczynnikow A b - Wczytaj wektor wyrazow wolnych b w - Wczytaj wszystkie wspolczynniki (A i b) p - Pokaz rownanie r - Rozwiaz, pokaz wynik i blad 3

? - Wyswietl menu k - Koniec dzialania programu Wprowadz wspolczynniki macierzy ukladu rownan. Nalezy je podac w kolejnosci: A[0,0] A[0,1] A[0,2] A[1,0] itd. A_11 A_12 A_13 A_21 A_22 A_23 A_31 A_32 A_33 > Twoj wybor?> Wprowadz wspolczynniki wektora wyrazow wolnych. Nalezy je podac w kolejnosci: b[0] b[1] b[2] itd. > Rozwiazanie (x1,x2,x3): (5.16, 6.14, -13.34) Blad: 6.0972e-07 Koniec dzialania programu. jkowalsk@panamint: rozwiazanie> Odpowiedzi użytkownika nie są widoczne, gdyż będą one brane z pliku. UWAGA: Wewnątrz w programie, niezależnie do tego czy treść wcześniej przedstawionych odpowiedzi będzie brana z klawiatury, czy też z pliku, czytanie będzie odbywało się zawsze z wejścia standardowego (na tym polega idea przekierowania wejścia standardowego). 6 Rozszerzenie zadania (nieobowiazkowe) Program w wersji rozszerzonej powinien umożliwiać rozwiązanie układu równań o dowolnej liczbie (ograniczonej jedynie przez zakres zmiennych i dostępne zasoby) zmiennych przy założeniu, że jest ona większa od 1. Należy przewidzieć również możliwość wczytania współczynników rówania i wyrazów wolnych z pliku i zmiany pojedynczego współczynnika lub wyrazu wolnego. Na obecnym etapie kursu nie jest zalecane tworzenie tablic dynamicznych. Właściwe ich użycie jako elementów obiektu wymaga znajomości konstruktorów kopiujących i umiejętności ich definiowania. 7 Materiały pomocnicze Przykładową realizację zadania znaleźć można na serwerze diablo lub panamint w katalogu bk/edu/po/zad/z4. W katalogu tym znajdują się następujące podkatalogi i pliki: bk/edu/po/zad/z4/. 4

bin.diablo/ukladrownan3 bin.panamint/ukladrownan3 bin.diablo/ukladrownan3, bin.panamint/ukladrownan3 Są to programy binarne. Stanowią one przykład realizacji programu, w wersji podstawowej, który został skompilowany odpowiednio na serwerze diablo i na serwerze panamint. 5