Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 1
Wprowadzenie do programowania w SciLab:
typy danych, wyrażenia, operatory,
funkcje własne, skrypty.
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 2
Plan zajęć
●
Wprowadzenie, stałe specjalne, podstawowe operatory i funkcje
●
Zmienne liczbowe, tablicowe, tekstowe, konwersja i przeliczanie wyrażeń tekstowych
●
Deklaracja wielomianów
●
Operatory logiczne
●
Deklaracja funkcji użytkownika
●
Skrypty
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 3
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 4
-->3 + 2.5
ans =
5.5
-->10 + 6/2
ans =
13.
Podstawowe operatory działań matematycznych
+ dodawanie
2 + 2
= 4
-
odejmowanie
4 – 1
= 3
*
mnożenie
3 * 2
= 6
/
dzielenie
6 / 2
= 3
^ potęgowanie
4 ^ 2
= 16
-->8*3 - 2^2
ans =
20.
-->(10 + 6)/2
ans =
8.
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 5
Stałe specjalne
%pi
liczba
π
( 3.1415927...)
%e
liczba e
(2.7182818...)
%i
%inf
nieskończoność
%eps
wielkość „bardzo mała” (dokładność maszyny liczącej)
%nan
wielkość nie będąca liczbą (NotANumber)
%t
stała logiczna = True (prawda)
%f
stała logiczna = False (fałsz)
1
−
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 6
Kilka podstawowych funkcji
abs()
wartość bezwzględna, moduł liczby
sqrt()
pierwiastek
sin(), cos()
sinus, cosinus
exp()
eksponent
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 7
Kilka podstawowych funkcji
abs()
wartość bezwzględna, moduł liczby
sqrt()
pierwiastek
sin(), cos()
sinus, cosinus
exp()
eksponent
Obliczyć wyrażenia:
ε
π
π
+
+
∞
−
+
6
11
3
)
2
(
)
5
sin(
3
5
e
e
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 8
Kilka podstawowych funkcji
abs()
wartość bezwzględna, moduł liczby
sqrt()
pierwiastek
sin(), cos()
sinus, cosinus
exp()
eksponent
Obliczyć wyrażenia:
ε
π
π
+
+
∞
−
+
6
11
3
)
2
(
)
5
sin(
3
5
e
e
-->%inf+11
ans =
Inf
-->6+%eps
ans =
6.
-->sin(%pi/5)
ans =
0.5877853
-->sqrt(2+exp(5))
ans =
12.264304
-->abs(%e-3*
%pi)^(1/3)
ans =
1.8858127
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 9
Obliczyć wyrażenia:
)
1
1
(
sin
)
2
sin(
2
)
2
(
))
cos(
sin(
2
3
4
3
2
π
π
π
π
π
−
+
+
+
+
−
e
e
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 10
Obliczyć wyrażenia:
)
1
1
(
sin
)
2
sin(
2
)
2
(
))
cos(
sin(
2
3
4
3
2
π
π
π
π
π
−
+
+
+
+
−
e
e
Ćwiczenie
-->sin(%pi-cos(exp(2)))
ans =
0.4334848
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 11
Obliczyć wyrażenia:
)
1
1
(
sin
)
2
sin(
2
)
2
(
))
cos(
sin(
2
3
4
3
2
π
π
π
π
π
−
+
+
+
+
−
e
e
Ćwiczenie
-->sin(%pi-cos(exp(2)))
ans =
0.4334848
-->sqrt(2+exp(3))/(2+sin(sqrt(2+%pi)))
ans =
1.6984457
-->(%pi+%pi^4)^(1/3)/sin(1-1/%pi)^2
ans =
11.71208
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 12
w = [2,3,4]
podstawienie wektora (wierszowego)
v = [1;2;3]
podstawienie wektora (kolumnowego)
m = [1,2;3,4]
podstawienie macierzy ( 2 wiersze, 2 kolumny)
t = w(2)
podstawienie współrzędnej wektora
b = m(1,2)
podstawienie elementu macierzy
a = 2
podstawienie liczby rzeczywistej
5
pojedyncza wartość
tablica
3
1
2
2
Zmienne - instrukcja podstawienia:
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 13
wx = [1,3,5,7,9]
lub
wx = 1:2:9
lub
wx = 1:2:10
●
1
pierwsza współrzędna
●
2
krok, wx(i) = wx(i-1) + krok
●
9
ostatnia współrzędna
wz = [1,2,3,4,5,6,7,8]
lub
wz = 1:8
domyślny krok = 1
wt = [1;3;5;7;9]
lub
wt = wx'
transpozycja wektora
Zmienne - instrukcja podstawienia
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 14
→ A =[1,2,3,4,5,6; 8,8,8,8,8,8]
A =
! 1. 2. 3. 4. 5. 6.!
! 8. 8. 8. 8. 8. 8.!
-->A(1,3)
ans =
3.
pierwszy indeks dotyczy
wiersza
-->A(1,3:6)
ans =
! 3. 4. 5. 6. !
-->B = A(1:2,2:3)
B =
! 2. 3. !
! 8. 8. !
Zmienne - instrukcja podstawienia
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 15
Zmienne - instrukcja podstawienia
→ A =[1,2,3,4,5,6; 8,8,8,8,8,8]
A =
! 1. 2. 3. 4. 5. 6.!
! 8. 8. 8. 8. 8. 8.!
-->B = matrix(A, 3, 4)
B =
! 1. 8. 4. 8. !
! 8. 3. 8. 6. !
! 2. 8. 5. 8. !
zmiana kształtu macierzy – elementy macierzy czytane kolumnami
9
3
8
7
2
10
4
12
11
5
6
10
1
4
3
7
8
6
11
9
5
12
2
1
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 16
●
Zdeklaruj wektor X = [-5
π
,-4
π
,...,5
π
,6
π
]
●
Przepisz elementy wektora X do macierzy A (3 wiersze, 4 kolumny)
wpisując wg kolumn
●
Zdeklaruj wektor Y, tworząc go jako wektor kolumnowy z pierwszych 4
współrzędnych wektora X
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 17
●
Zdeklaruj wektor X = [-5
π
,-4
π
,...,5
π
,6
π
]
●
Przepisz elementy wektora X do macierzy A (3 wiersze, 4 kolumny)
wpisując wg kolumn
●
Zdeklaruj wektor Y, tworząc go jako wektor kolumnowy z pierwszych 4
współrzędnych wektora X
→
X=-5*%pi:%pi:6*%pi
X =
! - 15.707963 - 12.566371 ...
! ... 12.566371 15.707963 18.849556 !
-->A=matrix(X,3,4)
A =
! - 15.707963 - 6.2831853 3.1415927 12.566371 !
! - 12.566371 - 3.1415927 6.2831853 15.707963 !
! - 9.424778 0. 9.424778 18.849556 !
-->Y=X(1:4)'
Y =
! - 15.707963 !
! - 12.566371 !
! - 9.424778 !
! - 6.2831853 !
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 18
Kilka funkcji macierzowych
→ w = zeros(1:3)
podstawienie pod
w
wektora trzech zer
w =
! 0. 0. 0.!
→ x = ones(1:6)
podstawienie pod
x
wektora sześciu jedynek
x =
! 1. 1. 1. 1. 1. 1.!
→ A = ones(3,4)
podstawienie pod
A
macierzy 3x4 złożonej z jedynek
A =
! 1. 1. 1. 1. !
! 1. 1. 1. 1. !
! 1. 1. 1. 1. !
→ A(1,1:3) = w
podstawienie pod pierwsze 3 elementy pierwszego
wiersza macierzy
A
współrzędnych wektora
x
A =
! 0. 0. 0. 1. !
! 1. 1. 1. 1. !
! 1. 1. 1. 1. !
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 19
Kilka funkcji macierzowych
→ w = rand()
podstawienie pod
w
losowo wybranej liczby z [0,1)
w =
0.0002211
→ x = 10*rand(1:3)
podstawienie pod
x
wektora losowego liczb z [0,10)
x =
! 0.6837404 5.6084861 6.6235694 !
→ sin(x)
obliczenie wartości funkcji
sin()
dla wszystkich
elementów tablicy
x
ans =
! 0.6316970 - 0.6246625 0.3338491 !
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 20
-->help sin
Pomoc – opis funkcji dostępnych w SciLab
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 21
x=2;y=3
T='x+2*y'
podstawienie ciągu znaków
evstr(T)
obliczenie wartości wyrażenia T
→ x = 2
x =
2.
→ y = 3
y =
3.
→ T ='x+2*y'
T =
x+2*y
→ evstr(T)
ans =
8.
Zmienne tekstowe
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 22
p = poly([1,2,3],'x'); w = poly(0,'x')
podstawienie wielomianu o podanych pierwiastkach
q = poly([1,2,3],'x','c')
podstawienie wielomianu o podanych współczynnikach
-->p = poly([1, 2, 3],'x')
p = 2 3
- 6 + 11x - 6x + x
-->q = poly([1, 2, 3],'x','c')
q = 2
1 + 2x + 3x
Wielomiany
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 23
p = poly([1,2,3],'x'); w = poly(0,'x')
podstawienie wielomianu o podanych pierwiastkach
q = poly([1,2,3],'x','c')
podstawienie wielomianu o podanych współczynnikach
-->p = poly([1, 2, 3],'x')
p = 2 3
- 6 + 11x - 6x + x
-->q = poly([1, 2, 3],'x','c')
q = 2
1 + 2x + 3x
Wielomiany
roots(p)
obliczenie pierwiastków wielomianu
p
-->roots(p)
ans =
1.
2.
3.
roots(q)= ?
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 24
Dla określonych wielomianów możliwe są:
●
dodawanie, mnożenie, dzielenie (tylko gdy mają tę samą zmienną)
oblicz wyrażenia p+q, p*q, p/q, wylicz pierwiastki
dwóch pierwszych wielomianów
-
->p+q
ans = 2 3
- 5 + 13x - 3x + x
-->p*q
ans = 2 3 4 5
- 6 - x - 2x + 22x - 16x + 3x
-->p/q
ans = 2 3
- 6 + 11x - 6x + x
----------------
2
1 + 2x + 3x
Wielomiany
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 25
2 == 2; [1 2 3]== [2 2 2]
porównanie wartości
~( 1 == 2 )
zaprzeczenie
[1 2 3]== 1
porównanie współczynników tablicy z podaną wartością
w | z
operator alternatywy (lub)
w & z
operator koniunkcji (i)
Operacje logiczne
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 26
Zdeklaruj wektory o
współczynnikach stałych
logicznych
●
a=[ T T F T ],
●
b=[ F T F T].
Wyświetl
●
wektor przeciwny do a
●
koniunkcję a i b
●
alternatywę a i b
●
koniunkcję a i wektora
przeciwnego do b
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 27
Zdeklaruj wektory o
współczynnikach stałych
logicznych
●
a=[ T T F T ],
●
b=[ F T F T].
Wyświetl
●
wektor przeciwny do a
●
koniunkcję a i b
●
alternatywę a i b
●
koniunkcję a i wektora
przeciwnego do b
-->a=[ %T %T %F %T ]
a =
! T T F T !
-->b=[%F %T %F %T]
b =
! F T F T !
-->~a
ans =
! F F T F !
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 28
Zdeklaruj wektory o
współczynnikach stałych
logicznych
●
a=[ T T F T ],
●
b=[ F T F T].
Wyświetl
●
wektor przeciwny do a
●
koniunkcję a i b
●
alternatywę a i b
●
koniunkcję a i wektora
przeciwnego do b
-->a=[ %T %T %F %T ]
a =
! T T F T !
-->b=[%F %T %F %T]
b =
! F T F T !
-->~a
ans =
! F F T F !
-->a&b
ans =
! F T F T !
-->a|b
ans =
! T T F T !
-->a & ~b
ans =
! T F F F !
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 29
Wykorzystanie wbudowanego edytora
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 30
Definiowane funkcje użytkownika
Funkcja - przyporządkowanie
x
y
z
Obliczenie wyniku
wynik
Definiujemy:
•
•
nagłówek funkcji
•
nazwa funkcji,
•
lista argumentów
•
oczekiwane wyniki
•
sposób obliczenia funkcji – algorytm wraz z instrukcją podstawienia
argumenty
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 31
funkcja obliczająca przekątną prostokąta
function [c] = przekatna(a,b)
c = sqrt(a^2+b^2)
endfunction
Definiowane funkcje użytkownika
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 32
funkcja obliczająca przekątną prostokąta
function [c] = przekatna(a,b)
c = sqrt(a^2+b^2)
endfunction
Load into Sclilab
przesłanie do interpretera
całości skryptu
Evaluate selection
przesłanie do interpretera
zaznaczonego fragmentu skryptu
-->
function [c]=przekatna(a,b), c=sqrt(a^2+b^2), endfunction,
-->przekatna(3,4)
ans =
5.
Definiowane funkcje użytkownika
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 33
Zdefiniować w edytorze funkcję dokonującą zamiany
współrzędnych biegunowych na kartezjańskie
Zapisać zawartość edytora do pliku
~/biegun.sci
Obliczyć współrzędne kartezjańskie punktu odległego od środka
układu współrzędnych o wielkość = 1, przy nachyleniu prostej
łączącej punkt z początkiem układu współrzędnych pod kątem 60
stopni
Przykład
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 34
Zdefiniować w edytorze funkcję dokonującą zamiany
współrzędnych biegunowych na kartezjańskie
Zapisać zawartość edytora do pliku
~/biegun.sci
Obliczyć współrzędne kartezjańskie punktu odległego od środka
układu współrzędnych o wielkość = 1, przy nachyleniu prostej
łączącej punkt z początkiem układu współrzędnych pod kątem 60
stopni
Przykład
function [x,y]=biegun(r,fi)
x=r*cos(fi); y=r*sin(fi);
endfunction
-->
[a,b]=biegun(1,%pi/3)
b =
0.8660254
a =
0.5
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 35
Przy użyciu zdefiniowanych funkcji
przekatna
i
biegun
wykonać
●
Podstaw
a=3, b=5
●
Oblicz przekątną
pr
prostokątu o
bokach
a,b
●
Znajdź współrzędne kartezjańskie
punktu określonego współrzędnymi
biegunowymi :
●
Promień jest równy przekątnej
prostokąta o bokach
a,b
●
Kąt
fi
jest równy kątowi nachylenia
przekątnej prostokąta o bokach
a,b
do boku
a
(skorzystaj z funkcji
acos()
lub
asin()
)
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 36
Przy użyciu zdefiniowanych funkcji
przekatna
i
biegun
wykonać
●
Podstaw
a=3, b=5
●
Oblicz przekątną
pr
prostokątu o
bokach
a,b
●
Znajdź współrzędne kartezjańskie
punktu określonego współrzędnymi
biegunowymi :
●
Promień jest równy przekątnej
prostokąta o bokach
a,b
●
Kąt
fi
jest równy kątowi nachylenia
przekątnej prostokąta o bokach
a,b
do boku
a
(skorzystaj z funkcji
acos()
lub
asin()
)
Ćwiczenie
-
->a=3; b=5
b =
5.
-->pr=przekatna(a,b)
pr =
5.8309519
-->fi=acos(a/pr)
fi =
1.0303768
-->[x,y]=biegun(pr,fi)
y =
5.
x =
3.
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 37
funkcja dokonuje zamiany współrzędnych biegunowych na
kartezjańskie
użycie polecenia deff()
deff('[x,y]=biegun(r,fi)','x=r*cos(fi);y=r*sin(fi)')
użycie zapisu
function ... endfunction
function [x,y]=biegun(r,fi)
x=r*cos(fi); y=r*sin(fi);
endfunction
Definiowane funkcje użytkownika
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 38
Określić funkcję
sfera
(przy użyciu polecenia
deff
), dokonującą
zamiany współrzędnych sferycznych na kartezjańskie wg wzorów:
x = r * cos(fi) * sin(psi)
y = r * sin(fi) * sin(psi)
z = r * cos(psi)
Wylicz współrzędne kartezjańskie dla punktu podanego we
współrzędnych sferycznych (1,
π/3, π/4
)
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 39
Określić funkcję
sfera
(przy użyciu polecenia
deff
), dokonującą
zamiany współrzędnych sferycznych na kartezjańskie wg wzorów:
x = r * cos(fi) * sin(psi)
y = r * sin(fi) * sin(psi)
z = r * cos(psi)
Wylicz współrzędne kartezjańskie dla punktu podanego we
współrzędnych sferycznych (1,
π/3, π/4
)
Ćwiczenie
-
->deff('[x,y,z]=sfera(r,fi,psi)','x = r*cos(fi)*sin(psi);...
y = r*sin(fi)*sin(psi); z = r*cos(psi)')
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 40
Określić funkcję
sfera
(przy użyciu polecenia
deff
), dokonującą
zamiany współrzędnych sferycznych na kartezjańskie wg wzorów:
x = r * cos(fi) * sin(psi)
y = r * sin(fi) * sin(psi)
z = r * cos(psi)
Wylicz współrzędne kartezjańskie dla punktu podanego we
współrzędnych sferycznych (1,
π/3, π/4
)
Ćwiczenie
-
->deff('[x,y,z]=sfera(r,fi,psi)','x = r*cos(fi)*sin(psi);...
y = r*sin(fi)*sin(psi); z = r*cos(psi)')
-->[x,y,z]=sfera(1,%pi/3,%pi/4)
z =
0.7071068
y =
0.6123724
x =
0.3535534
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 41
●
Deklaracja funkcji – oddzielne pliki (rozszerzenie *.sci )
●
Wczytanie funkcji do SciLaba
●
Po ponownym uruchomieniu SciLaba, sprawdzić czy można
skorzystać z funkcji
biegun()
-->exists('biegun')
ans =
0.
●
Wyświetlić na ekranie zawartość pliku
/pub/programy/biegun.sci
●
Wczytać definicję funkcji poleceniem Getf (menu File)
●
Ponownie sprawdzić czy można skorzystać z funkcji
biegun()
●
Przeliczyć współrzędne biegunowe (2,
π/3
) na współrzędne
kartezjańskie
Definiowane funkcje – wykorzystanie bibliotek
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 42
Definiowane funkcje – wykorzystanie bibliotek
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 43
Definiowane funkcje – wykorzystanie bibliotek
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 44
Wyświetlić na ekranie zawartość pliku
lab_scilab_1.dem
znajdującego się w katalogu
/pub/programy
Wczytać skrypt
lab_scilab_1.dem
(z menu FILE wybrać pozycję FILE OPERATIONS, wskazać plik, wybrać EXEC i
kliknąć Ok)
Wykonać kolejne, zapisane polecenia naciskając klawisz [ENTER]
Skrypty
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 45
Funkcja
mode(k)
stosowana międzu innymi w plikach typu 'exec', decyduje w zależności od wartości
parametru k o sposobie wyswietlania informacji podczas wykonywania skryptów
●
k = 1 : (wartość domyslna) polecenia pliku 'exec' wykonywane są w sposób nie
interaktywny (ciągły), pokazując wyniki na ekranie
●
k = -1 : polecenia pliku 'exec' wykonywane są w sposób ciągły, nie pokazując
wyników wykonania na ekranie
●
k = 7 : wykonywanie skryptu w sposób interaktywny, każda instrukcja wymaga
potwierdzenia (klawiszem ENTER)
Skrypty (exec file)
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 46
Przy użyciu dowolnego, dostępnego edytora utwórz skrypt
moje_funkcje.sci
(zapisując go w katalogu domowym) i zdefiniuj w
nim następujące funkcje:
kula(r)
- wynikiem wektor
[s, v]
, gdzie
s
jest powierzchnią kuli o
promieniu
r
,
v
jej objętością.
Przetestuj działanie skryptu obliczając: kula(2)
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 47
Przy użyciu dowolnego, dostępnego edytora utwórz skrypt
moje_funkcje.sci
(zapisując go w katalogu domowym) i zdefiniuj w
nim następujące funkcje:
kula(r)
- wynikiem wektor
[s, v]
, gdzie
s
jest powierzchnią kuli o
promieniu
r
,
v
jej objętością.
Przetestuj działanie skryptu obliczając: kula(2)
function [s,v]=kula(r)
s=4*%pi*r^2; v=4/3*%pi*r^3;
endfunction
[s,v]=kula(2)
v =
33.510322
s =
50.265482
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 48
W skrypcie
moje_funkcje.sci
i zdefiniować funkcje
jedynki(n,m),
wynikiem działania funkcji ma być macierz A
n x m
wypełniona jedynkami
Przetestuj działanie skryptu obliczając: jedynki(6,6)
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 49
W skrypcie
moje_funkcje.sci
i zdefiniować funkcje
jedynki(n,m),
wynikiem działania funkcji ma być macierz A
n x m
wypełniona jedynkami
Przetestuj działanie skryptu obliczając: jedynki(6,6)
Ćwiczenie
function A = jedynki(n,m)
A = ones(n,m);
endfunction
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 50
W skrypcie
moje_funkcje.sci
i zdefiniować funkcje
jedynki(n,m),
wynikiem działania funkcji ma być macierz A
n x m
wypełniona jedynkami
uzupełnij funkcję o instrukcje które
●
k-ty wiersz macierzy A wypełnią zerami ( k dodać do listy argumentów),
●
ostatni wiersz macierzy A wypełnią kolejnymi liczbami naturalnymi
(rozpoczynając od jedynki)
●
ostatnią kolumnę macierzy A, z wyłączeniem elementu w ostatnim wierszu)
wypełnią kolejnymi liczbami naturalnymi (rozpoczynając od jedynki)
Przetestuj działanie skryptu obliczając: jedynki(6,6)
Ćwiczenie
function A = jedynki(n,m)
A = ones(n,m);
endfunction
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 51
W skrypcie
moje_funkcje.sci
i zdefiniować funkcje
jedynki(n,m),
wynikiem działania funkcji ma być macierz A
n x m
wypełniona jedynkami
uzupełnij funkcję o instrukcje które
●
k-ty wiersz macierzy A wypełnią zerami ( k dodać do listy argumentów),
●
ostatni wiersz macierzy A wypełnią kolejnymi liczbami naturalnymi
(rozpoczynając od jedynki)
●
ostatnią kolumnę macierzy A, z wyłączeniem elementu w ostatnim wierszu)
wypełnią kolejnymi liczbami naturalnymi (rozpoczynając od jedynki)
Przetestuj działanie skryptu obliczając: jedynki(6,6)
Ćwiczenie
function A = jedynki(n,m,k)
A = ones(n,m);
A(k,1:m)= 0
A(n,1:m)= [1:m]
A(1:n-1,m)= [1:n-1]'
endfunction
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 52
W skrypcie
moje_funkcje.sci
i zdefiniować następujące funkcje:
ac
b
c
b
a
delta
xy
z
y
x
z
y
x
f
4
)
,
,
(
1
)
(
cos
)
sin(
)
,
,
(
2
2
−
=
+
+
+
=
Przetestuj działanie skryptu obliczając: f(1,2,3), delta(1,3,1)
Ćwiczenie
Ins tytut Kons trukcji B udowlanych
Informatyka S tosowana
Zakład Komputerowego Ws pomagania Projektowania
S emestr 1.
30 październik 2008
Podstawowe obliczenia w programie SciLab
slajd 53
W skrypcie
moje_funkcje.sci
i zdefiniować następujące funkcje:
ac
b
c
b
a
delta
xy
z
y
x
z
y
x
f
4
)
,
,
(
1
)
(
cos
)
sin(
)
,
,
(
2
2
−
=
+
+
+
=
Przetestuj działanie skryptu obliczając: f(1,2,3), delta(1,3,1)
function [p]=f(x,y,z)
p=sin(x+y)/(cos(z+x*y)^2+1)
endfunction
function [d]=delta(a,b,c)
d=b^2-4*a*c
endfunction
-->f(1,2,3)
ans =
0.1306105
-->delta(1,3,1)
ans =
5.
Ćwiczenie