Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter...

24
Prof. Nicola Forgione Prof. Nicola Forgione Dipartimento di Ingegneria Civile e Industriale Dipartimento di Ingegneria Civile e Industriale E-mail: mail: [email protected] [email protected] ; tel. 0502218057 ; tel. 0502218057 Corso di Laurea in Ingegneria Meccanica Corso di Laurea in Ingegneria Meccanica Trasmissione del calore con applicazioni Trasmissione del calore con applicazioni numeriche: informatica applicata numeriche: informatica applicata a.a a.a. . 15/16 15/16 Parte III Parte III

Transcript of Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter...

Page 1: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Prof. Nicola ForgioneProf. Nicola ForgioneDipartimento di Ingegneria Civile e IndustrialeDipartimento di Ingegneria Civile e Industriale

EE--mail: mail: [email protected]@ing.unipi.it; tel. 0502218057; tel. 0502218057

Corso di Laurea in Ingegneria MeccanicaCorso di Laurea in Ingegneria Meccanica

Trasmissione del calore con applicazioni Trasmissione del calore con applicazioni numeriche: informatica applicatanumeriche: informatica applicata

a.aa.a. . 15/1615/16

Parte IIIParte III

Page 2: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Input ed outputInput ed output

•• LaLa funzionefunzione inputinput mostramostra unun messaggiomessaggio ee permettepermette didi leggereleggere ilil valorevalore didi unaunavariabilevariabile ((arrayarray)) dada tastieratastiera::varvar == input('Inserireinput('Inserire ilil numeronumero didi iterazioniiterazioni:: ')');;PerPer lala solasola letturalettura didi unauna stringastringa didi carattericaratteri sisi ponepone inveceinvece::chacha == input(input('What'What isis youryour name',name','s')'s');;LaLa stringastringa didi messaggiomessaggio puòpuò contenerecontenere unouno oo piùpiù sequenzesequenze didi escapeescape ''\\nn'' checheconsenteconsente didi saltaresaltare allaalla linealinea successivasuccessiva..

•• PerPer generaregenerare unun menumenu didi sceltescelte perper l'inputl'input dell'utilizzatoredell'utilizzatore sisi puòpuò impiegareimpiegare lalafunzionefunzione::kk == menu('menu('mtitlemtitle','opt','opt11','opt','opt22',',......,'optn'),'optn');;cheche visualizzavisualizza unun menumenu ilil cuicui titolotitolo èè definitodefinito dalladalla variabilevariabile stringastringa ''mtitlemtitle'' ee lelecuicui sceltescelte sonosono lele variabilivariabili stringhestringhe 'opt'opt11'',, 'opt'opt22'',, …….. IlIl valorevalore sceltosceltodall'utilizzatoredall'utilizzatore vieneviene assegnatoassegnato allaalla variabilevariabile kk..

•• Per visualizzare stringhe (messaggi) oppure Per visualizzare stringhe (messaggi) oppure arrayarray si adopera la funzione si adopera la funzione dispdisp::dispdisp('Premere un ('Premere un tastotasto''););

•• LaLa funzionefunzione errorerror quandoquando vieneviene eseguitaeseguita mostramostra unun messaggiomessaggio didi erroreerrore ededinterrompeinterrompe l'esecuzionel'esecuzione didi unun filefile..mm::errorerror('A('A devedeve essereessere invertibile')invertibile');;

Page 3: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Apertura e chiusura di fileApertura e chiusura di file•• LaLa primaprima operazioneoperazione dada eseguireeseguire primaprima didi poterpoter scriverescrivere oo leggereleggere dada filefile èè

l'l'aperturaapertura deldel filefile::fidfid = = fopenfopen((filenamefilename,,permissionpermission););LaLa funzionefunzione fopenfopen apreapre ilil filefile didi nomenome filenamefilename nellanella modalitàmodalità specificataspecificata dadapermissionpermission..

•• L'operazioneL'operazione didi aperturaapertura serveserve adad associareassociare unun identificatoridentificatoree (scalare(scalare interointero:: fidfid)) alalfilefile didi nomenome filenamefilename.. DopoDopo cheche ilil filefile èè statostato aperto,aperto, ilil programmatoreprogrammatore dovràdovràutilizzareutilizzare l'identificatorel'identificatore fidfid perper poterpoter scriverescrivere e/oe/o leggereleggere lele informazioniinformazionimemorizzatememorizzate alal suosuo internointerno..

•• LaLa modalitàmodalità didi aperturaapertura deldel filefile èè specificataspecificata dada permissionpermission cheche puòpuò assumereassumere iivalorivalori riportatiriportati nellanella tabellatabella successivasuccessiva..

•• DopoDopo avereavere terminatoterminato lele operazionioperazioni didi letturalettura e/oe/o scritturascrittura èè necessarionecessario eseguireeseguirel'operazionel'operazione didi chiusurachiusura deldel filefile::fclosefclose((fidfid););

a = a = --3; b = 2; c = 3; b = 2; c = a*ba*b;;fidfid = = fopenfopen('('prova.txtprova.txt', 'w'); ', 'w'); fprintffprintf((fidfid,'a = %5.2f,'a = %5.2f b = %5.2fb = %5.2f c = %5.2fc = %5.2f \\n',a,b,c);n',a,b,c);fclosefclose((fidfid););

Page 4: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Apertura e chiusura di fileApertura e chiusura di file

ModalitàModalità DescrizioneDescrizione

'r''r'solasola letturalettura -- sulsul filefile saràsarà possibilepossibile eseguireeseguire soltantosoltanto operazionioperazioni didi letturalettura ee quindiquindinonnon saràsarà possibilepossibile effettuarvieffettuarvi lala scritturascrittura.. SeSe ilil filefile nonnon esisteesiste lala funzionefunzione fopenfopenritorneràritornerà ilil codicecodice didi erroreerrore NULLNULL..

'w''w'

solasola scritturascrittura -- sulsul filefile saràsarà possibilepossibile eseguireeseguire solamentesolamente operazionioperazioni didi scrittura,scrittura,quindiquindi nonnon operazionioperazioni didi letturalettura.. SeSe ilil filefile alal momentomomento dell'aperturadell'apertura nonnon esisteesiste saràsaràautomaticamenteautomaticamente creato,creato, inin casocaso contrariocontrario ilil contenutocontenuto deldel filefile preesistentepreesistente saràsaràpersoperso..

'a''a'

solosolo scritturascrittura aa finefine filefile sulsul filefile saràsarà possibilepossibile eseguireeseguire soltantosoltanto operazionioperazioni didiscritturascrittura aa finefine filefile:: tuttetutte lele scritturescritture verrannoverranno sempresempre eseguiteeseguite inin codacoda alalcontenutocontenuto attualeattuale deldel filefile.. SeSe ilil filefile nonnon esisteesiste verràverrà creatocreato automaticamente,automaticamente, inincasocaso contrariocontrario ilil contenutocontenuto deldel filefile preesistentepreesistente verràverrà mantenutomantenuto..

'r+''r+' letturalettura ee scritturascrittura sulsul filefile saràsarà possibilepossibile eseguireeseguire operazionioperazioni siasia didi letturalettura siasia didiscritturascrittura.. SeSe ilil filefile nonnon esiste,esiste, lala funzionefunzione fopenfopen ritorneràritornerà ilil codicecodice didi erroreerrore NULLNULL..

'w+''w+'scritturascrittura ee letturalettura -- sulsul filefile saràsarà possibilepossibile eseguireeseguire operazionioperazioni siasia didi scritturascrittura siasia didiletturalettura.. SeSe ilil filefile nonnon esisteesiste verràverrà automaticamenteautomaticamente creato,creato, inin casocaso contrariocontrario ililcontenutocontenuto deldel filefile preesistentepreesistente verràverrà persoperso..

'a+''a+'letturalettura ee scritturascrittura aa finefine filefile -- sulsul filefile saràsarà possibilepossibile eseguireeseguire operazionioperazioni siasia didi letturaletturasiasia didi scritturascrittura aa finefine filefile.. SeSe ilil filefile nonnon esisteesiste verràverrà automaticamenteautomaticamente creato,creato, inin casocasocontrariocontrario ilil contenutocontenuto deldel filefile preesistentepreesistente verràverrà mantenutomantenuto..

Page 5: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Scrittura formattata su fileScrittura formattata su file

•• Per scrivere su un file in modo formattato si usa la funzione Per scrivere su un file in modo formattato si usa la funzione fprintffprintf::fprintffprintf((fidfid,format,A, …);,format,A, …);dovedove fidfid èè l'l'identificatoreidentificatore deldel filefile cheche vieneviene passatopassato dada fopenfopen (esso(esso puòpuò inoltreinoltreessereessere 11 perper lolo “standard“standard output”output” (il(il monitor))monitor));; sese fidfid vieneviene omessoomesso alloraallora vienevieneassuntoassunto automaticamenteautomaticamente ugualeuguale adad 11 ee lala stampastampa avvieneavviene sullasulla commandcommand windowwindow..

•• L'argomentoL'argomento formatformat èè unauna stringastringa didi formatoformato contenentecontenente:: sequenzesequenze didi carattericaratteri dadastamparestampare sulsul filefile (opzionale),(opzionale), delledelle specifichespecifiche didi conversioneconversione inin linguaggiolinguaggio CC ee delledellesequenzesequenze didi escapeescape (opzionali)(opzionali)..

•• LeLe specifichespecifiche didi conversioneconversione controllanocontrollano ilil tipotipo didi notazionenotazione,, l'l'allineamentoallineamento,, lele cifrecifresignificativesignificative,, l'l'ampiezzaampiezza deldel campocampo,, eded altrealtre caratteristichecaratteristiche deldel formatoformato didi outputoutput..

•• LeLe specifichespecifiche didi conversioneconversione inizianoiniziano concon ilil carattterecaratttere %% ee contengonocontengono ii seguentiseguentielementielementi obbligatoriobbligatori eded opzionaliopzionali:: flagsflags (opzionale)(opzionale);; widthwidth andand precisionprecision fieldsfields(opzionale)(opzionale);; aa subtypesubtype specifierspecifier (opzionale)(opzionale);; conversionconversion charactercharacter (obbligatorio)(obbligatorio)..QuestiQuesti elementielementi devonodevono essereessere specificatispecificati nelnel seguenteseguente ordineordine::

SpecificheSpecifichedi conversionedi conversione

Page 6: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Scrittura formattata su fileScrittura formattata su file•• ConversionConversion charactercharacter

•• FlagsFlagsSSii puòpuò controllarecontrollare l'allineamentol'allineamento dell'outputdell'output usandousando unouno didi questiquesti optionaloptional flagsflags:: ununsegnosegno menomeno ((--)) significasignifica cheche ilil numeronumero verràverrà scrittoscritto allineatoallineato aa sinistrasinistra;; unun segnosegnopiùpiù ((++)) significasignifica cheche ilil numeronumero verràverrà stampatostampato concon ilil segnosegno ((++ oo --))..

SpecificatoreSpecificatore DescrizioneDescrizione%c %c Carattere singoloCarattere singolo

%d %d Notazione intera decimale con segnoNotazione intera decimale con segno

%e%e Notazione esponenziale (usando una Notazione esponenziale (usando una ee come in 3.1415e+00)come in 3.1415e+00)

%E %E Notazione esponenziale (usando una Notazione esponenziale (usando una EE come in 3.1415E+00)come in 3.1415E+00)

%f%f NotazioneNotazione decimaledecimale secondosecondo ilil formatoformato [[--]mmm]mmm..nnnnnnnn dovedove lala lunghezzalunghezza delladellastringastringa didi nn èè specificataspecificata dalladalla precisioneprecisione

%g%g Stampa la rappresentazione più breve tra %f e %e, eliminando Stampa la rappresentazione più breve tra %f e %e, eliminando eventualmente gli zeri non significativieventualmente gli zeri non significativi

%G%G Lo stesso di %g, ma usando la lettera maiuscola E al posto di eLo stesso di %g, ma usando la lettera maiuscola E al posto di e

%s %s Stringa di caratteriStringa di caratteri

%x %x Notazione esadecimale (usando lettere minuscole aNotazione esadecimale (usando lettere minuscole a--f)f)

%X%X Notazione esadecimale (usando lettere maiuscole ANotazione esadecimale (usando lettere maiuscole A--F)F)

Page 7: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Scrittura formattata su file o su stringaScrittura formattata su file o su stringa

•• LaLa stringastringa didi formatoformato puòpuò contenerecontenere alcunealcune sequenzesequenze didi carattericaratteri didi escapeescape (dette(dettesequenzesequenze didi escapeescape)) cheche nonnon verrannoverranno visualizzatevisualizzate esattamenteesattamente cosìcosì comecome sonosonoscrittescritte poichépoiché hannohanno lolo scoposcopo didi formattareformattare ilil testotesto.. TaliTali sequenzesequenze inizianoiniziano concon ililsimbolosimbolo \\ (backslash)(backslash).. EsempiEsempi didi sequenzesequenze didi escapeescape sonosono::\\bb ritorna di un carattere indietro (backspace)ritorna di un carattere indietro (backspace)\\nn va a capo lineava a capo linea\\tt tabulazione orizzontaletabulazione orizzontale\\\\ stampa il carattere stampa il carattere \\\\"" stampa il carattere stampa il carattere ""%%%% stampa il carattere stampa il carattere %%

•• PerPer scriverescrivere datidati formattatiformattati susu unauna stringastringa sisi usausa lala funzionefunzione sprintfsprintf::s = s = sprintfsprintf(format,A,…)(format,A,…)dove dove AA è la matrice contenente i dati il cui formato è specificato da è la matrice contenente i dati il cui formato è specificato da formatformat..Esempio:Esempio:aa == --33//22;;dispdisp((sprintfsprintf('a('a == %%55..22ff \\n',a))n',a));;l’istruzionel’istruzione precedenteprecedente èè equivalenteequivalente aa::fprintffprintf('a('a == %%55..22ff \\n',a)n',a)

Page 8: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Lettura formattata da file o da stringaLettura formattata da file o da stringa

•• Per Per leggere da un file in modo formattatoleggere da un file in modo formattato si usa la funzione si usa la funzione fscanffscanf::A = A = fscanffscanf((fidfid,format,,format,sizesize););dovedove fidfid èè l'identificatorel'identificatore deldel filefile susu cuicui leggereleggere ii datidati.. LaLa funzionefunzione fscanffscanf leggeleggetuttitutti ii datidati daldal filefile specificatospecificato dall'identificatoredall'identificatore fidfid,, lili converteconverte inin accordoaccordo alalformatoformato didi stringastringa specificatospecificato inin formatformat ee immagazzinaimmagazzina questiquesti datidati nellanella matricematriceAA..

••sizesize puòpuò essereessere::nn leggelegge alal piùpiù nn elementielementi all'internoall'interno didi unun vettorevettore colonnacolonna;;infinf leggelegge finofino allaalla finefine deldel file,file, fornendofornendo inin unun vettorevettore colonnacolonna contenentecontenente gligli stessistessi

numerinumeri didi elementielementi cheche sisi trovanotrovano sulsul filefile;;[m,n][m,n] leggelegge unauna quantitàquantità didi elementielementi sufficientisufficienti aa riempireriempire unauna matricematrice mmxxnn,, riempendoriempendo

lala matricematrice perper colonnecolonne;; nn puòpuò essereessere infinf,, mentrementre mm nono..•• IlIl formatformat contienecontiene lala specificaspecifica didi conversioneconversione;; generalmentegeneralmente inin questoquesto casocaso vieneviene

utilizzatoutilizzato ilil solosolo caratterecarattere didi conversioneconversione (ad(ad eses.. %%ff)) ancheanche sese puòpuò essereessere inoltreinoltrespecificatospecificato lala massimamassima ampiezzaampiezza deldel campocampo..

•• InIn alternativaalternativa daldal menumenu FileFile sisi selezionaseleziona ImportImport DataData ee poipoi sisi scegliesceglie lala directorydirectory ee ililnomenome deldel filefile dada importareimportare..

•• PerPer leggereleggere dada unauna stringastringa inin modomodo formattatoformattato sisi usausa lala funzionefunzione sscanfsscanf::A = A = sscanfsscanf(s,format,(s,format,sizesize););dove dove ss è una variabile stringa.è una variabile stringa.

Page 9: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Scrittura/lettura file in formato ASCII Scrittura/lettura file in formato ASCII e scrittura/lettura non formattatae scrittura/lettura non formattata

•• Per Per scrivere dati in un file in formato scrivere dati in un file in formato ASCIIASCII si usa la funzione si usa la funzione dlmwritedlmwrite::dlmwritedlmwrite((filename,A,dlmfilename,A,dlm););NelNel filefile ““filenamefilename”” vengonovengono scrittiscritti gligli elementielementi delladella matricematrice AA inin formatoformato ASCIIASCIIusandousando ilil caratterecarattere dlmdlm comecome delimitatoredelimitatore (es(es.:.: ''\\tt''))..

•• Per Per leggere dati da un file in formato leggere dati da un file in formato ASCIIASCII si usa la funzione si usa la funzione dlmreaddlmread::A = A = dlmreaddlmread((filename,dlmfilename,dlm););

•• Per Per scrivere in un file in modo non formattatoscrivere in un file in modo non formattato (dati binari)(dati binari) si usa la funzione si usa la funzione fwritefwrite::fwritefwrite((fidfid,A,,A,precisionprecision););dovedove precisionprecision èè unauna stringastringa cheche specificaspecifica ilil formatoformato deidei datidati.. AdAd esempioesempio'float'float3232'' specificaspecifica cheche ii datidati sonosono numerinumeri realireali scrittiscritti inin singolasingola precisione,precisione,mentrementre ''doubledouble'' specificaspecifica cheche ii datidati sonosono numerinumeri realireali scrittiscritti inin doppiadoppia precisioneprecisione..

•• Per Per leggere da un file in modo non formattato (dati binari)leggere da un file in modo non formattato (dati binari) si usa la funzione si usa la funzione freadfread::A = A = freadfread((fid,size,precisionfid,size,precision););

Page 10: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

InterpolazioneInterpolazione

•• E'E' spessospesso necessarionecessario stimarestimare valorivalori intermediintermedi tratra duedue datidati notinoti concon precisioneprecisione..QuestoQuesto processoprocesso sisi chiamachiama interpolazioneinterpolazione..

•• L'interpolazioneL'interpolazione linearelineare inin MATLABMATLAB èè svoltasvolta dalledalle funzionifunzioni interpinterp11 ((11D)D) eeinterpinterp22 ((22D)D).. SupponiamoSupponiamo cheche ilil vettorevettore xx contengacontenga ii datidati delladella variabilevariabileindipendenteindipendente ee cheche ilil vettorevettore yy contengacontenga ii datidati delladella variabilevariabile dipendentedipendente.. AlloraAllorascrivendoscrivendo::y_inty_int == interpinterp11(x,y,(x,y,x_intx_int));;sisi ottieneottiene unun vettorevettore delladella stessastessa dimensionedimensione didi x_intx_int cheche contienecontiene ii valorivaloriinterpolatiinterpolati linearmentelinearmente didi yy cheche corrispondonocorrispondono aa x_intx_int..

•• E'E' dada notarenotare cheche ii valorivalori delladella variabilevariabile indipendenteindipendente deldel vettorevettore xx devonodevono essereessere ininordineordine crescentecrescente ee ii valorivalori deldel vettorevettore didi interpolazioneinterpolazione x_intx_int devonodevono essereesserecompresicompresi all'internoall'interno dell'intervallodell'intervallo deidei valorivalori didi xx..

•• EsempioEsempio:: ii vettorivettori xx ee yy contengono,contengono, rispettivamenterispettivamente ii tempitempi ee lele temperaturetemperaturexx == [[77,, 99,, 1111,, 1212]];; %% tempitempiyy == [[1515,, 1818,, 2525,, 2828]];; %% temperaturetemperaturex_intx_int == [[88,, 1010]];; %% oreore 88..0000 ee oreore 1010..0000 temperatura=temperatura=??y_inty_int == interpinterp11(x,(x, y,y, x_intx_int))

Page 11: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

InterpolazioneInterpolazione

•• InIn alternativa,alternativa, èè possibilepossibile eseguireeseguire l'interpolazionel'interpolazione deldel tipotipo splinespline cubicacubica cheche nelnelcasocaso 11DD sisi concretizzaconcretizza attraversoattraverso ilil seguenteseguente comandocomando::y_inty_int == spline(x,y,x_int)spline(x,y,x_int);;

•• LaLa funzionefunzione interpinterp22 didi MATLABMATLAB consenteconsente didi interpolareinterpolare unauna funzionefunzione didi dueduevariabili,variabili, zz == ff((xx,,yy)).. SeSe vogliamovogliamo stimarestimare ilil valorevalore didi zz perper xx==xxii ee yy==yyii,, lala sintassisintassi èè::interpinterp22(x,y,z,x_i,y_i)(x,y,z,x_i,y_i);;

•• SupponiamoSupponiamo didi avereavere aa disposizionedisposizione lele temperaturetemperature misuratemisurate inin unouno stessostesso istanteistante ininquattroquattro differentidifferenti localitàlocalità dispostedisposte comecome riportatoriportato inin figurafigura.. SiSi vogliavoglia stimarestimare lalatemperaturatemperatura inin unauna localitàlocalità internainterna nelnel puntopunto didi coordinatecoordinate xxii==00..66 ee yyii==11..55.. LaLasessionesessione didi lavorolavoro èè lala seguenteseguente::xx == [[00,,11]];;yy == [[00,,22]];;zz == [[1515,,1717;;1818,,1414]];; %% temperaturetemperaturex_ix_i == 00..66;;y_iy_i == 11..55;;z_intz_int == interpinterp22(x,(x, y,y, z,z, x_i,x_i, y_i)y_i)

15 17

18 14

Page 12: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi sovrappostiDiagrammi sovrapposti•• LeLe seguentiseguenti variantivarianti deidei comandicomandi plot(y)plot(y) ee plot(x,y)plot(x,y) possonopossono essereessere utilizzatiutilizzati

perper generaregenerare diagrammidiagrammi sovrappostisovrapposti::••plot(A)plot(A) rappresentarappresenta inin unun diagrammadiagramma lele colonnecolonne didi AA inin funzionefunzione deidei loroloro

indici,indici, generandogenerando nn curvecurve;; AA èè unauna matricematrice concon mm righerighe eded nn colonnecolonne..••plot(x,A)plot(x,A) rappresentarappresenta inin unun diagrammadiagramma lala matricematrice AA inin funzionefunzione deldel vettorevettorexx;; xx èè unun vettorevettore rigariga oo unun vettorevettore colonnacolonna eded AA èè unauna matricematrice concon mm righerighe eded nncolonnecolonne.. SeSe lala dimensionedimensione didi xx èè paripari adad m,m, ogniogni colonnacolonna didi AA vienevienerappresentatarappresentata inin funzionefunzione deldel vettorevettore xx.. IlIl diagrammadiagramma conterràconterrà tantetante curvecurvequantequante sonosono lele colonnecolonne didi AA.. SeSe lala dimensionedimensione didi xx èè paripari adad n,n, ogniogni rigariga didi AAvieneviene rappresentatarappresentata inin funzionefunzione deldel vettorevettore xx.. IlIl diagrammadiagramma conterràconterrà tantetantecurvecurve quantequante sonosono lele righerighe didi AA..

••plot(A,y)plot(A,y) rappresentarappresenta inin unun diagrammadiagramma ilil vettorevettore yy inin funzionefunzione delladellamatricematrice AA.. SeSe lala dimensionedimensione didi yy èè paripari adad mm,, yy saràsarà rappresentatorappresentato inin funzionefunzionedelledelle colonnecolonne didi AA.. IlIl diagrammadiagramma conterràconterrà tantetante curvecurve quantequante sonosono lele colonnecolonne didiAA.. SeSe lala dimensionedimensione didi yy èè paripari adad nn,, yy saràsarà rappresentatorappresentato inin funzionefunzione delledellerigherighe didi AA.. ogniogni rigariga didi AA vieneviene rappresentatarappresentata inin funzionefunzione deldel vettorevettore xx.. IlIldiagrammadiagramma conterràconterrà tantetante curvecurve quantequante sonosono lele righerighe didi AA..

••plot(A,B)plot(A,B) rappresentarappresenta inin unun diagrammadiagramma lele colonnecolonne delladella matricematrice BB ininfunzionefunzione delledelle colonnecolonne delladella matricematrice AA..

Page 13: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Tipi di linee e simboli dei datiTipi di linee e simboli dei dati•• PerPer rappresentarerappresentare ilil vettorevettore yy inin funzionefunzione deldel vettorevettore xx ee indicareindicare ogniogni puntopunto concon unun

determinatodeterminato simbolo,simbolo, bastabasta racchiudereracchiudere ilil simbolosimbolo tratra duedue apiciapici nellanella funzionefunzioneplotplot..

•• AdAd esempioesempio perper rappresentarerappresentare ii puntipunti didi unun diagrammadiagramma concon unun cerchiocerchio bastabastadigitaredigitare:: plot(x,y,'o')plot(x,y,'o').. PerPer collegarecollegare ii varivari simbolisimboli concon unun segmentosegmento occorreoccorrerappresentarerappresentare duedue voltevolte ii datidati digitandodigitando:: plot(x,y,x,y,'o')plot(x,y,x,y,'o')..

•• PerPer rappresentarerappresentare yy inin funzionefunzione didi xx concon deglidegli asterischiasterischi verdiverdi collegaticollegati adad unaunalinealinea tratteggiatatratteggiata rossa,rossa, bastabasta digitaredigitare:: plot(x,y,'g*',x,y,'rplot(x,y,'g*',x,y,'r----')')..

SimboloSimbolo MarcatoreMarcatore Tipo lineaTipo linea MarcatoreMarcatore ColoreColore MarcatoreMarcatore

Punto Punto .. Linea cont. (default)Linea cont. (default) -- NeroNero kk

AsteriscoAsterisco ** TratteggioTratteggio ---- BluBlu bb

Segno perSegno per xx Tratto e puntoTratto e punto --.. AzzurroAzzurro cc

CerchioCerchio oo Linea punteggiataLinea punteggiata :: VerdeVerde gg

Segno piùSegno più ++ RosaRosa mm

QuadratoQuadrato ss RossoRosso rr

RomboRombo dd BiancoBianco ww

StellaStella pp GialloGiallo yy

Page 14: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Etichette per linee e datiEtichette per linee e dati

•• SeSe unun diagrammadiagramma èè formatoformato dada piùpiù curvecurve èè possibilepossibile inserireinserire unauna legendalegenda perperdistinguerle,distinguerle, utilizzandoutilizzando ilil comandocomando legendlegend.. LaLa sintassisintassi didi basebase èè::legendlegend('stringa('stringa11','stringa','stringa22',',......));;AdAd esempioesempio ilil seguenteseguente filefile scriptscript generagenera ilil diagrammadiagramma mostratomostrato inin figurafigura..x=x=[[00::00..0101::22*pi]*pi];;y=siny=sin(x)(x);;z=cosz=cos(x)(x);;plot(x,y,x,z,'plot(x,y,x,z,'----')');;xlabelxlabel('x')('x');;ylabelylabel('seno('seno ee coseno')coseno');;legendlegend('sin(x)','cos(x)')('sin(x)','cos(x)');;

•• E'E' possibilepossibile crearecreare titolititoli ededetichetteetichette cheche contengonocontengono simbolisimbolimatematici,matematici, letterelettere grechegreche eded altrialtriattributiattributi graficigrafici (caratteristiche(caratteristichebasatebasate sulsul linguaggiolinguaggio TeXTeX))..

0 1 2 3 4 5 6 7-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

x

seno

e c

osen

o

s in(x)cos(x)

Page 15: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Principali simboli e caratteri specialiPrincipali simboli e caratteri speciali

Page 16: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi multipliDiagrammi multipli

•• IlIl comandocomando subplotsubplot consenteconsente didi generaregenerare nellonello stessostesso graficografico piùpiù diagrammidiagrammi dididimensionidimensioni ridotteridotte.. LaLa sintassisintassi èè::subplotsubplot(m,n,p)(m,n,p);;QuestoQuesto comandocomando dividedivide lala finestrafinestra graficagrafica didi MATLABMATLAB inin unauna serieserie didi pannellipannellirettangolarirettangolari dispostidisposti susu mm righerighe ee nn colonnecolonne.. LaLa variabilevariabile pp indicaindica aa MATLABMATLAB didiporreporre l'outputl'output deldel comandocomando plotplot cheche seguesegue ilil comandocomando subplotsubplot nelnel pp--esimoesimopannellopannello..

•• PerPer esempio,esempio, subplotsubplot((33,,22,,55)) creacrea unun arrayarray didi seisei pannellipannelli (tre(tre righerighe ee dueduecolonnecolonne didi pannelli)pannelli) ee indicaindica aa MATLABMATLAB didi visualizzarevisualizzare ilil successivosuccessivo diagrammadiagrammanelnel quintoquinto pannellopannello..

•• IlIl seguenteseguente filefile scriptscript creacrea lala figurafigura riportatariportata nellanella paginapagina successivasuccessiva cheche contienecontiene iidiagrammidiagrammi delledelle funzionifunzioni y=ey=e--11..22xx sin(sin(1010x+x+55)) perper 00≤≤ xx≤≤55 ee y=|xy=|x33--100100|| perper --66≤≤ x≤x≤66..xx == [[00::00..0101::55]];;yy == expexp((--11..22*x)*x)..*sin*sin((1010*x+*x+55));;subplotsubplot((11,,22,,11));;plot(x,y),plot(x,y),xlabelxlabel('x'),('x'),ylabelylabel('y'),('y'),axisaxis([([00 55 --11 11])])xx == [[--66::00..0101::66]];;yy == absabs(x(x..^̂33--100100));;subplotsubplot((11,,22,,22));;plot(x,y),plot(x,y),xlabelxlabel('x'),('x'),ylabelylabel('y'),('y'),axisaxis([([--66 66 00 350350])])

Page 17: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi multipliDiagrammi multipli

0 2 4-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

x

y

-5 0 50

50

100

150

200

250

300

350

x

y

Page 18: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi bidimensionali specialiDiagrammi bidimensionali speciali

ComandoComando DescrizioneDescrizione

semilogx(x,y)semilogx(x,y) Crea un diagramma semilogaritmico di Crea un diagramma semilogaritmico di yy in funzione di in funzione di xx con con l'asse l'asse xx in scala logaritmica.in scala logaritmica.

semilogy(x,y)semilogy(x,y) Crea un diagramma semilogaritmico di Crea un diagramma semilogaritmico di yy in funzione di in funzione di xx con con l'asse l'asse yy in scala logaritmica.in scala logaritmica.

loglog(x,y)loglog(x,y) Crea un diagramma bilogaritmico di Crea un diagramma bilogaritmico di yy in funzione di in funzione di xx..

bar(x,y)bar(x,y) Crea un diagramma a barre di Crea un diagramma a barre di yy in funzione di in funzione di xx..

polar(teta,r,polar(teta,r,'tipo')'tipo')

Crea un diagramma polare di coordinate Crea un diagramma polare di coordinate tetateta e e rr, , utilizzando il tipo di linea, simbolo e colore specificati nella utilizzando il tipo di linea, simbolo e colore specificati nella stringa stringa tipotipo..

stairs(x,y)stairs(x,y) Crea un diagramma a gradini di Crea un diagramma a gradini di yy in funzione di in funzione di xx..

stem(x,y)stem(x,y) Crea un diagramma a steli di Crea un diagramma a steli di yy in funzione di in funzione di xx..

plotyy(x1,y1,plotyy(x1,y1,x2,y2)x2,y2) Crea un diagramma con due assi delle ordinateCrea un diagramma con due assi delle ordinate..

Page 19: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi tridimensionali a lineaDiagrammi tridimensionali a linea

•• LeLe lineelinee nellonello spaziospazio tridimensionaletridimensionale possonopossono essereessere rappresentaterappresentate concon ilil comandocomandoplotplot33,, lala cuicui sintassisintassi èè plotplot33(x,y,z)(x,y,z).. PerPer esempioesempio consideriamoconsideriamo lala linealinea 33DDcaratterizzatacaratterizzata dalladalla seguenteseguente equazioneequazione parametricaparametrica::

•• LaLa curvacurva generatagenerata èè lala spiralespirale riportatariportata ininfigurafigura generatagenerata concon lele seguentiseguenti istruzioniistruzioni::tt == [[00::pi/pi/5050::1010*pi]*pi];;plotplot33((expexp((--00..0505*t)*t)..*sin*sin(t),(t),......expexp((--00..0505*t)*t)..*cos*cos(t),(t),tt));;xlabelxlabel('x')('x');;ylabelylabel('y')('y');;zlabelzlabel('z')('z');;gridgrid;;

-0.05t

-0.05t

x = e sin(t)y = e cos(t)z = t

-1-0.5

00.5

1

-1

0

10

10

20

30

40

xy

z

Page 20: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi tridimensionali a superficieDiagrammi tridimensionali a superficie

•• LaLa funzionefunzione zz==ff((xx,,yy)) rappresentarappresenta unauna superficiesuperficie quandoquando vieneviene riprodottariprodotta nelnelsistemasistema didi assiassi xx,,yy,,zz.. LaLa funzionefunzione meshmesh permettepermette didi generaregenerare unun diagrammadiagramma aasuperficiesuperficie nellonello spaziospazio 33DD.. PrimaPrima didi utilizzareutilizzare lala funzionefunzione meshmesh,, occorreoccorre generaregenerareunauna grigliagriglia didi puntipunti nelnel pianopiano xyxy mediantemediante lala funzionefunzione meshgridmeshgrid ee poipoi calcolarecalcolare lalafunzionefunzione ff((xx,,yy)) inin corrispondenzacorrispondenza didi questiquesti puntipunti..

•• SeSe x=x=[[xminxmin::xstepxstep::xmaxxmax]] ee y=y=[[yminymin::ystepystep::ymaxymax]],, alloraallora ilil comandocomando[X,Y][X,Y]=meshgrid=meshgrid(x,y)(x,y) genereràgenererà lele coordinatecoordinate didi unauna grigliagriglia rettangolarerettangolare.. LeLematricimatrici risultantirisultanti XX ee YY conterrannoconterranno lele coppiecoppie didi coordinatecoordinate didi ogniogni puntopunto delladellagrigliagriglia.. QuesteQueste coppiecoppie sonosono utilizzateutilizzate perper calcolarecalcolare lala funzionefunzione..

•• LaLa funzionefunzione [X,Y][X,Y]=meshgrid=meshgrid(x)(x) èè equivalenteequivalente aa [X,Y][X,Y]=meshgrid=meshgrid(x,(x,xx)) eepuòpuò essereessere utilizzatautilizzata sese xx ee yy hannohanno gligli stessistessi minimiminimi ee massimimassimi ee lele stessestesse spaziaturespaziature..InIn questoquesto casocaso perper generaregenerare lala grigliagriglia èè possibilepossibile digitaredigitare::[X,Y][X,Y] == meshgridmeshgrid(min(min::stepstep::maxmax))..

•• NelNel seguitoseguito vieneviene mostratomostrato comecome generaregenerare ilil diagrammadiagramma aa superficiesuperficie delladella funzionefunzionezz==xxee--[([(xx--y^y^22)^)^22+y^+y^22]] perper --22 ≤≤ xx ≤≤ 22 ee --22 ≤≤ yy ≤≤ 22 concon unauna spaziaturaspaziatura didi 00..11..[X,Y][X,Y] == meshgridmeshgrid((--22::00..11::22));;ZZ == XX..*exp(*exp(--((X((X--YY..^̂22))..^̂22+Y+Y..^̂22))));;meshmesh(X,Y,Z)(X,Y,Z);;xlabelxlabel('x'),('x'),ylabelylabel('y'),('y'),zlabelzlabel('z')('z');;

22 2

( )- x- y y

f x, y = x e

Page 21: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi tridimensionali a superficieDiagrammi tridimensionali a superficie

-2-1

01

2

-2

0

2-0.5

0

0.5

xy

z

Page 22: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi a contorno (contour plot)Diagrammi a contorno (contour plot)•• II diagrammidiagrammi aa contornocontorno possonopossono essereessere creaticreati concon lala funzionefunzione contourcontour lala cuicui

sintassisintassi èè contour(X,Y,Z)contour(X,Y,Z).. AncheAnche inin questoquesto casocaso bisognabisogna primaprima crearecreare unaunagrigliagriglia didi puntipunti concon lala funzionefunzione meshgridmeshgrid ee generaregenerare lala funzionefunzione..[[X,Y]X,Y] == meshgrid(meshgrid(--22::00..11::22));;ZZ == XX..*exp(*exp(--((X((X--YY..^̂22))..^̂22+Y+Y..^̂22))));;contour(X,Y,Z),xlabel('x'),ylabel('y')contour(X,Y,Z),xlabel('x'),ylabel('y');;

x

y

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Page 23: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Diagrammi vettoriali del gradiente di una funzioneDiagrammi vettoriali del gradiente di una funzione•• II diagrammidiagrammi vettorialivettoriali possonopossono essereessere creaticreati concon lala funzionefunzione quiverquiver lala cuicui sintassisintassi

èè quiverquiver(X,Y,(X,Y,pxpx,,pypy)).. AncheAnche inin questoquesto casocaso bisognabisogna primaprima crearecreare unauna grigliagriglia didipuntipunti concon lala funzionefunzione meshgridmeshgrid ee generaregenerare lala funzionefunzione..[X,Y][X,Y] == meshgridmeshgrid((--22::00..11::22));;ZZ == XX..*exp(*exp(--((X((X--YY..^̂22))..^̂22+Y+Y..^̂22))));;[[pxpx,,pypy]] == gradientgradient(Z,(Z,00..11,,00..11));;quiverquiver(X,Y,(X,Y,pxpx,,pypy))

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

Page 24: Trasmissione del calore con applicazioni numeriche ... · utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni ... scrittura. Se il file non esiste, la funzione

Funzioni per diagrammi tridimensionaliFunzioni per diagrammi tridimensionali

FunzioneFunzione DescrizioneDescrizione

contour(X,Y,Z)contour(X,Y,Z) Crea un diagramma a contorno (curve di livello).Crea un diagramma a contorno (curve di livello).mesh(X,Y,Z)mesh(X,Y,Z) Crea un diagramma tridimensionale a superficie.Crea un diagramma tridimensionale a superficie.

meshc(X,Y,Z)meshc(X,Y,Z)Come Come meshmesh, in più traccia un diagramma a contorno sotto la , in più traccia un diagramma a contorno sotto la superficie.superficie.

meshz(X,Y,Z)meshz(X,Y,Z) Come Come meshmesh, in più traccia una serie di linee di riferimento , in più traccia una serie di linee di riferimento verticali sotto la superficie.verticali sotto la superficie.

surf(X,Y,Z)surf(X,Y,Z) Crea un diagramma tridimensionale a superficie la cui Crea un diagramma tridimensionale a superficie la cui griglia ha pannelli opachi.griglia ha pannelli opachi.

surfc(X,Y,Z)surfc(X,Y,Z) Come Come surfsurf, in più traccia un diagramma a contorno sotto la , in più traccia un diagramma a contorno sotto la superficie.superficie.

[X,Y]=meshgrid(x,y)[X,Y]=meshgrid(x,y)Crea le matrici Crea le matrici XX e e YY dai vettori dai vettori xx e e yy per definire una griglia per definire una griglia rettangolare.rettangolare.

[X,Y]=meshgrid(x)[X,Y]=meshgrid(x) Equivale a Equivale a [X,Y]=meshgrid(x,x)[X,Y]=meshgrid(x,x)

waterfall(X,Y,Z)waterfall(X,Y,Z)Come Come meshmesh, con la differenza che genera linee di griglia in , con la differenza che genera linee di griglia in una sola direzione.una sola direzione.