Elementy metod numerycznych - zajęcia 9

Podobne dokumenty
Wprowadzenie do Scilab: macierze

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Wprowadzenie do Scilab: macierze

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

Obliczenia w programie MATLAB

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

Metody i analiza danych

Ćwiczenie 1. Wprowadzenie do programu Octave

Scilab skrypty (programowanie)

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

Wprowadzenie do Scilab: macierze

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Programowanie w Scilab

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Wprowadzenie do programu Mathcad 15 cz. 1

Laboratorium 1b Operacje na macierzach oraz obliczenia symboliczne

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

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

Wprowadzenie do Mathcada 1

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Ćwiczenie 1. Wprowadzenie do programu Octave

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Matematyka stosowana i metody numeryczne

Pętle iteracyjne i decyzyjne

Wielomian interpolacyjny Hermite a

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Wprowadzenie do programowania w SciLab: typy danych, wyrażenia, operatory, funkcje własne, skrypty.

Metody optymalizacji - wprowadzenie do SciLab a

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Interpolacja i aproksymacja, pojęcie modelu regresji

MATLAB tworzenie własnych funkcji

Ćwiczenie 4. Matlab - funkcje, wielomiany, obliczenia symboliczne

MATLAB - laboratorium nr 1 wektory i macierze

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

Podstawowe operacje na macierzach

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Ćwiczenie 3: Wprowadzenie do programu Matlab

Przetwarzanie sygnałów

Matlab Składnia + podstawy programowania

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Matlab Składnia + podstawy programowania

Podstawy Informatyki Computer basics

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

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

Drugi sposób definiowania funkcji polega na wykorzystaniu polecenia:

Egzamin z Metod Numerycznych ZSI, Grupa: A

Podstawy Programowania Algorytmy i programowanie

Wprowadzenie do środowiska

Wprowadzenie do systemu Scilab

III TUTORIAL Z METOD OBLICZENIOWYCH

Podstawy MATLABA, cd.

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

Instalacja

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

Egzamin z Metod Numerycznych ZSI, Egzamin, Gr. A

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

MATLAB Podstawowe polecenia

Wprowadzenie do Scilab: podstawy języka Scilab

Podstawy Programowania C++

Wstęp do Programowania Lista 1

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

Podstawowe operacje na macierzach, operacje we/wy

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Obliczenia iteracyjne

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Równania nieliniowe, nieliniowe układy równań, optymalizacja

Funkcja pierwotna, całka oznaczona na podstawie funkcji pierwotnej

Pakiety Matematyczne - R Zestaw 2.

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

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

Metody numeryczne Laboratorium 2

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Równania nieliniowe, nieliniowe układy równań, optymalizacja

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Umieszczanie kodu. kod skryptu

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

Modelowanie rynków finansowych z wykorzystaniem pakietu R

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

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

1. Liczby zespolone i

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

1 Podstawy c++ w pigułce.

1 Programowanie w matlabie - skrypty i funkcje

1. Operacje na plikach i katalogach Chcąc przeprowadzić analizę danych należy załadować/wczytać dane do R, a wyniki z pewnością chcemy zapisać.

1. Operacje na plikach i katalogach Chcąc przeprowadzić analizę danych należy załadować/wczytać dane do R, a wyniki z pewnością chcemy zapisać.

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Lista nr 1 - Liczby zespolone

Metody numeryczne Wykład 4

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

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

1 Przygotował: mgr inż. Maciej Lasota

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

Laboratorium Techniki Obliczeniowej i Symulacyjnej

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

Transkrypt:

Poniższy dokument zawiera informacje na temat zadań rozwiązanych w trakcie laboratoriów. Elementy metod numerycznych - zajęcia 9 Tematyka - Scilab 1. Labolatoria Zajęcia za 34 punktów. Proszę wysłać krótkie zwięzłe odpowiedzi na pytania oznaczone symbolem ( x, p) i numerkiem (x), gdzie x-numer pytania, p-liczba punktów. To znaczy dla pytań: Jak masz na imię?( 1, 0). Gdzie jesteś?( 2, 0). W mailu powinna się znaleźć odpowiedzi 1.Łukasz 2. Na Wydziale Matematyki i Informatyki. Odpowiedzi na oznaczone pytania mają państwo przesłać w wyznaczonym terminie jak uprzednio mailem na adres lukwit@amu.edu.pl o temacie DMENzz-xx-yyyyyy (gdzie zz-numer zajęć, xx to godzina zajęć 11 lub 10 a yyyyyy to numer indeksu). 2. Informacje podstawowe Dzisiejsze zajęcia odbywają się w systemie operacyjnym Widnows. Program Scilab można odnaleźć w Start >Programy >Math >Scilab lub ściągnąć ze strony Scilab, program ten jest darmowym odpowiednikiem bardzo popularnego i drogiego programu Matlab. Poza zajęciami więcej o programie można przeczytać w Podstawy Scilab albo na jednej z wielu stron internetowych. Po uruchomieniu programu zauważymy, że przy pomocą strzałek dostępna jest historia ostatnio wydanych poleceń. Pomoc dostępna jest w okienku programu? >Scilab Help. Domyślnie obliczenia wykonywane są na zmiennych typu float. Zaczniemy od pokazania, że pomimo tego, że jest to program dedykowany do obliczeń numerycznych nie jest on wolny od błędów obliczeń. Zadanie 2.1. Przy pomocy pakietu Scilab zbadaj wartość: (wklej/przepisz formułę do konsoli programu i naciśnij enter ) Ile wynosi a=2.7-(1+1.7)? ( 1, 1) Ile wynosi b=(2.7-1)-1.7? ( 2, 1) 1

Jak widać program Scilab może być wykorzystywany w trybie pracy interaktywnej jako zaawansowany kalkulator. Umożliwia on wykonywanie obliczeń na wektorach i macierzach o współczynnikach rzeczywistych i zespolonych. Scilab wyposażony jest w dziesiątki funkcji standardowych realizujących, oprócz funkcji elementarnych, wiele operacji znanych z analizy macierzowej (rozkłady macierzy, wyznaczanie wartości własnych). Dodatkowo dzięki różnorodnym funkcjom graficznym pozwala na wizualizację otrzymanych wyników. Po wykonaniu powyższych działań w pamięci powstaną dwie zmienne a,b. Możemy je skasować przy pomocy funkcji clear(a),clear(b), lub clear() - która usuwa wszystkie zmienne utworzone przez użytkownika z pamięci. Drugim trybem pracy jest praca wsadowa - chodzi o to że możemy także korzystać z przygotowanych wcześniej skryptów oraz funkcji przygotowanych w plikach zewnętrznych. Możemy także definiować własne funkcję w obrębie programu. Stwórz na dysku plik suma.sci i wklej do niego następującą zawartość lub wybierz w programie opcje SciNotesi tam wklej zawartość skryptu. function[s1,s2,s3]=suma(n) s1=0; s2=0; s3=0; for i=1:1:n, s1=s1+(1/i^3); ; for i=n:-1:1, s2=s2+(1/i^3); ; s3=s1-s2; function Tak zapisany program możemy wczytać do Scilaba przy pomocy polecenia getf( nazwa pliku ), lub przez bezpośrednie wklejenie treści funkcji do konsoli. W edytorze SciNotes możemy skorzystać z opcji wykonaj do wczytania skryptu. Aby program widział państwa plik potrzeba zmienić katalog domowy (opcja File >Change current directory..) lub wpisać pełną ścieżkę. Zadanie 2.2. Zbadaj ile wynosi [x,y,z]=suma(1000) =? ( 3, 2) Analizując kod programu napisz czym jest x,y i z? ( 4, 2) W Scilabie możemy dokonywać obliczeń na liczbach rzeczywistych jak i zespolonych. Jednostkę urojoną reprezentuje stała %i. Wektory możemy generować przy pomocy operatora [], do oddzielenia elementów używamy 2

spacji, albo przecinków. W przypadku wektora kolumnowego do oddzielenia elementów trzeba użyć średnika. Elementami wektorów mogą być liczby rzeczywiste jak i zespolone. Przykład 2.3. v1 = [2,3,4,5] v2 = [2 3 4 5] w = [2;3;4;5] v1*w v2*w v1*v2 v1(2)=5 Można także stosować zapis skrócony Przykład 2.4. v3 = 1:10 v4 = 0:0.1:1 //wartosc poczatkowa, krok, wartosc koncowa v5 = 0:2:20 Zadanie 2.5. Dla zdefiniowanych powyżej wartości ile będzie równe y=sqrt(v5)?( 5, 1) Podstawowym obiektem w Scilabie są macierze. Odpowiednio wektory wierszowe i kolumnowe możemy traktować jako macierze jednowierszowe lub jednokolumnowe. Do definicji macierzy także wykorzystujemy zwykle operator []. Do oddzielenia elementów używamy spacji lub przecinków, a kolumn średnika. Przykład 2.6. A = [2,2;3,4;5,6] B = [1,2,3;4+3*%i,5,6;7,8,9+%i] Jakie działanie wykonuje operator?.( 6, 2) Jaki jest wynik działania B?( 7, 1) A*B B*A A+B C= ones(2,2) C= zeros(2,2) C= eye(2,2) C= rand(2,2) C(1,2) C(:,2) D= rand(2,2) Przegląd funkcji wbudowanych zaczniemy od sposobu definicji wielomianów i schematu Hornera, sprawdź w pomocy programu jak działają funkcje poly, oraz horner 3

Zadanie 2.7. Oblicz przy pomocy funkcji horner wartość wielomianu w(x) = 2x 4 + x 2 x + 5 w punkcie x 0 = 87? ( 8, 3) 3. Programowanie W pakiecie wykorzystujemy standardowe operatory porównania. ==, <, >, <=, >=, <>,! = (Uwaga w odróżnieniu w trybie interaktywnym wyróżniamy ~= ). Zadanie 3.1. Jaki jest wynik porównania dwóch liczb 4 < 5, 4 > 5, 4 == 5, 4~=5?( 9, 1) Jaki jest wynik porównania macierzy, w jaki sposób SciLab porównuje macierze? ( 10, 2) Konstrukcje sterujące: if warunek then instrukjca else select wyrażenie case wartosc 1 then case wartosc 2 then... case wartosc n then else for k=1:n //(k przyjmuje wartosci wygenerowane) for k=macierz //(k przyjmuje wartosci bedace elementami macierzy, wiersza) 4

while warunek Funkcję natomiast definiujemy następująco: function[y1,y2,...,yn] = nazwafunkcji(x1,x2,x3,...,xm) function Sesje programu można zapisywać do pliku przy wykorzystaniu funkcji diary(). Przejdziemy teraz do problemu interpolacji. Stwórz plik i wczytaj do Scilaba program obliczający wielomian interpolacyjny Lagrange a. function yy = lagr_poly (t, y, tt) n = length (t) yy = zeros (tt) for j = 1:n g = ones (tt) for i = 1:j-1 g = g.*(tt - t(i))/(t(j) - t(i)) for i = j+1:n g = g.*(tt - t(i))/(t(j) - t(i)) yy = yy + y(j)*g function (operator kropki powoduje działanie osobno dla każdego elementu macierz). Odpowiednio t-wektor węzłów interpolacji, y-wektor odpowiadających wartościom wielomianu w węzłach, tt-wektor punktów dla których ma być obliczana funkcja. Zadanie 3.2. Oblicz wartość wielomianu Lagrange a, w punkcie x = 2, gdy?( 11, 2) x i 0 1 3 f(x i ) 1 3 2 5

Operator \ służy do rozwiązywania układów równań liniowych stosując rozkład LU z częściową zamianą wierszy prowadzącą do rozwiązania dwóch trójkątnych układów równań (parz Wprowadzenie do Scilaba str. 17). Zadanie 3.3.A=[1 1 2;2-1 2;4 1 4] b=[-1;-4;-2] x=a\b Jakie jest rozwiązanie?( 12, 1). Zadanie 3.4.A=[1 1 1;2-3 4;4-11 10] b=[0;0;0] x=a\b Jakie jest rozwiązanie?( 13, 1). Zadanie 3.5. Ten układ ma nieskończenie wiele rozwiązań Scilab podaje jedno z nich. A=[1 2 1;1 2 0] b=[1;1] x=a\b Jakie jest rozwiązanie?( 14, 1). Możemy także obliczyć rozkład LU macierzy, przy pomocy funkcji lu(). Zadanie 3.6. Oblicz rozkład LU macierzy a = [1 2 3 2 3 1 3 1 2] a = [3 1 2 2 3 1 1 2 3] Jakie są wyniki?( 15, 1) Zadanie 3.7. Napisz funkcję w Scilabie, która policzy dla zadanych punktów i wartości wielomian interpolacyjny Hermite a. Argumentami funkcji powinny być dowolne dwa wektory te samej długości, pierwszy reprezentujący węzły interpolacji a drugi wartości funkcji w danych węzłach lub pochodnych funkcji oraz punkt dla którego chcemy policzyć wartość wielomianu interpolacyjnego. Wywołanie funkcji [wielomian,wartosc] = fhermite(wezly,wartosci,punkt) 6

Wklej kod napisanej funkcji oraz podaj wynik wywołania dla wielomianu (jeżeli aabbcc to państwa numer indeksu) fhermite([0 0 0], [aa bb cc], 1) ( 16, 12) 7