2 a lezione - laboratorio a.a 2004-2005 Corso di Laurea Ingegneria MECCANICA.

Slides:



Advertisements
Presentazioni simili
Introduzione al linguaggio C++
Advertisements

INFORMATICA Altre Istruzioni di I/O
Equazioni non lineari Gabriella Puppo.
LINGUAGGIO DI PROGRAMMAZIONE C
Dipartimento di Matematica
Metodi numerici in Matlab
Introduzione a Matlab Gabriella Puppo.
Array multidimensionali
PHP.
MATLAB.
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Dipartimento di Matematica
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
Introduzione a Matlab. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente specializzate.
8 a lezione - laboratorio a.a Esercizi Preparziale Corso di Laurea ING. MECCANICA.
1 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
3 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA.
Corso di Matlab_Simulink per Ingegneria 3
Programmazione Procedurale in Linguaggio C++
FUNZIONI DI BIBLIOTECA
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
Linguaggio MATLAB: costrutti tipici (IF,WHILE…)
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Informatica 2. Concetti fondamentali di programmazione Programmare vuol dire scrivere un algoritmo in un linguaggio che faccia funzionare un calcolatore.
Laboratorio di Linguaggi P R I M O C O M P I T I N O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Indipendenza lineare,
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Introduzione a Matlab Gabriella Puppo. Che cosa è Matlab Matlab è §un linguaggio di programmazione §un ambiente di calcolo scientifico con routines altamente.
Metodi numerici per equazioni lineari iperboliche Gabriella Puppo.
Funzioni matematico – statistiche I comandi matematici di più comune utilizzo, applicabili a scalari e matrici, sono: Sqrt(x), che calcola la radice quadrata.
Importazione di dati Nellambito dellutilizzo di qualsiasi software statistico una necessità è quella di importare dati esterni forniti dallutilizzatore.
Uso dei cicli y t =c+ty t-1 +e Un uso dei cicli può essere quello di creare una serie storica per cui y t =c+ty t-1 +e dove poniamo c e t scalari ed e~N(0,1).
Creazione di matrici Delimititatore di riga Delimititatore di matrice
Introduzione alla programmazione lll
Marco Panella MATLAB Marco Panella
1 5 a -6 a lezione di laboratorio Laurea Specialistica in Ingegneria MATEMATICA Laurea Specialistica in Ingegneria MATEMATICA a.a
3 a -4 a lezione di laboratorio Laurea Specialistica in Ingegneria Matematica Laurea Specialistica in Ingegneria Matematica a.a
1a-2a lezione di laboratorio
Strutture di controllo in C -- Flow Chart --
Esercitazione 2 – Generazione di variabili Matlab.
Corso di PHP.
INTRODUZIONE A MATLAB.
Università degli Studi di Bari Laurea in Chimica Di spense di Informatica - Dott. F. Mavelli Programmare in Matlab Funzioni di Libreria Funzioni definite.
CODIFICA Da flow-chart a C++.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Realizzato da Roberto Savino
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Input/output 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Script 1 Marco D. Santambrogio – Ver. aggiornata al 2 Dicembre 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Strutture di controllo Marco D. Santambrogio – Ver. aggiornata al 16 Dicembre 2013.
Programmazione della shell pt.2
File e Funzioni Si possono distinguere tre tipi di file che vengono utilizzati in MATLAB: M-file: hanno estensione .m e in essi vengono memorizzati i.
Lezione 1: Introduzione all’uso di Matlab
Esercitazione 1 - Introduzione Matlab. MATrix LABoratory Command window Current Directory Comandi recenti Variabili correnti Contenuto cartella corrente.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab 6 – Info B Marco D. Santambrogio – Riccardo Cattaneo –
Analisi di Immagini e Dati Biologici Introduzione al linguaggio di MATLAB/OCTAVE Parte 2 16 L5.
Introduzione a Javascript
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (II) Istruzioni e strutture di controllo.
Informatica Applicata al Suono Tutorial Matlab
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
INTRODUZIONE A MATLAB LEZIONE 2 Sara Poltronieri.
INTRODUZIONE A MATLAB Sara Poltronieri. Avvio del programma Avvio di Matlab (Windows) Start  Programmi  Matlab (o icona) Avvio di Matlab (Linux) terminale.
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi su stringhe e file 15 Stringhe e file.
Transcript della presentazione:

2 a lezione - laboratorio a.a Corso di Laurea Ingegneria MECCANICA

Come visualizzare leditor Per visualizzare leditor del Matlab si può: – digitare il comando edit – si può selezionare con il mouse dallambiente di calcolo la voce File e dal menu a tendina che compare la voce New oppure Open se il file esiste già

m-file File di testo contenente codici MATLAB. Consente di memorizzare ed organizzare istruzioni e comandi MATLAB script function

m-file script Standard ASCII file di testo Esegue una serie di comandi MATLAB sul workspace base Il carattere % serve a scrivere commenti allinterno di M-file % EPS1.m - m-file per % calcolare la precisione di % macchina num=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; vett(num,:)=[num EPS]; fprintf('%5.0f %30.16e\n',... vett(num,:)); end % EPS1.m - m-file per % calcolare la precisione di % macchina num=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; vett(num,:)=[num EPS]; fprintf('%5.0f %30.16e\n',... vett(num,:)); end N.B. Non accetta argomenti di input e di output

Salvare e richiamare m-script Richiamare: Si richiama digitando solo il nome con cui è stato memorizzato il file Eps1 N.B. Lo script opera sul Workspace base. Salvare m-script: Dopo avere digitato le istruzioni nella finestra delleditor di testo, si salva selezionando sulla barra la voce file e scegliendo nel menu : Save as. Assegnare un nome: Eps1

Risultati del file EPS1.m % EPS1.m - m-file per % calcolare la precisione di % macchina num=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; vett(num,:)=[num EPS]; fprintf('%5.0f %30.16e \n',... vett(num,:)); end % EPS1.m - m-file per % calcolare la precisione di % macchina num=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; vett(num,:)=[num EPS]; fprintf('%5.0f %30.16e \n',... vett(num,:)); end » eps e e e-001 ………………… e e-016 » » whos Name Size Bytes Class EPS 1x1 8 double array num 1x1 8 double array vett 53x2 848 double array Grand total is 108 elements using 864 bytes » » eps e e e-001 ………………… e e-016 » » whos Name Size Bytes Class EPS 1x1 8 double array num 1x1 8 double array vett 53x2 848 double array Grand total is 108 elements using 864 bytes »

m-file function function s = fatt(c) % %FATT calcola il fattoriale di c. % s=1; if c>=1 for i=1:c s=s*i; end Help Online Codice Argomento di output Nome della funzione Argom. di input function [out1,out2,out3] = nome_fun(in1,in2) Caso generale

Salvare e Richiamare m- function – Si salva in modo analogo a m-script: nome_fun – Si richiama digitando unuguaglianza del tipo:[out1,out2,out3] = nome_fun(in1,in2) – out1,out2,out3 sono i parametri in uscita, – in1,in2 sono i parametri in input valore=fatt(5) N.B. La function accetta argomenti di input e di output opera su unarea di memoria distinta dal Workspace base (variabili locali)

function s = fatt(c) % % FATT calcola il fattoriale del numero c. % s=1; if c>=1 for i=1:c s=s*i; end function s = fatt(c) % % FATT calcola il fattoriale del numero c. % s=1; if c>=1 for i=1:c s=s*i; end Risultati del file fatt.m » numero =5; » valore=fatt(numero) valore = 120 » » whos Name Size Bytes Class numero 1x1 8 double array valore 1x1 8 double array Grand total is 2 elements using 16 bytes » » numero =5; » valore=fatt(numero) valore = 120 » » whos Name Size Bytes Class numero 1x1 8 double array valore 1x1 8 double array Grand total is 2 elements using 16 bytes »

Come opera il Matlab (ad esempio su fatt) controlla se fatt è una variabile in uso, se no… controlla se fatt è una funzione built-in, se no.. controlla se nella directory corrente esiste un M-file chiamato fatt.m, altrimenti… controlla se il file fatt.m è presente in qualche directory del path, partendo dallinizio della lista delle directory indicate e fermandosi appena trova un file con lo stesso nome, se no… fatt ??? Undefined function or variablefatt.

Funzioni matematiche elementari » x=[ ] » round(x) ans = » fix(x) ans = » floor(x) ans = » ceil(x) ans = » x=[ ] » round(x) ans = » fix(x) ans = » floor(x) ans = » ceil(x) ans =

Funzioni trigonometriche » x=[0:.2:1]'; » y=sin(x); » [x y] ans = » x=[0:.2:1]'; » y=sin(x); » [x y] ans = Langolo x deve essere espresso in radianti!!!

ciclo for È simile a quello di altri linguaggi di programmazione Ripete le istruzioni molte volte Può essere annidato » N = 4; » for I = 1:N for J = 1:N A(I,J) = 1/(I+J-1); end » N = 4; » for I = 1:N for J = 1:N A(I,J) = 1/(I+J-1); end Queste istruzioni consentono di costruire la matrice di Hilbert 4x4.

Risultati >> A A = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7 >> % comando equivalente hilb(4) >> A A = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7 >> % comando equivalente hilb(4)

Esercizio 1: applicazione di ciclo for Scrivere un file script tale che, assegnate due matrici: A=[1 2 3; 4 5 6; 7 8 9], B=[ ; 1 1 0; ], determini la matrice C che ha lelemento C(i,j) pari a: C(i,j)=A(i,j)+cos((i+j)*pi/(n+m))*B(i,j), con

File prova2.m A=[1 2 3; 4 5 6; 7 8 9]; B=[ ; 1 1 0; ]; [n,m]=size(A); for i =1:n for j=1:m C(i,j)=A(i,j)+cos((i+j)*pi/(n+m))*B(i,j); end disp('Il risultato è') disp(C)

Risultati file prova2.m >>prova2 Il risultato è >> >>prova2 Il risultato è >>

Operatori relazionali e logici Logici Relazionali Gli operatori relazionali precedono nellordine gli operatori logici.

ciclo while Consente di ripetere le istruzioni sotto il controllo di una condizione logica % % File ciclo_w.m % I=1; N=4; while I <= N J = 1; while J <= N A(I,J) =(I+J); J=J+1; end I=I+1; end % % File ciclo_w.m % I=1; N=4; while I <= N J = 1; while J <= N A(I,J) =(I+J); J=J+1; end I=I+1; end

Risultati file: ciclo_w.m >> ciclo_w >> A A = >> >> ciclo_w >> A A = >> Costruire con cicli while la matrice di Hilbert 4x4.

Costrutto if - else È una struttura condizionale Se una condizione è verificata esegue le istruzioni associate ESEMPIO »if I == J A(I,J) = 2; elseif abs(I-J)== 1 A(I,J) = -1; else A(I,J) = 0; end ESEMPIO »if I == J A(I,J) = 2; elseif abs(I-J)== 1 A(I,J) = -1; else A(I,J) = 0; end

File ciclo_if.m % % File Ciclo_if.m % N=4; for I=1:N for J=1:N if I == J A(I,J) = 2; elseif abs(I-J)== 1 A(I,J) = -1; else A(I,J) = 0; end % % File Ciclo_if.m % N=4; for I=1:N for J=1:N if I == J A(I,J) = 2; elseif abs(I-J)== 1 A(I,J) = -1; else A(I,J) = 0; end Le istruzioni precedenti, inserite in un doppio ciclo for, consentono di costruire una matrice tridiagonale che ha tutti 2 sulla diagonale principale e -1 sulle codiagonali inferiore e superiore.

Risultati file ciclo_if.m >> ciclo_if >> A A = >> >> ciclo_if >> A A = >>

Comando di input input : inserimento di variabili numeriche da tastiera » z=input(' Introduci il valore di z ') Introduci il valore di z 5 z = 5 » z=input(' Introduci il valore di z ') Introduci il valore di z 5 z = 5 » a=input(' Introduci la matrice a ') Introduci la matrice a [1 2 3; 4 5 6; 7 8 9] a = » a=input(' Introduci la matrice a ') Introduci la matrice a [1 2 3; 4 5 6; 7 8 9] a = Sintassi: nome_var=input(str) str: stringa che si vuole compaia sul prompt

Comando di input input : inserimento di stringhe da tastiera » flag=input('Vuoi continuare? ','s') Vuoi continuare? Si flag = Si » flag=input('Vuoi continuare? ') Vuoi continuare? 'Si' flag = Si » flag=input('Vuoi continuare? ','s') Vuoi continuare? Si flag = Si » flag=input('Vuoi continuare? ') Vuoi continuare? 'Si' flag = Si Sintassi: var_str=input(str,s) str: stringa che compare sul prompt

Comandi di output disp consente di stampare linee di testo e valori di variabili. » disp('valore della funzione') valore della funzione » disp('valore della funzione') valore della funzione num2str(x) converte lo scalare x in una stringa di caratteri »x=sqrt(2); »disp(x) »x=sqrt(2); »disp(x) » disp(['Il valore di x è ',num2str(x)]) Il valore di x è » disp(['Il valore di x è ',num2str(x)]) Il valore di x è Sintassi: disp(str) str stringa o nome di una variabile numerica che si vuole far comparire sul prompt.

Comandi di output fprintf consente di stampare linee di testo, valori numerici e matrici specificandone il formato. Sintassi: fprintf( format \n, mat ) format è una stringa contenente i formati scelti con la specifica: %campo_totale.n_cifre_decimali_tipo in numero pari alle colonne della matrice mat ; \n serve per andare a capo è necessario scrivere mat per stampare la matrice mat così come si presenta.

» temp=31; » fprintf('La temperatura è di %4.1f gradi C°\n',temp) La temperatura è di 31.0 gradi C° » temp=31; » fprintf('La temperatura è di %4.1f gradi C°\n',temp) La temperatura è di 31.0 gradi C° » fprintf(' %f\n',pi) » fprintf(' %f\n',pi) %f consente la stampa dei numeri in fixed point, %e consente la stampa in formato esponenziale » fprintf( %12.10f\n ',pi) » fprintf( %18.10e\n ',pi) e+000 » fprintf( %12.10f\n ',pi) » fprintf( %18.10e\n ',pi) e+000 Nei formati f ed e il numero alla sinistra del punto è il campo totale, quello alla destra indica quante cifre decimali devono essere stampate

Esercizio 2 Calcolare la funzione f = e -x sin(x) nei punti appartenenti allintervallo [0,1] equispaziati con passo 0.2. Costruire una tabella contenente i valori di x e di f e stamparla utilizzando: 3 cifre decimali in formato virgola fissa per x 8 cifre decimali in virgola fissa per f.

File funzione.m e risultati x=[0:.2:1]'; f=exp(-x).*sin(x); tab=[x f]; fprintf(' x f\n') fprintf('%6.3f %12.8f\n',tab') x=[0:.2:1]'; f=exp(-x).*sin(x); tab=[x f]; fprintf(' x f\n') fprintf('%6.3f %12.8f\n',tab') x f x f Risultati

Esercizio 3 Costruire una stringa che mostri il valore della precisione macchina; utilizzare poi un comando di output per farla stampare sul prompt. Creare la stringa di input che consente di assegnare alla variabile A una matrice generica. Creare la stringa di input che consente di assegnare alla variabile f la stringa 5x+2e -x.

Soluzioni esercizio 3 1.» str=['la precisione macchina è ', num2str(eps)]; » disp(str) la precisione macchina è e » A=input('inserisci la matrice A '); inserisci la matrice A [1 2 3;4 5 6] » 3. » f=input('inserisci la funzione ') inserisci la funzione '5*x+2*exp(x)' oppure » f=input('inserisci la funzione ','s') inserisci la funzione 5*x+2*exp(x) f = 5*x+2*exp(x) 1.» str=['la precisione macchina è ', num2str(eps)]; » disp(str) la precisione macchina è e » A=input('inserisci la matrice A '); inserisci la matrice A [1 2 3;4 5 6] » 3. » f=input('inserisci la funzione ') inserisci la funzione '5*x+2*exp(x)' oppure » f=input('inserisci la funzione ','s') inserisci la funzione 5*x+2*exp(x) f = 5*x+2*exp(x)