Wprowadzenie do Scilaba



Podobne dokumenty
ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

Zagadnienia na wej±ciówki z matematyki Technologia Chemiczna

1. Wprowadzenie do C/C++

1 Bª dy i arytmetyka zmiennopozycyjna

Macierze i Wyznaczniki

Listy Inne przykªady Rozwi zywanie problemów. Listy w Mathematice. Marcin Karcz. Wydziaª Matematyki, Fizyki i Informatyki.

Interpolacja funkcjami sklejanymi

1. Wprowadzenie do C/C++

Lekcja 12 - POMOCNICY

Liniowe zadania najmniejszych kwadratów

Macierze i Wyznaczniki

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Ukªady równa«liniowych - rozkªady typu LU i LL'

Vincent Van GOGH: M»czyzna pij cy li»ank kawy. Radosªaw Klimek. J zyk programowania Java

A = n. 2. Ka»dy podzbiór zbioru sko«czonego jest zbiorem sko«czonym. Dowody tych twierdze«(elementarne, lecz nieco nu» ce) pominiemy.

PRZYPOMNIENIE Ka»d przestrze«wektorow V, o wymiarze dim V = n < nad ciaªem F mo»na jednoznacznie odwzorowa na przestrze«f n n-ek uporz dkowanych:

Matematyka wykªad 1. Macierze (1) Andrzej Torój. 17 wrze±nia Wy»sza Szkoªa Zarz dzania i Prawa im. H. Chodkowskiej

det A := a 11, ( 1) 1+j a 1j det A 1j, a 11 a 12 a 21 a 22 Wn. 1 (Wyznacznik macierzy stopnia 2:). = a 11a 22 a 33 +a 12 a 23 a 31 +a 13 a 21 a 32

1 Przypomnienie wiadomo±ci ze szkoªy ±redniej. Rozwi zywanie prostych równa«i nierówno±ci

Lekcja 9 Liczby losowe, zmienne, staªe

Podstawowe działania w rachunku macierzowym

Wprowadzenie do środowiska

Wprowadzenie do Scilaba

Materiaªy do Repetytorium z matematyki

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Ukªady równa«liniowych

Lab. 02: Algorytm Schrage

Przetwarzanie sygnaªów

PAKIET MathCad - Część III

Metodydowodzenia twierdzeń

Metody numeryczne i statystyka dla in»ynierów

Matlab Składnia + podstawy programowania

Wska¹niki, tablice dynamiczne wielowymiarowe

Metody dowodzenia twierdze«

Arytmetyka zmiennopozycyjna

Laboratorium metod numerycznych numer 1

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

Informacje pomocnicze

Arkusz maturalny. Šukasz Dawidowski. 25 kwietnia 2016r. Powtórki maturalne

Funkcje, wielomiany. Informacje pomocnicze

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Elementy metod numerycznych - zajęcia 9

Interpolacja Lagrange'a, bazy wielomianów

1. Odcienie szaro±ci. Materiaªy na wiczenia z Wprowadzenia do graki maszynowej dla kierunku Informatyka, rok III, sem. 5, rok akadem.

i, lub, nie Cegieªki buduj ce wspóªczesne procesory. Piotr Fulma«ski 5 kwietnia 2017

Metody optymalizacji - wprowadzenie do SciLab a

01.Wprowadzenie do pakietu MATLAB

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

wiczenie 1 Podstawy j zyka Java. Instrukcje warunkowe

Aproksymacja funkcji metod najmniejszych kwadratów

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

2 Liczby rzeczywiste - cz. 2

Rozdziaª 13. Przykªadowe projekty zaliczeniowe

Numeryczne zadanie wªasne

MATLAB - laboratorium nr 1 wektory i macierze

Ekonometria. wiczenia 1 Regresja liniowa i MNK. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Lekcja 3 Banki i nowe przedmioty

Instalacja Pakietu R

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

Lekcja 6 Programowanie - Zaawansowane

Temat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1

Ciaªa i wielomiany. 1 Denicja ciaªa. Ciaªa i wielomiany 1

Zbiory i odwzorowania

Funkcje wielu zmiennych

Wst p do informatyki. Systemy liczbowe. Piotr Fulma«ski. 21 pa¹dziernika Wydziaª Matematyki i Informatyki, Uniwersytet Šódzki, Polska

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM ROZSZERZONY. S x 3x y. 1.5 Podanie odpowiedzi: Poszukiwane liczby to : 2, 6, 5.

Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Funkcje wielu zmiennych

1. Przedstaw w postaci algebraicznej liczby zespolone: 2. Narysuj zbiory punktów na pªaszczy¹nie:

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Oba zbiory s uporz dkowane liniowo. Badamy funkcj w pobli»u kresów dziedziny. Pewne punkty szczególne (np. zmiana denicji funkcji).

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

Programowanie wspóªbie»ne

Rzut oka na zagadnienia zwi zane z projektowaniem list rozkazów

Metody numeryczne i statystyka dla in»ynierów

Listy i operacje pytania

LZNK. Rozkªad QR. Metoda Householdera

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

X WARMI SKO-MAZURSKIE ZAWODY MATEMATYCZNE 18 maja 2012 (szkoªy ponadgimnazjalne)

Matlab Składnia + podstawy programowania

Uczenie Wielowarstwowych Sieci Neuronów o

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

1 Podstawy c++ w pigułce.

P tle. Rozdziaª Wst p. 4.2 P tle P tla for(...);

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Ćwiczenie 3: Wprowadzenie do programu Matlab

ZADANIA OTWARTE KRÓTKIEJ ODPOWIEDZI

Równania ró»niczkowe I rz du (RRIR) Twierdzenie Picarda. Anna D browska. WFTiMS. 23 marca 2010

2. L(a u) = al( u) dla dowolnych u U i a R. Uwaga 1. Warunki 1., 2. mo»na zast pi jednym warunkiem: L(a u + b v) = al( u) + bl( v)

1 Metody iteracyjne rozwi zywania równania f(x)=0

Instrukcja obsługi Norton Commander (NC) wersja 4.0. Autor: mgr inż. Tomasz Staniszewski

Baza danych - Access. 2 Budowa bazy danych

Dokªadna arytmetyka liczb rzeczywistych w j zyku Python

Wykªad 4. Funkcje wielu zmiennych.

Rozwi zanie równania ró»niczkowego metod operatorow (zastosowanie transformaty Laplace'a).

Transkrypt:

Wprowadzenie do Scilaba Bruno Pinçon Institut Elie Cartan Nancy E.S.I.A.L. Université Henri Poincaré Email : Bruno.Pincon@iecn.u-nancy.fr Przekªad z j zyka francuskiego Piotr Fulma«ski Wydziaª Matematyki Universytetu Šódzkiego Email : fulmanp@math.uni.lodz.pl Katarzyna Szulc Institut Elie Cartan Nancy Université Henri Poincaré Email : Katarzyna.Szulc@iecn.u-nancy.fr

Skrypt ten byª pocz tkowo opracowany przez studentó w E.S.I.A.L. (École Supérieure d'informatique et Application de Lorraine). Opisuje on niewielk cze± mo» liwo± ci Scilaba, w szczgó lno± ci te, któ re pozwalaj zastosowa notacje analizy numerycznej i maª ych symulacji stochastycznych takich jak: operacje na macierzach i wektorach o wspóª rz dnych rzeczywistych; programowanie w Scilabie; prosta graka; niektó re funkcje dla dwó ch wymienionych powy» ej (generowanie liczb losowych, rozwiazywnie ró wna«,...). nditemize Scilab umo» liwia wykonanie wielu innych operacji, w szczgó lno± ci w dziedzinie automatyki, obró bki sygnaªó w dzwiekowych, symulacji systemó w dynamicznych (za pomoc scicos)... Jako» e zamierzam systematycznie uzupelnia ten dokument, jestem w peª ni otwarty na wszelkie uwagi, sugestie i krytyk pozwalaj ce mi na jego ulepszenie (ró wnie» w przypadku bª dó w ortogracznych), piszcie do mnie. Maª a historia tego dokumentu: wersja 0.999 : modykacje rozdziaª u o grace oraz uzupeª nienie tre± ci rozdziaª u o programowaniu; wersja relatywna do Scilab-2.7; wersja 0.9999 (ten dokument) : dostosowanie rozdziaª u o grace do nowej graki obiektowej Scilaba; wersja relatywna do Scilab-4.0. nditemize W wyniku dopisania kilku paragrafó w, dokument straciª na spó jno± ci. Istnieje jednak obecnie inny podr cznik, któ ry jest dost pny na stronie internetowej Scilaba (czytaj dalej). m Podzi kowania ndcenter dla Doc Scilab, któ ry cz sto pomagaª mi na forum u» ytkownikó w; dla Bertranda Guiheneufa, któ ry dostarczyª mi magiczn scierzk do skompilowania Scilaba 2.3.1 pod linuxem (kompilacja pod linuxem nowszych wersji nie powoduje problemó w); dla moich kolegó w i przyjacióª Stéphane Mottelet 1, Antoine Grall, Christine Bernier- Katzentsev i Didier Schmitt; dla Helmuta Jarauscha, któ ry przetª umaczyª ten dokument na j zyk niemiecki, i któ ry zwró ciª moj uwag na kilka bª edó w; i dla wszystkich czytelnikó w za ich wsparcie, uwagi i korekty. nditemize ndtitlepage 1 dziekuje za ten pdf Stéphane! 2

Spis tre±ci 1 Wiadomo±ci wst pne 4 1.1 Co to jest Scilab?................................ 4 1.2 Jak korzystac z tego dokumentu?....................... 4 1.3 Podstawy pracy w Scilabie........................... 5 1.4 Gdzie znale¹ informacje na temat Scilaba?................. 5 1.5 Jaki jest statut programu Scilab?....................... 6 2 Operacje na macierzach i wektorach 7 2.1 Wprowadzanie macierzy............................ 7 2.2 Typowe wektory i macierze.......................... 8 2.3 Wyra»enia w Scilabie.............................. 11 2.3.1 Kilka podstawowych przykªadów wyra»e«macierzowych...... 11 2.3.2 Dziaªania na elementach macierzy.................. 14 2.3.3 Rozwi zywanie ukªadów równa«liniowych.............. 15 2.3.4 Indeksowanie, wydobywanie podmacierzy, konkatenacj macierzy i wektorów................................ 15 2.4 Informacje na temat ±rodowiska pracy(*)................... 18 2.5 Wywoªanie pomocy z linii polece«....................... 19 2.6 Generator prostych wykresów......................... 19 2.7 Pisanie i wykonywanie skryptów....................... 20 2.8 Dodatkowe informacje............................. 21 2.8.1 Skracanie instrukcji przy zapisie macierzowym............ 21 2.8.2 Pozostaªe uwagi dotycz ce rozwi zywania ukªadów równa«liniowych (*).................................... 21 2.8.3 Kilka prostych macierzy (*)...................... 24 2.8.4 Funkcje size i length......................... 29 2.9 wiczenia.................................... 29 3 Programowanie w Scilabie 31 3.1 P tle....................................... 31 3.1.1 P tla for................................ 31 3.1.2 P tla while............................... 32 3.2 Instrukcja warunkowa............................. 33 3.2.1 Instrukcja if-then-else....................... 33 3.2.2 Instrukcja select-case (*)...................... 34 3.3 Inne rodzaje zmiennych............................ 35 3.3.1 Ša«cuchy znaków............................ 35 3.3.2 Listy (*)................................. 36 3.3.3 Niektóre wyra»enia z wektorami i macierzami typu logiczego (boolen) 40 3.4 Funkcje..................................... 41 3.4.1 Przekazywanie parametrów (*).................... 44 3.4.2 Wy±wietlanie funkcji.......................... 44 3

3.4.3 Instrukcja break............................ 46 3.4.4 Kilka przydatnych dla funkcji prymitywów.............. 47 3.5 Ró»ne ró»no±ci................................. 49 3.5.1 Dªugo± identykatorów........................ 49 3.5.2 Priorytety operatorów......................... 49 3.5.3 Rekursja................................. 51 3.5.4 Funkcja jest te» zmienn........................ 51 3.5.5 Okna dialogowe............................. 52 3.5.6 Konwersja ªa«cucha znakowego do wyra»enia............ 52 3.6 Czytanie i pisanie................................ 53 3.6.1 Wejscie i wyj±cie w stylu Fortranu.................. 53 3.7 Wej±cie i wyj±cie w stylu C.......................... 57 3.8 Uwagi zwi zane z szybko±ci.......................... 58 3.9 wiczenia.................................... 62 4 Graka 64 4.1 Okna graczne................................. 64 4.2 Wprowadzenie do plot2............................ 65 4.3 plot2d z argumentami opcjonalnymi..................... 65 4.4 Inne wersje plot2d: plot2d2, plot2d3.................... 71 4.5 Rysowanie wi kszej ilo±ci krzywych zªo»onych z ró»nej ilo±ci punktów... 72 4.6 Zabawa z kontekstem gracznym....................... 73 4.7 Tworzenie histogramów............................ 75 4.8 Zapisywanie graki w ró»nych formatach................... 75 4.9 Prosta animacja................................. 76 4.10 Powierzchnie.................................. 78 4.10.1 Wprowadzenie do plot3d....................... 78 4.10.2 Kolory.................................. 80 4.10.3 plot3d z des facettes.......................... 81 4.10.4 Rysowanie powierzchni opisanej przy pomocy x = x(u; v), y = y(u; v), z = z(u; v)........................... 83 4.10.5 plot3d z interpolacj kolorów..................... 85 4.11 Krzywe w przestrzeni.............................. 86 4.12 Ró»no±ci..................................... 88 5 Zastosowania i uzupeªnienia 89 5.1 Równania ró»niczkowe............................. 89 5.1.1 Podstawowe u»ycie ode........................ 89 5.1.2 Van der Pol jeszcze raz......................... 90 5.1.3 Troche wi cej o ode.......................... 92 5.2 Generowniw liczb losowych.......................... 94 5.2.1 Funkcja rand.............................. 94 5.2.2 Funkcja grand............................. 97 5.3 Dystrubuanty i ich odwrotno±ci........................ 98 5.4 Proste symulacje stochastyczne........................ 99 5.4.1 Wprowadzenie i notacja........................ 99 5.4.2 Przedziaªy ufno±ci........................... 99 5.4.3 Wykres dystrubuanty empirycznej.................. 101 5.4.4 Test 2................................. 102 5.4.5 Test Koªmogorowa-Smirnova..................... 103 5.4.6 wiczenia................................ 104 6 Ciekawostki 107 4

6.1 Deniowanie wektora i macierzy wspóªczynnik po wspóªczynniku.... 107 6.2 Na temat warto±ci zwracanych przez funkcj................. 108 6.3 Funkcja zostaªa zmidykowana ale........................ 109 6.4 Problem z rand................................. 109 6.5 Wektory wierszowe, wektory kolumnowe..................... 109 6.6 Operator porównania.............................. 109 6.7 Liczby zespolone a liczby rzeczywiste..................... 109 6.8 Proste instrukcje a funkcje Scilaba...................... 110 6.9 Obliczanie wyra»e«logicznych......................... 111 A Odpowiedzi do wicze«z rozdziaªu 2 112 B Rozwi zania wicze«z rozdziaªu 3 114 C Rozwi zania wicze«z rozdziaªu 4 118 5

Rozdziaª 1 Wiadomo±ci wst pne 1.1 Co to jest Scilab? Dla osób znaj cych juz MATLAB-a odpowied¹ jest prosta Scilab jest jego darmowym odpowiednikiem (wi cej szczeguªów zwi zanych z tym tematem w dalszej cz ±ci), powstaªym 1 w I.N.R.I.A. (Institut National de Recherche en Informatique et Automatique). Skªadnia, z wyj tkiem nielicznych polece«, jest taka sama (istotne ró»nice wyst puj w przypadku graki). Osobom nie znajacym MATLABA powiem tylko, ze Scilab jest przyst pnym ±rodowiskiem do wykonywania oblicze«numerycznych gdy» dysponuje on odpowiednimi metodami w tym zakresie: rozwiazywanie ukladów liniowych, wyznaczanie warto±ci wªasnych, wektoró w wªasnych, dekompozycja dla warto±ci osobliwych i pseldo-osobliwych, szybka transformacja Fouriera, rozwiazywanie równa«ró»niczkowych, algorytmy optymalizacji, rozwiazywanie równa«nieliniowych, generowanie liczb losowych, dla wielu niezaawansowanych zastosowa«algebry liniowej w automatyce. Ponadto Scilab wyposa»ony jest w funkcje slu» ce do tworzenia graki, zarówno niskopoziomowej (wielok ty, odczytywanie wspóªrz dnych poªo»enia kursora, itp.) jak i wysokopoziomowej (krzywe, powierzchnie itp.). Wprowadzony j zyk programowania, dzi ki operowaniu notacj macierzow, jest prostym, ale pot»nym i efektywnym narz dziem. Wyszukiwanie bª dów w programach jest szybkie dzi ki ªatwemu operowaniu zmiennymi. W przypadku, gdy obliczenia b d zbyt czasochªonne (j zyk jest interpretowany... ) mo»liwe jest ªatwe poª czenie programu Scilaba z podprogramami napisanymi w C czy FORTRAN-ie. 1.2 Jak korzystac z tego dokumentu? W rozdziale drugim wyja±nione zostaªy podstawy pracy z Scilabem jako narzedziem do obliczen macierzowych. Wystarczy przesledzic proponowane przyklady. Sekcje oznaczone gwiazdk podczas pierwszego czytania mo»na pomin. Osoby zainteresowane zagadnieniami dotycz cymi graki, mog przeanalizowa pierwsze przykªady z rozdziaªu czwartego. Rozdziaª trzeci wyja±nia podstawy programowania w Scilabie. Zacz ªem pisa rozdziaª pi ty, który przedstawia niektóre zastosowania podobnie jak rozdziaª Ciekawostki, który przedstawia najcz ±ciej popeªniane bª dy przez u»ytkowników Scilaba (prze±lij mi równie» Twoje!). Ostatnim aspektem jest ±rodowisko graczne. Istniej nieznaczne ró»nice pomi dzy 1 Scilab wyko»ystuje du» ilo± funkcji pochodz cych z ró»nych miejsc, dostepnych czesto przez Netlib 6

±rodowiskami gracznymi przeznaczonymi dla Unix i Windows, polegaj ce na odmennym sposobie rozmieszczenia przycisków i menu. W tym dokumencie opieram si na wersji Unix aczkolwiek u»ytkownicy wersji przeznaczonej dla systemu Windows nie powinni natra na problemy ze znalezieniem odpowiednich opcji / przyciskow. 1.3 Podstawy pracy w Scilabie W najprostszym przypadku, Scilab mo»e byc wykorzystywany jako kalkulator zdolny wykonywa obliczenia na wektorach i macierzach liczb rzeczywistych i/lub zespolonych (ale tak»e na zwykªych skalarach) oraz do wizualizacji krzywych i powierzchni. W najprostrzych zadaniech raczej nie ma potrzeby pisania programow. Dosy szybko zaczniemy jednak korzysta ze skryptów (zbiorów instrukcji, polece«scilaba) a nastepnie funkcji. Oczywi±cie niezb dne w takich sytuacjach staje si u»ycie edytora tekstu, na przykªad emacs (Unix, Windows), wordpad (Windows), vi lub vim (Unix)... Scilab posiada aktualnie wªasny, zintegrowany edytor (scipad), który mo»e równie» sªó»y jako debuger dla funkcji. 1.4 Gdzie znale¹ informacje na temat Scilaba? W dalszej cz ±ci dokumentu zakªada si, i» czytelnik dysponuje wersj 4.0 programu. W celu uzyskania dodatkowych informacji odsyªam do Scilab home page: http://scilabsoft.inria.fr na której znale¹ mo»na ró»norodn dokumentacj oraz efekty pracy innych u»ytkowników. Scilab group wydaªa (w latach 1999 2001) okoªo dwudziestu artykuªów w czasopi±mie Linux magazie. S one szczególnie polecane przez autora, gdy» poruszaj wi kszo± zagadnie«zwi zanych z Scilabem (wiekszo±ci z nich w tym opracowaniu nawet si nie porusza). Uzyska je mo»na pod adresem http://www.saphir-control.fr/articles/ Na temat Scilaba prowadzone jest równie» forum dyskusyjne, w ramach którego istnieje mo»liwo± zadawania pyta«, dokonywania uwag, udzielania odpowiedzi na wcze±niej postawione pytania, itd: comp.sys.math.scilab Wszystkie zamieszczone tam wiadomo±ci s archiwizowane i dostepne ze strony domowej Scilaba po wybraniu Scilab newsgroup archive. Wybieraj c jeden z dwóch odsyªaczy Books and Articles on Scilab lub Scilab Related Links umieszczonych na stronie gªównej uzyskujemy dost p do wielu ró»nych dokumentów. W szczególnosci: wprowadzenie B. Ycart (Démarrer en Scilab et statistiques en Scilab); Scilab Bag Of Tricks autorstwa Lydia E. van Dijk i Christoph L. Spiel, który jest raczej przeznaczony dla osób dobrze znajacych ju» Scilaba (rozwój tej ksi»ki zostaª niestety brutalnie przerwany kilka lat temu); Travaux Pratiques sur Scilab classes par themes umo»liwia dost p do projektów realizowanych przez studentøw ENPC; wprowadzenie do informatyki z u»yciem Scilab-a (verb+http://kiwi.emse.fr/scila Oczywi±cie w zale»no±ci od potrzeb znale¹ mo»na wiele innych opracowa«traktuj cych problem w nieco odmienny ni» zamieszczony tutaj sposób. 7

1.5 Jaki jest statut programu Scilab? Osoby dobrze znaj ce oprogramowanie na licencji GPL z pewno±ci interesuje statut Scilaba jako programu darmowego. Oto jak na ten temat wypowiada si Doc na forum: Scilab: is it really free? Yes it is. Scilab is not distributed under GPL or other standard free software copyrights (because of historical reasons), but Scilab is an Open Source Software and is free for academic and industrial use, without any restrictions. There are of course the usual restrictions concerning its redistribution; the only specic requirement is that we ask Scilab users to s us a notice (email is enough). For more details see Notice.ps or Notice.tex in the Scilab package. Answers to two frequently asked questions: Yes, Scilab can be included a commercial package (provided proper copyright notice is included). Yes, Scilab can be placed on commercial CD's (such as various Linux distributions). Nie mniej jednak Scilab obecnie nie odpowiada kryteriom FSF czy OSI aby móc by traktowany jako program darmowy ze wzgl du na to,»e nie mo»na rozprowadz wersji zmodykowanych (bez autoryzacji ze strony INRIA). Mimo to, dzi ki swojemu statutowi, Scilab pozostanie w przyszªo±ci programem darmowym wraz ze swoimi plikami ¹ródªowymi. Z drugiej strony zanosi si na to,»e korsorcjum Scilab-a otrzyma licencj typu GPL lub LGPL patrz CECILL, i»e... tutu 8

Rozdziaª 2 Operacje na macierzach i wektorach Ta cz ± daje podstawy do poznania zastosowa«scilaba jako narz dzia do operacji macierzowych. Aby rozpocz prac ze Scilaben wystarczy wpisa scilab w terminalu 1 Je±li wszystko przebiega prawidªowo, na ekranie uka»e si okno Scilaba z gªównym menu zawieraj cym w szczególno±ci przyscisk Help, Demos a w oknie wprowadzania polece«uka»e si ------------------------------------------- scilab-4.0 Copyright (c) 1989-2006 Consortium Scilab (INRIA, ENPC) ------------------------------------------- Startup execution: loading initial environment --> gdzie --> jest znakiem zach ty. 2.1 Wprowadzanie macierzy Podstawowym typem danych w Scilabie jest macierz liczb rzeczywistych lub zespolonych. Najprostszym sposobem deniowania macierzy (wektora, skalara b d cych w istocie szczególnymi przypadkami macierzy) w ±rodowisku Scilab jest wprowadzenie z klawiatury listy elementów macierzy, stosuj c nast puj c konwencj : elementy tego samego wiersza oddzielone s spacj lub przecinkiem; lista elementów musi by uj ta w nawias kwadratowy []; ka»dy wiersz, z wyj tkiem ostatniego, musi by zako«czony ±rednikiem. Dla przykªadu koma: -->A=[1 1 1;2 4 8;3 9 27] da na wyj±ciu 1 Albo klikn c odpowiedni ikon. 9

A =! 1. 1. 1.!! 2. 4. 8.!! 3. 9. 27.! i oczywiscie macierz zostanie zachowana w pami ci. W przypadku, gdy instrukcja zostanie zako«czona ±rednikiem, wynik nie pojawi si na ekranie. Wpiszmy na przykªad -->b=[2 10 44 190]; aby zobaczy wspóªrz dne wprowadzonego wektora, wystarczy napisa -->b a odpowiedzi b dzie b =! 2. 10. 44. 190.! Bardzo dªuga instrukcja mo»e by napisana w kilku liniach, przy czym przechodz c do nast pnej linii, lini poprzedni nale»y zako«czy trzema kropkami, jak w poni»szym przykªadzie: -->T = [ 1 0 0 0 0 0 ;... --> 1 2 0 0 0 0 ;... --> 1 2 3 0 0 0 ;... --> 1 2 3 0 0 0 ;... --> 1 2 3 4 0 0 ;... --> 1 2 3 4 5 0 ;... --> 1 2 3 4 5 6 ] co daje T =! 1. 0. 0. 0. 0. 0.!! 1. 2. 0. 0. 0. 0.!! 1. 2. 3. 0. 0. 0.!! 1. 2. 3. 4. 0. 0.!! 1. 2. 3. 4. 5. 0.!! 1. 2. 3. 4. 5. 6.! W przypadku wprowadzania liczb zespolonych stosuje si nast puj c skªadnie: -->c=1 + 2*%i c = 1. + 2.i -->Y = [ 1 + %i, -2 + 3*%i ; -1, %i] Y =! 1. + i - 2. + 3.i!! - 1. i! 2.2 Typowe wektory i macierze Istniej funkcj do konstrukcji typowych macierzy i wektorów zatem przedstawiam tu jedn z pierwszych list (jest ich wi cej, o których mówimy w dalszej cz ±ci lub które mo»na znale¹ w Pomocy). Macierz jednostkowa Aby otrzyma macierz jednostkow o wymiarach 4 na 4 stosujemy instrukcj : 10

-->I=eye(4,4) I =! 1. 0. 0. 0.!! 0. 1. 0. 0.!! 0. 0. 1. 0.!! 0. 0. 0. 1.! Argumentami funkcji eye(n,m) jest liczba wierszy (n) oraz kolumn (m) (Uwaga : je»eli n < m (odpowiednio n > m) wówczas otrzymamy macierz odwzorowania wzajemnie jednoznacznego, surjekcja (odpowiednio injekcja) przestrzeni kanonicznej K m na K n.) Macierz diagonalna, wyciecie cz ±ci diagonalnej macierzy Aby otrzyma macierz diagonaln, w której elementy na gªównej przek tnej pochodz z wcze±niej zdeniowanego wektora b wpisujemy -->B=diag(b) B =! 2. 0. 0. 0.!! 0. 10. 0. 0.!! 0. 0. 44. 0.!! 0. 0. 0. 190.! Uwaga: Pisz c b nadal mamy dost p do wcze±niej zdeniowanego wektora, co pokazuje,»e Scilab rozró»nia wielko± liter. Zastosowanie na macierzy funkcji diag pozwala uzyska gªówn przek tn macierzy jako wektor kolumnowy -->b=diag(b) b =! 2.!! 10.!! 44.!! 190.! (Funkcja ta przyjmuje tak»e drugi, opcjonalny, argument porównaj wiczenia.) Macierze zerowa i jedynkowa Fnkcje zeros i ones pozwalaj odpowiednio stworzy macierze zerowe i macierze skªadaj ce si z jedynkek. Podobnie jak dla funkcji eye ich argumentami s liczba wierszy i liczba kolumn. -->C = ones(3,4) C =! 1. 1. 1. 1.!! 1. 1. 1. 1.!! 1. 1. 1. 1.! Mo»na tak»e u»y jako argument nazw macierzy ju» zdeniowanej w ±rodowisku. W efekcie otrzymujemy macierz o takich samych wymiarach co macierz b d ca argumentem -->O = zeros(c) O =! 0. 0. 0. 0.!! 0. 0. 0. 0.!! 0. 0. 0. 0.! 11

Macierz trójk tna Funcje triu i tril pozwalaj otrzyma macierz trójk tn górn i doln : -->U = triu(c) U =! 1. 1. 1. 1.!! 0. 1. 1. 1.!! 0. 0. 1. 1.! Macierze o elementach losowych Funkcja rand pozwala utworzy macierz o elementach peudolosowych (pochodz - cych z przedziaªu [0,1); mo»liwe jest tak»e u»ycie rozkªadu normalnego jak i podanie zarodka dla generatora liczb pseudolosowych): -->M = rand(2, 6) M =! 0.2113249 0.0002211 0.6653811 0.8497452 0.8782165 0.5608486!! 0.7560439 0.3303271 0.6283918 0.6857310 0.0683740 0.6623569! n elementowy wektor o staªej ró»nicy mi dzy elementami Aby wprowadzi wektor (wierszowy) x o n wspóªrz dnych równomiernie rozmieszczonych pomi dzy x 1 i x n (innymi sªowy tak aby x i+1 x i = xn x 1 n, n w zªów, 1 zatem n 1), u»ywamy funkcji linspace. -->x = linspace(0,1,11) x =! 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.! Instrukcj analogiczn pozwalaj c utworzy wektor o zadanej warto±ci pierwszej wspóªrz dnej, ustalonej ró»nicy pomi dzy wspóªrz dnymi i ostatniej wspóªrz dnej nie wi kszej ni» zadana warto± jest -->y = 0:0.3:1 y =! 0. 0.3 0.6 0.9! Skªadnia jest nast puj ca y = wartosc_poczatkowa:przyrost:wartosc_graniczna. Dok d pracujemy z liczbami caªkowitymi nie ma problemu z ustaleniem warto±ci granicznej odpowiadaj cej ostatniej skªadowej wektora. -->i = 0:2:12 i =! 0. 2. 4. 6. 8. 10. 12.! Dla liczb rzeczywistych jest to zdecydowanie trudniejsze do okre±lenia: (i) przyrost mo»e posiad niesko«czone rozwini cie w reprezentacji binarnej lub jego sko«czone rozwini cie mo»e wybiega poza zakres reprezentacji maszynowej liczb rzeczywistych powoduj c ich zaokr glenia; (ii) bª dy zaokr gle«numerycznych kumuluj si w miar obliczania kolejnych skªadowych wektora. -->xx = 0:0.05:0.60! 0. 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55! Uwaga: w zale»no±ci od komputera na jakim uruchomiony zostanie Scilab powy»szy przykªad mo»e da ró»nie wyniki, to znaczy 0:6 mo»e pojawi si jako ostatnia skªadowa. Cz sto przyrost równy jest 1, mo»na go w takiej sytuacj pomin : 12

-->ind = 1:5 ind =! 1. 2. 3. 4. 5.! W przypadku gdy przyrost jest dodatni (ujemny) oraz wartosc_poczatkowa>wartosc_gra (wartosc_poczatkowa<wartosc_granczna) otrzymujemy wektor bez wspóªrz dnych (!) nazywany w Scilabie macierz pust (patrz sekcja niektóre dodatkowe proste macierze): -->i=3:-1:4 i = [] -->i=1:0 i = [] 2.3 Wyra»enia w Scilabie Scilab jest j zykiem posiadaj cym bardzo prost skªadni (patrz rozdziaª nast pny), w której instrukcja przypisania ma posta zmienna = wyrazenie lub pro±ciej wyrazenie gdzie w ostatnim przypadku warto± wyrazenia jest przypisana do domy±lnej zmiennej o nazwie ans. Wyra»enia w Scilabie mog by tak proste (je±li chodzi o zapis) jak wyra»enia skalarne w innych j zykach programowania, ale mog skªada si z macierzy i wektorów co cz sto sprawia trudno± pocz tkujacym u»ytkownikom tego j zyka. Dla wyra»e«skalarnych mamy standardowe operatory +, -, *, / i ^ i najcz ±ciej stosowane funkcje przedstawione w tabeli 2 2.1. Deniuj c zmienn (b d c skalarem, wektorem, macierz ) jej warto± (warto±ci) nie musi by wyra»ona przez konkretn liczb, ale tak»e przez wyra»enie którego warto± zostanie jej przypisana. -->M = [sin(%pi/3) sqrt(2) 5^(3/2) ; exp(-1) cosh(3.7) (1-sqrt(-3))/2] M =! 0.8660254 1.4142136 11.18034!! 0.3678794 20.236014 0.5-0.8660254i! Uwaga: Powy»szy przykªad ilustruje potencjalne niebezpiecze«stwo podczas obliczania pierwiastka kwadratowego z liczy ujemnej. Scilab rozwa»a czy ma do czynienia z liczbami zespolonymi i zwraca jeden z pierwiastów jako rezultat. 2.3.1 Kilka podstawowych przykªadów wyra»e«macierzowych Dost pne s wszystkie proste dziaªania wykonywane na macierzach: suma dwóch macierzy, iloczyn macierzy, iloczyn skalarny i macierzowy itd. Oto kilka przykªadów (w których wykorzystujemy wcze±niej zdeniowane macierze). Uwaga: Tekst wyst pujacy w danym wierszu po znaku // oznacza dla Scilab-a komentarz. Nie jest interpretowany a jedynie dostarcza pewnych uwag i wyja±nie«osobie czytaj cej kod. 2 Scilab dysponuje innymi funkcjami matematycznymi takimi jak funkcje Legra, funkcje Bessela, funkcje eliptyczne, itd... oraz funkcje odnosz ce sie do znanych rozkªadów prawdopodobie«stwa (dystrybuanty i ich odwrotno±ci) 13

abs warto± bezwzgl dna, moduª exp eksponent log logarytm naturalny log10 logarytm o podstawie 10 cos cosinus (argument w radianach) sin sinus (argument w radianach) sin(x) sinc x tan tangente (argument w radianach) cotg cotangente (argument w radianach) acos arccos asin arcsin atan arctg cosh cosinus hiperboliczny sinh sinus hiperboliczny tanh tangens hiperboliczny acosh argch asinh argsh atanh argth sqrt pierwiastek kwadratowy floor E(x) = (bxc) = n, n x < n + 1; x 2 N ceil dxe = n, n 1 < x n; x 2 N int int(x) = bxc je±li x > 0 oraz = dxe dla x 0 R erf funkcja bª du erf (x) = p 2 x e t2 dt 0 erfc dopeªnienie R funkcji bª du okre±lone przez ercf (x) = 1 erf (x) = 2 +1 gamma (x) = t x 1 e t dt 0 lngamma ln( (x)) dlgamma d dx ln( (x)) Tablica 2.1: Wybrane funkcj u»ywane przez Scilaba. R +1 p x e t2 dt -->D = A + ones(a) // napisz A aby zobaczyc wczesniejsza zawartosc macierzy D =! 2. 2. 2.!! 3. 5. 9.!! 4. 10. 28.! -->A + M // nie mozna wykonac dzialania dodawania (niezgodnosc wymiaro!--error 8 inconsistent addition -->E = A*C // C jest macierza (3,4) zlozona z elementow o wartosci 1.0 E =! 3. 3. 3. 3.!! 14. 14. 14. 14.!! 39. 39. 39. 39.! --> C*A // nie mozna wykonac mnozenia (niezgodnosc wymiarow): jaka jest odpowied!--error 10 inconsistent multiplication --> At = A' // transpozycje otrzymuje sie stawiajac za nazwa macierzy znak apostr 14

At =! 1. 2. 3.!! 1. 4. 9.!! 1. 8. 27.! --> Ac = A + %i*eye(3,3) // tworzymy macierz o elementach zespolonych Ac =! 1. + i 1. 1.!! 2. 4. + i 8.!! 3. 9. 27. + i! --> Ac_adj = Ac' // w ten sposob otrzymujemy macierz transponowana o elementach ze Ac_adj =! 1. - i 2. 3.!! 1. 4. - i 9.!! 1. 8. 27. - i! -->x = linspace(0,1,5)' // konstrukcja wektora kolumnowego x =! 0.!! 0.25!! 0.5!! 0.75!! 1.! -->y = (1:5)' // inny wektor kolumnowy y =! 1.!! 2.!! 3.!! 4.!! 5.! -->p = y'*x p = 10. // iloczyn skalarny wektorow x i y -->Pext = y*x' // otrzymujemy macierz 5x5 rzedu 1, dlaczego? Pext =! 0. 0.25 0.5 0.75 1.!! 0. 0.5 1. 1.5 2.!! 0. 0.75 1.5 2.25 3.!! 0. 1. 2. 3. 4.!! 0. 1.25 2.5 3.75 5.! --> Pext / 0.25 // macierz mozna podzielic przez skalar! 0. 1. 2. 3. 4.!! 0. 2. 4. 6. 8.!! 0. 3. 6. 9. 12.!! 0. 4. 8. 12. 16.!! 0. 5. 10. 15. 20.! 15

--> A^2 // podniesienie do potegi drugiej macierzy! 6. 14. 36.!! 34. 90. 250.!! 102. 282. 804.! --> [0 1 0] * ans // mozna uzyc zmiennej ans, ktora zawiera wynik ostatniego dzi --> // przypisany do zadnej zmiennej! 34. 90. 250.! --> Pext*x - y + rand(5,2)*rand(2,5)*ones(x) + triu(pext)*tril(pext)*y; --> // wpisz ans aby zobaczyc wynik Inn, bardzo interestuj c cech charakterystyczn, jest mo»liwo± podania jako argumentu dla funkcji (z tabeli 2.1) macierzy zamiast kolejnych jej elementóws. Innymi sªowy wpisanie instrukcji f(a) oznacza obliczenie warto±ci funkcji f na kolejnych elementach macierzy A; otrzymamy sób macierz [f (a ij )]. Przykªady: -->sqrt(a)! 1. 1. 1.!! 1.4142136 2. 2.8284271!! 1.7320508 3. 5.1961524! -->exp(a)! 2.7182818 2.7182818 2.7182818!! 7.3890561 54.59815 2980.958!! 20.085537 8103.0839 5.320D+11! Uwaga: dla funkcji, które maj sens dla macierzy (co innego dla funkcji które stosuje si dla ka»dego elementu macierzy... ) na przyklad funkcja eksponent, nazwa funkcji jest poprzedzona liter m w ten sposób aby otrzyma eksponent macierzy A wystarczy wprowadzi kom expm 2.3.2 Dziaªania na elementach macierzy Aby pomno»y lub podzieli dwie macierze, A i B, o tych samych wymiarach, w taki spsób aby wynikiem byªa macierz, równie» o tych samych wymiarach, w której ka»dy element jest iloczynem (ilorazem) odpowiednich elementów macierzy A i B nale»y u»yc operatorów.* lub./. A.*B jest macierz o elementach [a ij b ij ] natomiast A./B jest macierz o elementach [a ij =b ij ]. Podobnie mo»na podnie± do pot gi ka»dy z elementów macierzy wpisuj c operator.^: A.^p pozwoli otrzyma macierz o wyrazach [a p ij ]. Rozwa»my przykªad: -->A./A! 1. 1. 1.!! 1. 1. 1.!! 1. 1. 1.! Uwagi: W przypadku gdy A nie jest macierz kwadratow dziaªanie A^n b dzie 16

wykonywane na kolejnych elementach macierzy A. Zaleca si jednak stosowanie zapisu A.^n poniewa» jest on bardziej czytelny. Je±li s jest skalarem oraz A jest macierz wówczas s.^a daje macierz o wyrazach s a ij. 2.3.3 Rozwi zywanie ukªadów równa«liniowych Aby rozwi za ukªad równa«liniowych gdzie macierz wspóªczynników jest kwadratowa, Scilab stosuje rozkªad LU z cz ±ciow zamian wierszy prowadz c do rozwiazania dwóch trójk tnych ukªadów równa«. Jest to jednak operacja niewidoczna dla u»ytkownika dzi ki wyko»ystaniu operatora \: -->b=(1:3)' // tworzymy wektor b b =! 1.!! 2.!! 3.! -->x=a\b x =! 1.!! 0.!! 0.! // rozwiazujemy Ax=b -->A*x - b // sprawdzamy poprawnosc wyniku! 0.!! 0.!! 0.! Aby zapami ta ten sposób post powania, nale»y mie na uwadze ukªad pocz tkowy Ax = b a nast pnie pomno»y ukªad lewostronnie przez A 1 (co oznacza podzielenie przez macierz A). Sposób ten daje dokªadny wynik, ale w ogólno±ci wyst puj bª dy zaokr glenia spowodowane arytmetyk liczb zmiennoprzecinkowych. -->R = rand(100,100); // stawiamy srednik na koncu aby uniknac zalewu ekranu licz -->y = rand(100,1); -->x=r\y; // jak wyzej // rozwiazanie ukladu Rx=y -->norm(r*x-y) // funkcja norm pozwala obliczyc norme wektorow (macierzy) // (obliczyc mozemy dwie normy -- euklidesowa i hermitea) 1.134D-13 Uwaga: Nie otrzymacie wyniku identycznego z moim je»eli funkcja rand nie zostanie u»yta tak jak w powy»szym przykªadzie... W momencie gdy rozwi zanie ukªadu liniowego jest w tpliwe, Scilab wy±wietla informacje ostrzegaj ce i pozwalaj ce podj odpowiednie w takiej sytuacji dziaªania. 2.3.4 Indeksowanie, wydobywanie podmacierzy, konkatenacj macierzy i wektorów Aby odniesc si do konkretnego elemetnu macierzy wystarczy przy nazwie poda w nawiasie jego indeksy. Na przykªad: 17

-->A33=A(3,3) A33 = 27. -->x_30 = x(30,1) x_30 = - 1.2935412 -->x(1,30)!--error 21 invalid index -->x(30) - 1.2935412 Uwaga: Je»eli macierz jest wektorem kolumnowym wystarczy jedynie wpisa numer linii, w której znajduje si szukany element; analogicznie post pujemy w przypadku wektora wierszowego. Zalet j zyka Scilab jest mo»liwo± ªatwego wydobywanie podmacierzy z macierzy wyj±ciowej. -->A(:,2) // aby uzyskac 2 kolumne,...! 1.!! 4.!! 9.! -->A(3,:) //... 3 wiersz! 3. 9. 27.! -->A(1:2,1:2) // podmacierz glowna rzedu 2! 1. 1.!! 2. 4.! Omówmy teraz ogóln skªadni. Niech macierz A ma wymiary (n:m), niech dalej v1 = (i 1 ; : : : ; i p ) oraz v2 = (j 1 ; : : : ; j q ) oznaczaj wektory (wierszowe lub kolumnowe), w których warto±ci s takie,»e 1 i k n et 1 j k m, wówczas A(v1,v2) oznacza macierz o wymiarach (p; q) utworzon z wyrazów macierzy A odpowiadaj cych wierszom i 1 ; i 2 ; : : : ; i p oraz kolumnom j 1 ; j 2 ; : : : ; j q. -->A([1 3],[2 3])! 1. 1.!! 9. 27.! -->A([3 1],[2 1])! 9. 3.!! 1. 1.! W praktyce dokonujemy prostrzych ekstrakcji, wydobywa si elementy umieszczone w przylegaj cych blokach na przykªad w kolumnach lub wierszach. W takim przypadku u»yjemy wyra»enia i_poczatkowe:przyrost:i_koncowe w celu wygenerowania wektora wska¹ników. Natomiast aby wygenerowa peªny ob- 18

szar odpowiadaj cy wymiarowi u»yjemy operatora : (jak wida to w pierwszym przykªadzie). Zatem aby otrzyma podmacierz zªo»on z 1 i 3 wiersza zastosujemy -->A(1:2:3,:) // lub inaczej A([1 3],:)! 1. 1. 1.!! 3. 9. 27.! Przejd¹my teraz do operacji konkatencaji macierzy, która umo»liwia poª czenie (ustawiaj c obok siebie) wiele macierzy w celu otrzymania jednej zwanej macierz blokow. Dla przykªadu rozwa»my nast puj c macierz podzielon na bloki: A = 0 B @ 1 2 3 4 1 4 9 16 1 8 27 64 1 16 81 256 1 C A = A11 A 12 : A 21 A 22 Nale»y zatem zdeniowa podmacierze A 11 ; A 12 ; A 21 ; A 22 : -->A11=1; -->A12=[2 3 4]; -->A21=[1;1;1]; -->A22=[4 9 16;8 27 64;16 81 256]; ostatecznie otrzymujemy macierz A powstaª z poª czenia 4 bloków: -->A=[A11 A12; A21 A22] A =! 1. 2. 3. 4.!! 1. 4. 9. 16.!! 1. 8. 27. 64.!! 1. 16. 81. 256.! Z punktu widzenia syntaktyki, macierze blokowe traktowane s jak zwykªe skalary (nale»y przy tym oczywi±cie pami ta o zgodno±ci wymiarów odpowidnich macierzy blokowych). Istnieje odr bna skªadnia sªu» ca do jenoczesnego usuni cia z macierzy wierszy lub kolumn: niech v = (k 1 ; k 2 ; : : : ; k p b dzie wektorem skªadaj cym si z numerów wierszy lub kolumn macierzy M. Polecenie M(v,:)=[] spowoduje usuni cie wierszy o numerach k 1 ; k 2 ; : : : ; k p z macierzy M, natomiast M(:,v)=[] usunie kolumny k 1 ; k 2 ; : : : ; k p. Ponadto je±li u jest wektorem (wierszowym lub kolumnowym), u(v)=[] usunie odpowiednie skªadowe. Kolejno± elementów macierzy Macierze w Scilabie s skªadowane kolumna za kolumn i ta kolejno± elementów wykorzystywana jest w wielu funkcjach (porównaj dla przykªadu polecenie matrix, która umo»liwia zmian wymiarów macierzy). W szczególno±ci dla operacji wstawiania i wydobywania mo»liwe jest u»ycie domy±lnego porz dku przy wykorzystaniu jednynie pojedy«czego wektora indeksów (w miejsce dwóch, jako wska¹nik kolumn lub wierszy). Oto kilka przykªadów opartych na wcze±niej zdeniowanej macierzy A: -->A(5) 19

2. -->A(5:9)! 2.!! 4.!! 8.!! 16.!! 3.! -->A(5:9) = -1 // spowoduje wstawienie elementu o wartosci -1 A =! 1. - 1. - 1. 4.!! 1. - 1. 9. 16.!! 1. - 1. 27. 64.!! 1. - 1. 81. 256.! 2.4 Informacje na temat ±rodowiska pracy(*) Wystarczy wpisa who a otrzymamy w ten sposób nast puj ce informacje -->who your variables are... Anew A A22 A21 A12 A11 x_30 A33 x y R b Pext p Ac_adj Ac At E D cosh ind xx i linspace M U O zeros C B I Y c T startup i scicos_pal home PWD TMPDIR percentlib fraclablib soundlib xdesslib utillib tdcslib siglib s2flib roblib optlib m elemlib commlib polylib autolib armalib alglib mtlblib SCI % %T %z %s %nan %inf old newstacksize $ %t %f %eps %io %i %e %pi using 14875 elements out of 1000000. and 75 variables out of 1023 Zmienne, które zostaªy wprowadzone Anew, A,A22, A21,...,b w porz dku odwrotnym do ich wczytywania. Wªa±ciwie pierwsz utworzon zmienn byªa macierz A ale powi kszyli±my jej wymiar (z (3,3) do (4,4)) w przykªadzie prezentuj cym konkatenacj macierzy. W takim przypadku zmienna pocz tkowa zostaje zast piona now zmienn. O tym istotnym fakcie powiemy jeszcze przy okazcji omawiania programowania w Scilab-ie; Nazwy bibliotek Scilab-a (posiadaj cych rozszerzenie lib) i funkcji: cosh. To znaczy funkcje (te opisane w j zyku Scilab-a) oraz biblioteki traktowane s przez Scilaba jak zmienne. Uwaga: Procedury w Scilabie zaprogramowane w Fortran 77 i C nazywane s prymitywami Scilaba i nie s uwa»ane za zmienne w Scilabie. W dalszej cz ±ci tego dokumentu u»ywa si czasem przesadnie sformuªowania prymityw aby zaznaczy funkcje Scilab-a (programów w j zyku Scilab), które s zawarte w standardowo dost pnym ±rodowisku. Staªe predeniowane, takie jak, e i i epsilon maszynowy eps oraz dwie inne staªe, klasyczne w arytmetyce zmiennoprzecinkowej: nan - ang. not a number, inf 1. Zmienne, których nazwa poprzedzona jest znakiem % 20