• Non ci sono risultati.

Introduzione - Vettori - Funzioni per Vettori

N/A
N/A
Protected

Academic year: 2021

Condividi "Introduzione - Vettori - Funzioni per Vettori"

Copied!
22
0
0

Testo completo

(1)

Scilab

Scilab

Corso di Informatica

Corso di Informatica

CdL:

CdL:

Chimica

Chimica

Introduzione a Scilab - Vettori

Introduzione a Scilab - Vettori

Claudia d'Amato

Claudia d'Amato

claudia.damato@di.uniba.it

(2)

Introduzione

Introduzione

Scilab

 Ambiente matematico e di simulazione

numerica

 sviluppato per la realizzazione di sistemi di

controllo

distribuito gratuitamente

Permette la manipolazione di matrici

 operazioni di base su matrici

 concatenazione, trasposizione, somma, moltiplicazione, ...

 funzioni di libreria per calcoli complessi  possibilità di definire nuove funzioni

(3)

Avvio di Scilab

(4)

Tipi di Dati

Tipi di Dati

Matrice n-dimensionale (di reali, complessi,

Matrice n-dimensionale (di reali, complessi,

caratteri, booleani, strutture più complesse …)

caratteri, booleani, strutture più complesse …)

Lista (di svariati tipi di dati)

Lista (di svariati tipi di dati)

Stringa

Stringa

Booleano

Booleano

Polinomio

Polinomio

In SCILAB non esistono dichiarazioni di

tipo (o dimensioni nel caso di matrici)

SCILAB alloca direttamente la memoria

necessaria ogni volta che si dichiara o si modifica una variabile

(5)

Avvio modalità console

Avvio modalità console

Avviare l'applicazione Scilab

Avviare l'applicazione Scilab

Le

Le

variabili

variabili

sono

sono

case-sensitive

case-sensitive

Il nome di una variabile

Il nome di una variabile

deve

deve

cominciare con una lettera e può contenere

cominciare con una lettera e può contenere

lettere, numeri, “_”

lettere, numeri, “_”

Assegnare un valore ad una variabile

Assegnare un valore ad una variabile

 utilizzare l'istruzione di assegnamento al utilizzare l'istruzione di assegnamento al

prompt dei comnadi

prompt dei comnadi

 Le istruzioni di assegnamento in Scilab Le istruzioni di assegnamento in Scilab

prendomo la forma

prendomo la forma

(6)

Esercizi: semplici operazioni

Esercizi: semplici operazioni

a = 3.2 <return>

a = 3.2 <return>

b = 6.4 <return>

b = 6.4 <return>

a + b <return>

a + b <return>

a – b <return>

a – b <return>

a * b <return>

a * b <return>

a / b <return>

a / b <return>

a ^ b <return>

a ^ b <return>

who <return>

who <return>

(7)

Costanti speciali

Costanti speciali

SCILAB ha un numero di costanti speciali

SCILAB ha un numero di costanti speciali

 %i unità immaginaria%i unità immaginaria  %pi pi greca%pi pi greca

 %e base del log naturale%e base del log naturale  %nan not-a-number%nan not-a-number

 %t valore booleano vero%t valore booleano vero  %f valore booleano falso%f valore booleano falso

(8)

Esercizi

Esercizi

Eseguire le seguenti istruzioni

Eseguire le seguenti istruzioni

 %i <return>%i <return>  %pi <return>%pi <return>  %e <return>%e <return>  %inf <return>%inf <return>  %nan <return>%nan <return>  %t <return>%t <return>

(9)

I commenti

I commenti

I commenti in Scilab sono rappresentati dal

I commenti in Scilab sono rappresentati dal

doppio slash //

doppio slash //

Esempio

Esempio

 scrivere la seguente istruzionescrivere la seguente istruzione

 a = 4.5 // ridefinizione di a <return>a = 4.5 // ridefinizione di a <return>

 Scilab restituisce il valore 4.5 ed ignora il commento Scilab restituisce il valore 4.5 ed ignora il commento

dopo //

(10)

Scalari

Scalari

Gli scalari

Gli scalari

 reali, logici, stringhe, polinomi, razionali, ...reali, logici, stringhe, polinomi, razionali, ... 

Esempi

Esempi

 a = 2 a = 2 // costante reale <return>// costante reale <return>

 2 > 1 2 > 1 // costante booleana <return>// costante booleana <return>  'mionome' // stringa <return>'mionome' // stringa <return>

 r = poly(1.,'x') // polinomio con variabile x er = poly(1.,'x') // polinomio con variabile x e

// radice in 1.0 <return>

// radice in 1.0 <return>

(11)

Semplici operazioni scalari

Semplici operazioni scalari

a = 2 <return>

a = 2 <return>

b = 3 <return>

b = 3 <return>

Save a <return> //salva a in file di nome a

Save a <return> //salva a in file di nome a

Save nomeFile

Save nomeFile

,

,

a <return>

a <return>

Save nomeFile <return> //salva tutte le

Save nomeFile <return> //salva tutte le

var della sessione corrente in nomeFile

var della sessione corrente in nomeFile

clear a <return>

clear a <return>

// elimina la var. a

// elimina la var. a

a <return> b <return>

a <return> b <return>

load a <return> a <return>

load a <return> a <return>

exp(a) + exp(b) <return> // e^a + e^b

exp(a) + exp(b) <return> // e^a + e^b

sin(a*%pi/b) <return>

sin(a*%pi/b) <return>

(12)

Vettori: definizione esplicita

Vettori: definizione esplicita

Per definire vettori in modo esplicito:

usare le parentesi quadre e separare

gli elementi con delle virgole o degli

spazi (vettore riga)

 v = [-1. , 2. , %pi] <return>

Il vettore trasposto si ottiene con '

 v' <return>

A (nxm) A' (mxn) a'ij = aji A'=AT

(13)

Vettori ad incremento

Vettori ad incremento

costante...

costante...

E' possibile creare un vettore specificando il

E' possibile creare un vettore specificando il

valore iniziale, un incremento (passo) e il

valore iniziale, un incremento (passo) e il

valore finale

valore finale

 x = -10.0 : 0.1: 10; <return>x = -10.0 : 0.1: 10; <return>  sintassisintassi::

nomeVar = valIniziale = valIniziale::incrementoincremento::valFinalevalFinale

 Se il passo non è specificato l'incremento è di Se il passo non è specificato l'incremento è di

default posto uguale a 1

default posto uguale a 1

(14)

...Vettori ad incremento

...Vettori ad incremento

costante

costante

 Se l'incremento è negativo e/o il limite è minore Se l'incremento è negativo e/o il limite è minore

del valore iniziale si ottiene vettore vuoto

del valore iniziale si ottiene vettore vuoto

 --> i = 3:-1:4--> i = 3:-1:4 i = [] i = []  -->i = 1:0-->i = 1:0 i = [] i = []  r = 1: -3: 10r = 1: -3: 10 r = [ ] r = [ ]  r = 10: -3: 1r = 10: -3: 1 r = 10 7 4 1 r = 10 7 4 1

(15)

Vettore per Decomposizione

Vettore per Decomposizione

 per inserire un vettore riga x ad per inserire un vettore riga x ad nn componenti componenti

ripartiti nell'intervallo [inf sup]

ripartiti nell'intervallo [inf sup]

 --> x = linspace(0,1,11)--> 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.

x = 0. 0.1. 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.

 --> x = linspace(0,1,11)' //crea vett. colonna--> x = linspace(0,1,11)' //crea vett. colonna

Sintassi: [v]=linspace(x1,x2 [,n])

 v = Vettore riga, x1,x2 = risp. Lim. Inf. e Sup

dell'intervallo, n = numero di partizioni dell'intervallo (valore di default = 100)

 linspace(x1,x2) genera un vettore riga di n punti

linearmente distribuiti alla stessa distanza nell'intervallo [x1, x2]

(16)

Vettore Trasposto e Funzioni

Vettore Trasposto e Funzioni

memorizzare il vettore riga come vettore

memorizzare il vettore riga come vettore

colonna

colonna

 xt = x'xt = x'

Applicare una funzione ad un vettore

Applicare una funzione ad un vettore

 y = sin(x*%pi/10) <return>y = sin(x*%pi/10) <return>

(17)

Vettore colonna

Vettore colonna

Per definire un vettore colonna usare uno

Per definire un vettore colonna usare uno

dei seguenti modi

dei seguenti modi

 w = [1 ; 2; -1; -2] <return> oppurew = [1 ; 2; -1; -2] <return> oppure  w = w = [1 <return>[1 <return> 2 <return> 2 <return> -1 <return> -1 <return> -2] <return> -2] <return>

Le colonne sono separate da ritorni a capo

Le colonne sono separate da ritorni a capo

o

(18)

Operazioni tra Vettori...

Operazioni tra Vettori...

Visualizzare i vettori x,y

Visualizzare i vettori x,y

 plot(x,y) <return>plot(x,y) <return>

Dati u=[-1,2,1] e v=[5,10,0] eseguire:

Dati u=[-1,2,1] e v=[5,10,0] eseguire:

 u + v <return>u + v <return>

 u – v <return>u – v <return>

 u * v <return> //err per dim vettoriu * v <return> //err per dim vettori

 u * v' <return> //no err, dim compatibiliu * v' <return> //no err, dim compatibili  u' * v <return> //no err, dim compatibiliu' * v <return> //no err, dim compatibili

(19)

...Operazioni tra Vettori

...Operazioni tra Vettori

 --> x = linspace(0,1,5)'--> x = linspace(0,1,5)'

 --> y = (1:5)'--> y = (1:5)'  --> p = y' *x --> p = y' *x

p = 10.

p = 10.

 --> P = y*x'--> P = y*x' // matrice (5,5)// matrice (5,5)

 --> P / 0.25--> P / 0.25 // divisione per uno scalare// divisione per uno scalare  --> P^2--> P^2 // elevamento a potenza// elevamento a potenza

 --> sqrt(P)--> sqrt(P) // radice quadrata// radice quadrata  --> exp(P)--> exp(P)

(20)

Estrazione Elementi da Vettore

Estrazione Elementi da Vettore

Per estrarre gli elementi dal vettore

Per estrarre gli elementi dal vettore

 u(3) <return>u(3) <return> // terzo elemento// terzo elemento  u($) <return> u($) <return> // ultimo elemento// ultimo elemento  u(2) + v(1) <return>u(2) + v(1) <return>

(21)

Vettori: Elementi

Vettori: Elementi

Gli elementi di un vettore possono essere di

Gli elementi di un vettore possono essere di

qualsiasi tipo

qualsiasi tipo

 --> x = [1 sin(0.7*%pi) sqrt(2) 1+2*(4+3)/5]--> x = [1 sin(0.7*%pi) sqrt(2) 1+2*(4+3)/5]  x = [1 o.8090170 1.4142136 3.8]x = [1 o.8090170 1.4142136 3.8] 

--> x(4)

--> x(4)

 Ans = 3.8Ans = 3.8 

--> x(6) = sin(x(1))

--> x(6) = sin(x(1))

 Ans = Ans = x = [1 sin(0.7*%pi) sqrt(2) 1+2*(4+3)/5 0 x = [1 sin(0.7*%pi) sqrt(2) 1+2*(4+3)/5 0 0.8414710] 0.8414710]

 Scilab ha automaticamente adattato il vettore alla Scilab ha automaticamente adattato il vettore alla nuova situazione aggiungendo 0 nel valore x(5) non

nuova situazione aggiungendo 0 nel valore x(5) non

ancora assegnato

(22)

Esempi

Esempi

Se terminiamo una istruzione con il

Se terminiamo una istruzione con il

simbolo “;” il risultato non viene

simbolo “;” il risultato non viene

visualizzato a video

visualizzato a video

Esempio:

Esempio:

 --> b = [2 10 44 190];--> b = [2 10 44 190];  definisce il vettore riga bdefinisce il vettore riga b  Dato il comando Dato il comando

--> b --> b

 la risposta di Scilab sarà:la risposta di Scilab sarà:

b = b =

2.

Riferimenti

Documenti correlati

caratteristiche ricercare il campo di esistenza. Bisogna vedere dove esiste la funzione considerata, porre quindi le Condizioni di Esistenza denominate C.E.. Vediamo alcuni

` e: void maxSeq(int a[], int n, int* i, int* l), dove si suppone di ca- ricare nel parametro i il punto di inizio e in l la lunghezza della sequenza pi` u lunga. Scrivere una

Calcolo il limite al

Se un infinitesimo è di ordine superiore rispetto ad un altro, ciò significa che il primo tende a 0 più “velocemente” del secondo (infatti il rapporto tende a 0 , ovvero

In generale una funzione numerica reale può essere non continua (discontinua) in nessuno, uno o più punti del suo dominio e l’insieme dei punti di discontinuità può essere finito,

Per la totale convergenza vale il fondamentale teorema (di cui omettiamo la dimostrazione) : se una serie di funzioni numeriche reali sul dominio A è

Valore assoluto Per parlare di vicinanza fra punti della retta reale conviene pas- sare attraverso la nozione di distanza fra due punti, e per descrivere la distanza fra due

Dati sulla retta due segmenti orientati OA e OB con primo estremo O, sommando OA col segmento orientato AB’ equivalente a OB otteniamo un nuovo segmento orientato con primo estremo