Principali comandi Linux
- cd: serve per creare una directory (cartella)
- cp: serve per copiare un file
- mv: serve per spostare un file
- mv: serve per cancellare un file
- mv: serve per cambiare il nome di una directory (vuota)
- aliases: per vedere il percorso della directory in cui ci si trova
- exit: permette di uscire dalla shell (terminale) sia dalla directory in cui si lavora
Esempio:
- cd nome_cartella: cambia directory/entra nella directory chiamata nome_cartella
- cd ..: esce dal livello corrente e sale di uno
cd torna a livello più basso della directory in cui si lavora
- rm nome_file elimina il file inserito
- cp r : copia ricorsivamente un file intero con tutti i file all'interno
- cp 11.1 141.2/2: crea il file 141.2/nella directory che si trova già nella stessa directory
- cp -i file_1 141.2: specifica la directory dopo aver aperto la directory 141.2 di, file_1 nella directory del file spec. In questo punto la directory deve avere tutti i file al suo interno
- cd ..: livello principale della directory
- ls: lista i file e le cartelle del percorso standard di lavoro
Possiamo anche copiare file presenti in una cartella: es. file_1 nel file 141.2 della stessa directory
- cp /141.2: alla stessa directory/
- cp -i interattivo e lo inseriamo sempre con cut-and-past
- cd ..: eseguire comando nella directory
Altri comandi utili
Per eseguire programmi in modalità interattiva dobbiamo usare comandi definiti attivi
- codice file_pid: attiva il file .pdf che ha come nome 141.2.pdf
- annuba e grep MALAB fissate/chiusa la finestra di terminale
- mkdir: serve per creare una directory (cartella)
- cp: serve per copiare un file (altra file)
- mv: serve per cambiare il nome (file)
- pwd: serve per mostrare il percorso della directory in cui ci trovi
- touch: serve per creare il file ma lasciarlo vuoto
- cat: permette di visualizzare il contenuto di un file
- cd: permette di cambiare directory
- cat dati/clienti/page1.txt
- cd /dati/esempio/b: slash sempre numero interi 1.0.1
- cat: serve per unire più file presenti nella directory
- mkdir -p
- touch file1 file2 file3: tocca i tre files in cui posso con cautious
- Utilizzo file
- cp file.txt dati/3
- cd ../1211/file2 cerca nello stesso directory
- 123 cat 1211 list/dir3 da che tocca per
- file2: cerca si trova completamente nella directory e
- hold on → sovrappone grafici
- hold off → fine
- close all → chiude tutti grafici
- subplot ( m , n , p ) → grafico diviso in m×n sottografici e salva il “prossimo”
- < : strettamente minore
- > : strettamente maggiore
- <= : minore o uguale
- >= : maggiore o uguale
- == : uguale
- ~= : non uguale
- A && B dà come risultato un array i cui elementi valgono 1 dove i corrispondenti elementi di A e B sono entrambi uguali a 1, 0 se uno dei due corrispondenti elementi di A e B vale 0.
- A || B dà come risultato un array i cui elementi hanno valore 1 là dove almeno un elemento corrispondente in A o in B vale 1, invece ha valore 0 se entrambi i valori corrispondenti nei due array valgono 0.
- ~A dà come risultato un array i cui valori valgono 0 se i corrispondenti valori di A valgono 1, viceversa valgono 1 se i corrispondenti valori di A valgono 0.
- A & B restituisce un solo valore logico (un array logico scalare) Dà 1 solo se entrambi A e B valgono 1, 0 altrimenti.
- A | B restituisce un array logico scalare con valore 1 se una delle due variabili vale 1, 0 altrimenti.
- %i oppure %d
- %e oppure %f
- %f
- %g
- %c
- formato intero
- formato scientifico
- formato decimale
- formato breve tra %e %f
- formato di caratteri
- \n
- \r
- \b
- \t
- \'
- nuova linea
- andare a capo
- cancellazione all'indietro
- tab
- aprostrofo
- IT comp = h [ f(x1) + f(xn) / 2 ]
- f(xi) = f(x1) e b =
- ET comp ≤ M2 (b-a)3 / 12 n2 dove M2 = max 2 ≤ x ≤ b |fiv(x)|
- ICS comp = Σi+1 / 6 [f(xi) + 4 f(xci) + f (bi) ]
- ECS comp ≤ M (b-a)4 / 2880 n4 dove M4 = max 2 ≤ x ≤ b |fiv(x)|
- B = flip (A,1) -> sua matrice base verso alto
- B = flip (A,2) -> destra verso sinistro
- n = 3
- A = eye (n)
- A = eye (3,2)
- 1
- 4
- 7
- 2
- 5
- 8
- 3
- 6
- 9
Esempi:
Principali comandi Linux
Esempi: Dopodiché. il comando cat della directory
Altri comandi utili
Esempi
+
-
:
x moltiplicazione
\ divisione DESTRA
, virgola: più operazioni sulla stessa riga
. punto: decimali
... 3 punti: attore 2 capo
% commento
c/c pulire command window
^ potenza
:\ divisone sinistra
= variabile
isKeyword ("for")
abs(x) |x|
exp(x) ex
log(x) ln x
log10(x) log x
cosd(x) cos(x)
sind(x) sin(x)
tand(x) tan x
acosd(x) arccos x
asind(x) arcsin x
atand(x) arctan x
fact(x)
inv(x x-1)
sqrt(x) √x
risultati in radianti
risultati in gradi
sqrt fa la √ di ogni componente di vettori o matrici
help elfun
pi π
clear "a" cancella variabile
clear cancella tutte le variabili
Inf ∞
eps precisione di macchina
who elenco variabili
who’s " " specifica dimensioni
"disp(a)" mostra incolonnato di "a"
diary on diario acceso
off spento
format long * cifre mostrate
a = [1,2,3,4] vettore riga 1 2 3 4
a = [1;2;3;4] vettore colonna 1
2
3
4
z = [1;2;3;4]’ vettore colonna z
A = [ 1 2 3; 4 5 6; 7 8 9] matrice
A (1,2) elemento 1a riga 2a colonna → 2
A(:,2) prime righe
A(:,1) prime colonne
B = A(2:3,1:2) 4 5
shingo — ciao come va?
e" es.:
a 1 e 2 dopo "ù"
logical
1 Vero
0 Falso
X = 1:6 vettore riga da 1:6
X = 1:0.5:6 incremento primo punto, punto finale
X = linspace(a,b,n) numero suddivisioni
A = zeros (m,n)
A = ones (m,n)
x .* y / .^ .\' il punto sottostante le operazioni, ovvero componente per componente.
plot ( x , y ) → disegno il grafico con x e y
xlabel (' ')
ylabel (' ')
title (' ')
plot ( x , y , 'ro' , x , y , 'k 6' , 'Markersize' , 6 , 'Linewidth' , 2 )
Operatore relazionale
X=[ ]
r= X<5;
t=X(r) : prende solo le componenti con logico =1.
Dati
A = [ 1, 0 ]
A | logical(A) / 1 se vuole diverso da 0 0 se in / uguale a 0
Script
edit “prova”.m / cr.ea script chiamato “prova”.m
“prova” / esegue io script
IF
if...
elseif
else
end
Switch
casotest : 1
switch casotest
case 1
z=0;
case 2
z=5;
otherwise
disp(“hai scelto un caso che non esiste”)
end
FOR
for variabile: incremento: variabile
for i=l:lO
disp (“You Are My Queen”)
end
WHILE
while preparazione logica
esegui istruzioni
end
BREAK: interrompe esecuzione
CONTROL+C per uscire dal loop infinito
r. [ ] → radici di un polinomio
poly(r) → coefficienti del polinomio con radici r
p = [ ] → coefficienti polinomio
roots(p) → radici del polinomio
FUNCTION HANDLE
f = @(x) x^2 + exp(x) → creiamo una funzione f
f(4) → valore della funzione in 4
fplot (f, [2, b]) → disegna il grafico della function f nell’intervallo [2,b]
FUNCTION
function [ variabili di output ] = nome function (variabili di input)
% commenti su cosa fa la function
% output
istruzioni
end
per richiamarla in Matlab
[variabili di output] = nome function (dati di input)
PREALLOCAZIONE DI MEMORIA
vett = zeros (1,100); → diciamo a Matlab di creare lo spazio in memoria per collocare un vettore di 100 componenti
nmax = 80;
x = zeros (nmax, 1);
end
Xⁱ = X (1:i-1)
FPRINTF
→ visualizzare dati sulla Command Window
fprintf (ʾformat, variabili);
luogo
istruzione per il formato
istruzione
descrizione
istruzioni di controllo
istruzione
descrizione
Esempi:
a=1;
fprintf(1,'variabile scalare a = %f\n',a)
variabile scalare = 1.000000
A = [ 1 2
3 4]
fprintf(1,'Matrice A \n'); fprintf(1,'%i%i %i%i \n',A')
Matrice A
12
34
ZER1 DI FUNZIONE
Xold = approssimazione della soluzione all' iterazione precedente
xnew = " " " " " " " " all' iterazione corrente
iter = l' iterazione che viene effettuata
vettscart = vettore degli scarti ed ogni iterazione per cui vettscart(i) fornisce il vettore dello scarto all' iterazione (i-esima).
Xo = approssimazione iniziale ,iterazione 0
vetore Xo - XOld
xnew=g(Xold) iter=1
scarto all' iterazione 1
XOld = xnew
xnew=g(Xold) iter=2
scarto all' iterazione 2
fino che scarto è tol o troppe iterazione
function [xnew,iter,vettscarti]=pfisso(g,x0,toll,itmax)
%function [xnew,iter,vettscarti]=pfisso(g,x0,toll,itmax)
% signficato delle variabili
% iter: iterazione del metodo del punto fisso
% itmax: numero massimo di iterazioni
% toll: tolleranza prefissata per l'approssimazione del punto fisso
% x0: punto iniziale della successione
% xold: approssimazione all'iterazione precedente
% xnew: approssimazione all'iterazione corrente
% vettscarti: vettore degli scarti
% g: funzione di punto fisso
% data come function handle
%
% Esempio
% x0=0.1; toll=1.e-12; itmax=100;
% [xnew,iter,vettscarti]=pfisso(@cos,x0,toll,itmax)
% xnew=0.7391
% iter=70
% vettscarti --- vettore di 70 componenti
vettscarti=zeros(itmax,1); %preallocazione del vettore degli scarti
scarto=2.0*toll; % valore fittizio per entrare nel ciclo while
iter=0; % prima di entrare nel ciclo poniamo uguale a zero la
% variabile iter in modo da poterla incrementare ad ogni
% passo di una unita'
xold=x0;
while scarto>=toll & iteritmax)
disp('raggiunto il numero massimo di iterazioni')
% messaggio di avvertimento per controllare
% se la convergenza e' lenta o se il metodo sta divergendo
end
end
Applicazione schema punto fisso
1) define function handle :
2) define estremi :
3) define tolleranze :
g= @ x ^(x) ordon (x) , + log (x +4)
a= 3; b=4;
toll = 1.e -10
itmax = 100
x0 = 3.9
p = [ 1, 0, 1, 43 ]
y = polyval (p, x)
grafo polinomio
a=2 ; b=7
xval = linspace (xval vettore 100 punti
yval=polyval (p, xval) polinomio valutato in 100 punti xval.
plot (xval, yval)
r=conv(p,q) moltiplica tra loro due polinomi
[q,r] = deconv(p,q) divide tra loro due polinomi
n=length (p) numero componenti di p
polyfit
x = [1, 2, 3, 4];
y = [2, 3, 2, 4];
m=4
n=4
[h]=polyfit(x,y,m)
xval = linspace (x(1), x(n))
yval = polyval (p, xval)
plot (x,y,'o',xval,yval)
A=load ('dati.dat') carica in A i dati esterni del file
save ('filedati.dat','A', '-ascii') - trasferibile A salvato in formato Ascii
save ('filedati','x','y') - salva le variabili x e y in un file Matlab
INTEGRAZIONE NUMERICA
Ricapitolando
la formula dei trapezi è
IT = (b-a) [ f(a) + f(b) ] / 2
con errore |ET| ≤ M (b-a)3 / 12n2 e M = max |f''(x)|a ≤ x ≤ b
la formula di Cavalieri-Simpson è
ICS = b-a / 6 [f(a)+ 4f(c) + f(b)]
con errore |ECS| ≤ M (b-a)5 / 2880 e M = max |fiv(x)|a ≤ x ≤ b
TRAPEZI COMPOSTA:
CAVALIERI-SIMPSON COMPOSTA:
Integrale esatto
I = integral (f, a, b)
function handle
MATRICI
Amatemeo = inv (A)
A = det(A) - determinante
B = flip (A)
Identità
+
Diagonale
A = 1 2 3 4 5 6 8 8 9
d = diag(A)
D = diag(d)
cs_diag(d,2)
più i delle diagonale
MATRICI TRIANGOLARI
A = 1 2 3 4 5 6 7 8 9
U = triu (A) (A,1)
L = tril (A)
Allungamento
b : A(:)
Risoluzione Sistemi Lineari
A = sparse(A) memorizza solo gli elementi diversi da 0!
[L, U] = lu(A) output L, U t.c. LU = A
[L, U, P] = lu(A) output L, U, P dove P*A = LU
U = chol(A) restituisce U t.c. UTU = A
L = chol(A,'lower') restituisce L t.c. LLT = A
Norme
norm(x) calcola norma 2
norm(A) calcola norma 2
norm(x,1) calcola norma 1
norm(A,1)
norm(x,inf) norma infinito
norm(A,inf)
norm(A,'fro') norma Frobenius
Condizionamento
cond(A) condiz. rispetto norma 2
cond(A,p) cond. rispetto p dove p = 1, 2, 'inf', 'fro'
Autovalori e Autovettori
lambda = eig(A) auto valori di A
[V, D] = eig(A) V = autovettori di A
D = matrice diagonale con autovalori A t.c. A
-
Comandi matlab
-
Appunti sui comandi Matlab
-
Riassunto dei comandi di AMPL
-
Comandi del programma R Studio