La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione allUso dei Calcolatori (1) Uso dei Calcolatori in Fisica (3) Prof. Paolo Lotti Dr. Paolo Lotti Istituto Nazionale di Fisica Nucleare (INFN)

Presentazioni simili


Presentazione sul tema: "Introduzione allUso dei Calcolatori (1) Uso dei Calcolatori in Fisica (3) Prof. Paolo Lotti Dr. Paolo Lotti Istituto Nazionale di Fisica Nucleare (INFN)"— Transcript della presentazione:

1 Introduzione allUso dei Calcolatori (1) Uso dei Calcolatori in Fisica (3) Prof. Paolo Lotti Dr. Paolo Lotti Istituto Nazionale di Fisica Nucleare (INFN) Sezione di Padova Via F. Mar zolo, 8 I Padova tel.: stanza ~ lotti Mercoledì ore 15 Laboratori didattici del Dipartimento Sig. G. Bettella Sig. P. Parisotto Dr. Matteo Melani Dr. Antonio Ceseracciu

2 Programma dei corsi Introduzione alluso dei calcolatori 0) Il calcolatore 1) Presentazione dellaula informatica 2) Sistemi operativi presenti 3) Il più conosciuto: Microsoft Windows 4) Sicurezza?! 5) Interazione utente-macchina 6) Presentazione di alcuni programmi

3 Il calcolatore Memoria RAM (Random Access Memory): è realizzata mediante circuiti integrati, costituiti da un insieme di Flip-Flop (circuiti di memoria a due stati stabili); Processore Centrale CPU (Central Processing Unit): legge le istruzioni dalla -memoria, le interpreta e le esegue; Unità di Input e Output: tastiera e mouse, principalmente, sono I dispositivi di INPUT usati dallutente per trasmettere istruzioni/informazioni al calcolatore; Monitor e stampante sono invece i più comuni dispositivi di OUTPUT.

4 Sistema Operativo Il sistema operativo è un programma che costituisce linterfaccia utente-macchina. Controlla quindi lhardware che costituisce la macchina e gestisce lutilizzo di queste componenti da parte dellutente mediante opportune istruzioni. Una differenza importante tra sistemi operativi diversi è quella di permettere lutilizzo delle risorse del calcolatore da uno o più utenti, ciascuno dei quali eventualmente esegue una o più istruzioni: DOS - Windows 95/98 - Windows XP, Linux

5 Reti di calcolatori Le apparecchiature per mettere in comunicazione i calcolatori fra loro sono evolute moltissimo nel corso degli ultimi dieci anni …

6 Dipartimento di Fisica G. Galilei Polo Didattico - Aula Informatica LAula Informatica del Dipartimento di Fisica esiste dallAnno Accademico 1991/92 Hanno contribuito, in forma differente, le seguenti persone: Prof. E. Calimani Dr. P. Lotti Sig. V. Chiochia Prof. L. Peruzzo Sig. C. Venier Sig. A. Simion Prof. M. Nigro Sig. M. Gravino Prof. C. Voci Sig. A. Dorigo Prof. G. Busetto Sig. M. Menguzzato

7 Si è iniziato con 10 PC IBM 286 Successivamente, 3-4 Macintosh PC di generazione successiva. 1 vecchio microvax digital alcuni terminali alfanumerici OGGI 32 postazioni di lavoro PC Pentium III con 256 Mbyte di RAM Su queste macchine sono installati i sistemi operativi Windows NT 4.0 (tutte) e Linux (20 macchine) distribuzione RedHat

8 Il sistema operativo Linux, un sistema Unix per Personal Computers. Il sistema operativo Unix esiste da più di 30 anni ed è considerato tuttora il sistema operativo più ver- satile e potente. La caratteristica più conosciuta di Unix è la non amichevolezza. Esempio: il comando copy si chiama cp! Distingue le maiuscole dalle minuscole: CP non funziona! Nel corso degli ultimi 10 anni, Unix lha vinta costringen- do gli utenti e le imprese prodruttrici di software ad ade- guarsi. Microsoft per il momento resiste...

9 Aula informatica del Dipartimento di Fisica Sono presenti I due sistemi operativi attualmente più utilizzati, Linux e Microsoft Windows NT, ed in parti- colare Windows NT è un programma di Linux. Questo software permette la coesistenza dei due sistemi operativi. Ogni calcolatore ospita entrambe I sistemi che convivono, Vediamo prima a grandi linee I due sistemi e succes- sivamente come I due comunicano tra loro. Obs: I sistemi sono due ma il calcolatore è uno solo!

10 Uso di Windows 95/98/me/2000/XP Lobbiettivo principale è che lutilizzo sia il più amichevole possibile; interfaccia utente-macchina molto intuitiva e mouse. Clicca qui, clicca lì clicca su, clicca giù Programmi utili, video scrittura, analisi di dati … tutto al giusto prezzo!

11 … e se si blocca tutto?

12 Linux è un sistema operativo gratuito creato da Linus Torvalds e di cui esistono varie distribuzioni, la più conosciuta oggi è la RedHat In aula informatica è installata al momento la distri- buzione 6.2 assieme a Windows NT 4.0 Entrambi I sistemi richiedono il possesso di un account ovvero una username ed una password Luso di Linux richiede più pazienza in media, ma il sistema gestisce meglio le risorse del calcolatore e molto raramente si blocca

13 Aritmetica binaria Laddizione, la sottrazione, la moltiplicazione e la divisione tra numeri binari si eseguono esattamente nello stesso modo che nel sistema decimale, con la differenza che il sistema decimale ha dieci cifre mentre quello binario soltanto due, 0 e 1. Esempi di conversione decimale-binario: 26 ==> 2x10 + 6x10 10 I coefficienti delle potenze di 10, base del sistema numerico utilizzato, variano da 0 a 9. Nel sistema binario, da 0 a 1 26 ==> 1x2 + 1x2 +0x2 +1x2 +0x2 ==>

14 Consideriamo per esempio laddizione tra due numeri in codice binario: 26 ==> e 28 ==> ==> In generale, valgono le seguenti regole:

15 Analogamente per la sottrazione: e riporto 1 Esempio: ==> 2 10

16 La moltiplicazione è facile: x0 x0 x1 x Esempio: x ==>

17 Divisione: si procede come nel sistema decimale con la semplificazione che le cifre nel quoziente possono assumere soltanto il valore 0 o :11010= :26= Altro esempio: :101= :5=

18 Linux è un sistema operativo gratuito creato da Linus Torvalds e di cui esistono varie distribuzioni, la più conosciuta oggi è la RedHat In aula informatica è installata al momento la distri- buzione 6.2 assieme a Windows NT 4.0 Entrambi I sistemi richiedono il possesso di un account ovvero una username ed una password Luso di Linux richiede più pazienza in media, ma il sistema gestisce meglio le risorse del calcolatore e molto raramente si blocca

19 Il sistema operativo permette lutilizzo del computer in un modo molto più confortabile per lutente medio le cui esigenze sono di utilizzare varie applicazioni. Nellambito di un corso di studi scientifico, le applicazioni più comuni sono: - programmi per la gestione di documenti; - scrittura di testi, per esempio, relazioni di laboratorio; - analisi di dati di laboratorio; - programmi di grafica; - consultazione di pagine internet; - programmi di manipolazione algebrica: - scrittura di programmi per calcoli numerici.

20 Una differenza importante tra il sistema operativo Microsoft Windows e Linux: quando si usa Windows, lutente interagisce con programma che ne mette a disposizione molti altri; quando si usa Linux, lutente interagisce direttamente con il calcolatore e le periferiche a disposizione attraverso un programma molto semplice che è unemulatore di terminale; il comando più utile usando un terminale Linux: # apropos copy (per esempio) # man cp (man, il manuale on-line del sistema) (in questo caso, #, è il prompt che il sistema operativo uti- lizza quando in attesa di un comando)

21 Dal punto di vista della facilità duso, il sistema operativo Microsoft Windows è molto più pratico, basta smanettare un po fino a raggiungere lobbiettivo proposto. esempio Per quanto riguarda la gestione dei documenti, Microsoft Windows è semplice da usare ed è soddisfacente. Programmi di scrittura di testi, come Microsoft Word, sono stati adottati come standard per la scittura di libri o articoli di giornale (case editrici). In ambiente scientifico-universitario, per contenere i costi e per riuscire a realizzare progetti specifici, per esempio il controllo di apparecchiature di misura, Windows non ser- ve.

22 Linux ha lo svantaggio di non presentarsi molto bene, ma molte applicazioni si sono adeguate, xmgrace, kile. esempio Un vantaggio molto importante è che esiste una comunità molto grande di programmatori molto bravi ma non pro- fessionisti che sviluppa software che vengono messi gratui- tamente a disposizione a livello internazionale (linstallazio- ne non è sempre banale). Per esempio, in ambito scientifico, a livello di scrittura di articoli e successivamente di pubblicazione di questi arti- coli in riviste scientifiche, si è manifestata lesigenza di di- sporre di un linguaggio di scrittura di testi che permettes- se di scrivere le formule matematiche in maniera elegante.

23 Donald Knuth ha sviluppato un linguaggio di scrittura di testi, TeX, che è diventato lo standard internazionale. In realtà, unevoluzione di TeX, LaTeX (Leslie Lamport), è stato adottato da tutte le riviste internazionali per la pubblicazione di articoli scientifici (TeX e LaTeX esisto- no ovviamente anche per Microsoft Windows). Consiglio utile: imparare LaTeX Per lanalisi dei dati di laboratorio, esistono molte appli- cazioni e la scelta è prof-dependent!

24 Per la consultazione delle pagine Internet esistono diversi programmi (Browser) in circolazione: Internet explorer, Mozilla, Netscape. Molti siti internet sono ottimizzati per luso di uno di que- sti programmi e la scelta viene fatta principalmente per motivi di politica commerciale. Una risorsa sicuramente molto utile, sono i cosiddetti mo- tori di ricerca:

25 Normalmente si procede nel seguente modo: 1) si cerca in internet un sito che metta a disposizione il programma cercato, possibilmente gratuito o di cui esista una versione dimostrativa, valida per un pe-. riodo limitato di tempo (tipicamente un mese); 2) si scarica il software e si procede (o se ne richiede) allinstallazione; 3) lobbiettivo è quello di installare nel calcolatore i programmi di maggior utilità;

26 Il sistema operativo Linux è nato dopo Microsoft Windows e la sfida era quella di inserirsi in un mercato di software con- trollato da Microsoft. Proprio perchè intenzionato ad inserirsi in un mondo già esi- stente da tempo, la prima preoccupazione di Linux è stata di essere permettere la comunicazione con il mondo Microsoft. Esempio: le applicazioni mtools (mdir, mcopy, mtype, …) che permettono di usare il floppy disk utilizzando una formattazione perfettamente compatibile con Windows. Ovvio che il floppy disk è una periferica del calcolatore che può essere gestita da Linux senza preoccuparsi di qualsiasi compatibilità con altri sistemi operativi.

27 Nei calcolatori dellaula informatica sono stati installati vari programmi, in entrambe le piattaforme, per tentare di sod- disfare tutte le esigenze didattiche presentate. In particolare, è stata installata una licenza di Mathematica professional che ne permette luso su 10 calcolatori contem- poraneamente. Un altro programma per Windows NT, gratuito, permette il collegamento ad altri calcolatori in modalità grafica. Un calcolatore si distingue tra tutti: spiro.fisica.unipd.it spiro accetta collegamenti da altri calcolatori per mezzo di un programma che emula un terminale grafico, ssh, che è molto più evoluto del semplice collegamento via telnet.

28 Quando non si riesce a risolvere un problema algebricamente o mediante un programma di manipulazione algebrica (per vari motivi) e si vuole avere pieno controllo della soluzione in- contrata, si utilizza il calcolo numerico. Esistono vari trattati sacri di calcolo numerico ed lanalisi numerica di un problema si divide in tre tappe fondamentali: a) identificazione del metodo numerico da applicare; b) scrittura e debuggaggio del programma che risolve il problema; c) analisi ed interpretazione dei risultati. I primi linguaggi di programmazione (compilatori) sviluppati in ambiente scientifico sono stati il Basic, Pascal, ForTran, C, C++.

29 Linux: 1) la procedura di login da una finestra alfanumerica: CTRL+ALT+F1 2) cambiare la password: il comando passwd 3) gestore di finestre, il file.xinitrc exec wmaker exec AnotherLevel exec startkde 4) il comando ls con i suoi parametri, -a per esempio; 5) modificare questo file con un editor di testo, pico per esempio 6) prima applicazione: pine 7) il.forward per reindirizzare la posta elettronica

30 Windows NT: 1) cambiare password 2) collegamento a con ssh

31 Comandi principali: DOS Linux dir ls, ls -l, ls -a, ls -al type | more more del, erase rm mkdir rmdir rename mv copy cp help man … cd mstools # mcopy a:\file.ext.

32 Importante Tipico esempio del file.forward Se si usa, come da me erroneamente detto, il sistema operativo si accorge dellerrore, loop, e non spedisce il messaggio!

33 Un programma per calcolare per punti il valore di una funzione: /* Funzione per punti */ float fun(float x); int main(void) { int ip,ipmin,ipmax,idp; float x,xmin,dx; float y; ipmin=0; ipmax=50; idp=1; xmin=-5.; dx=0.2;

34 ip=ipmin; while(ip<=ipmax) { x=xmin+dx*ip; y=fun(x); printf("%6.1f %9.5f\n",x,y); ip=ip+idp; } float fun(float g) { float p=0.; p= *(g-2.)*(g-2.)+0.1*(g-0.5)*(g-0.5)*(g- 0.5); return p; }

35 # gcc -o fun fun.c #./fun #./fun > fig.dat # export DISPLAY= n:0.0 # gnuplot gnuplot> p fig.dat u 1:2 w p gnuplot> exit File grafico (Encapsulated PostScript): gnuplot> set term post Terminal type set to postscript Options are landscape noenhanced monocrome … gnuplot> set output fig.eps gnuplot> replot gnuplot> set term X11 Options are 0 gnuplot>exit

36 Sviluppo in serie di Taylor considerando p=0 e x=+h, x=-h sottraendo la seconda equazione dalla prima, si ottiene:

37 Altre espressioni sono: Sommando invece queste due equazioni:

38 Mathcad...

39 /* Paolo Lotti taylor.c /* #include #define pi float fun(float x); float fun1(float x1); int main(void) { int ip,ipmin,ipmax,idp; float x,xmin,dx; float x1,x1min,dx1; float y,y1; ipmin=0; ipmax=50; idp=1;

40 xmin=0.; dx=pi/25.; x1min=pi/2.; dx1=pi/50.; ip=ipmin; while(ip<=ipmax) { x=xmin+dx*ip; y=fun(x); x1=x1min+dx1*ip; y1=fun1(x1); printf("%6.2f %9.5f %6.2f %9.5f\n",x,y,x1,y1); ip=ip+idp; } return 0; }

41 float fun(float g) { float p=0.; p=cos(g); return p; } float fun1(float g) { float p=0.; p= *g+0.5*g*g; return p; } -- fisica teorica -- nuclear physics -- P. Lotti

42 #gcc -o taylor -lm taylor.c #./taylor #./taylor >taylor.dat # export DISPLAY= n (soltanto gli utenti Windows) # gnuplot gnuplot> p taylor.dat u 1:2 w l,taylor.dat u 3:4 w p

43 Vi presento double int main(void) { float a; double b; a=1./3.; b=1./3.; printf(" a=%17.15f\n b=%32.30lf\n",a,b); return 0; } a= b=

44 #include float fun(float x); int main(void) { float x,h; float xminus,xplus,der1,der2,der,exa; printf(" Enter x:\n"); scanf("%f",&x); printf(" Enter h:\n"); scanf("%f",&h); xplus=x+h; xminus=x-h; der=(fun(xplus)-fun(xminus))/2./h; der1=(fun(xplus)-fun(x))/h; der2=(fun(x)-fun(xminus))/h; exa=cos(x); printf(" h x 2p+ 2p- 3p exact\n"); printf("%10.6f %6.3f %10.6f %10.6f %10.6f %10.6f\n",h,x,der1,der2,der,exa); return 0; } float fun(float g) { float p=0.; p=sin(g); return p; }

45 #include double fun(double x); int main(void) { double x,h; double xminus,xplus,der1,der2,der,exa; printf(" Enter x:\n"); scanf("%lf",&x); printf(" Enter h:\n"); scanf("%lf",&h); xplus=x+h; xminus=x-h; der=(fun(xplus)-fun(xminus))/2./h; der1=(fun(xplus)-fun(x))/h; der2=(fun(x)-fun(xminus))/h; exa=cos(x); printf(" h x 2p+ 2p- 3p exact\n"); printf("%10.6lf %6.3lf %10.6lf %10.6lf %10.6lf %10.6lf\n",h,x,der1,der2,der,exa); return 0; } double fun(double g) { double p=0.; p=sin(g); return p; }

46 h x 2p+ 2p- 3p exact float double

47 Referenze bibliografiche Brian W. Kernighan, Dennis M. Ritchie, Linguaggio C, Gruppo Editoriale Jackson Kenneth A. Barclay, C problem solving and programming, Prentice Hall International Ltd. Steven E. Koonin Professor of Theoretical Physics, Computational physics, The Benjamin Cummings Publishing Company, Inc.

48 William H. Press Harvard-Smithsonian Center for Astrophysics, Brian P. Flannery Exxson Research and Engineering Company, Saul A. Teukolosky Department of Physics, Cornell University and William T. Vetterling Polaroid Corporation Numerical recipes in C, Cambridge University Press

49 #gnuplot gnuplot> p fig.dat u 1:2 w p,zero.dat u 1:2 w l zero.dat

50 Derive Mathcad...

51 /* Paolo Lotti bisez.c */ # include # define tol double fun(double x); int main(void) { double x,dx,fold,y; int iter; printf(" Enter x,dx:\n"); scanf("%lf,%lf",&x,&dx); fold=fun(x); iter=1; printf(" iter=%2d x=%10.8f y=%10.8f\n",iter,x,fold);

52 a: x=x+dx; y=fun(x); iter=iter+1; printf(" iter=%2d x=%10.8f y=%10.8f\n",iter,x,y); if(y*fold<0.) { x=x-dx; dx=dx/2.; } if(dx>tol) goto a; return 0; } double fun(double g) { double p; p=8.*g*g*g+28.*g*g-154.*g+79.; return p; }

53 #gcc -o bisez bisez.c #./bisez Enter x: 2.5 Enter x: iter= 1 x= y= iter= 2 x= y= iter= 3 x= y= iter= 4 x= y= iter= 5 x= y= iter= 6 x= y= iter= 7 x= y= iter= 8 x= y= iter= 9 x= y= iter=10 x= y=

54 iter=11 x= y= iter=12 x= y= iter=13 x= y= iter=14 x= y= iter=15 x= y= iter=16 x= y= iter=17 x= y= iter=18 x= y= iter=19 x= y= iter=20 x= y= iter=21 x= y= iter=22 x= y= iter=23 x= y= iter=24 x= y= iter=25 x= y= iter=26 x= y=

55 Si può procedere in un altro modo sfruttando la possibilità di ri-direzionare loutput (input) del sistema operativo Unix: #./bisez bisez.out dove il file bisez.in è un file di una sola linea che contiene linput del programma zero: 2.5, 0.1 loutput del programma viene scritto nel file bisez.out che può essere successivamente stampato od utilizzato per altri scopi.

56 Metodo di Newton--Raphson Dalla definizione di derivata prima Si ottiene: Supponendo che sia uno zero della funzione f(x)

57 /* Paolo Lotti newton.c */ # include # define tol double fun(double z); double fun1(double z1); int main(void) { double x,x1,diff; int iter; printf(" Enter x:\n"); scanf("%lf",&x); iter=1; a: x1=x-fun(x)/fun1(x); diff=fabs(x-x1); printf(" iter=%2d x=%10.8lf x1=%10.8lf dx=%10.8lf\n", iter,x,x1,diff);

58 iter=iter+1; x=x1; if(diff>tol) goto a; return 0; } double fun(double g) { double p; p=g*g-5.; return p; } double fun1(double g) { double p; p=2.*g; return p; }

59 Metodo della secante Se non si sa come calcolare analiticamente la derivata prima della funzione f(x), si può utilizzare il metodo della secante che calcola numericamente il valore della derivata prima di f: da cui:

60 /* Paolo Lotti secante.c */ # include # define tol double fun(double z); double fun1(double z,double z1); int main(void) { double x,x1,x2,diff; int iter; printf(" Enter x,x1:\n"); scanf("%lf,%lf",&x,&x1); iter=1; a: x2=x-fun(x)/fun1(x,x1); diff=fabs(x-x2); printf(" iter=%2d x=%10.8lf x1=%10.8lf dx=%10.8lf\n", iter,x,x2,diff);

61 iter=iter+1; x=x1; x1=x2; if(diff>tol) goto a; return 0; } double fun(double g) { double p; p=g*g-5.; return p; } double fun1(double g,double h) { double p; p=(fun(g)-fun(h))/(g-h); return p; }

62 Newton-Raphson Enter x: 1. iter= 1 x= x1= dx= iter= 2 x= x1= dx= iter= 3 x= x1= dx= iter= 4 x= x1= dx= iter= 5 x= x1= dx= Secante Enter x,x1: 1.,1.3 iter= 1 x= x1= dx= iter= 2 x= x1= dx= iter= 3 x= x1= dx= iter= 4 x= x1= dx= iter= 5 x= x1= dx= iter= 6 x= x1= dx= iter= 7 x= x1= dx=

63 Bisezione Enter x: 1. iter= 1 x= y= iter= 2 x= y= iter= 3 x= y= iter= 4 x= y= iter= 5 x= y= iter= 6 x= y= iter= 7 x= y= iter= 8 x= y= iter= 9 x= y= iter=10 x= y= iter=11 x= y= iter=12 x= y= iter=13 x= y= iter=14 x= y= iter=15 x= y= iter=16 x= y= iter=17 x= y=

64 iter=18 x= y= iter=19 x= y= iter=20 x= y= iter=21 x= y= iter=22 x= y= iter=23 x= y= iter=24 x= y= iter=25 x= y= iter=26 x= y= iter=27 x= y= iter=28 x= y= iter=29 x= y= iter=30 x= y= iter=31 x= y= iter=32 x= y= iter=33 x= y= iter=34 x= y= iter=35 x= y= iter=36 x= y= iter=37 x= y= iter=38 x= y=

65 Calcolo di un integrale definito - quadratura In particolare sarà sufficiente sapere come calcolare approssimando la funzionemediante unespressione che possa essere integrata esattamente in questo intervallo. Introducendo un numero pari di intervalli nellintervallo di integrazione [a,b] di larghezza h, lintegrale può essere riscritto nella forma seguente:

66 Definiamo, per alleggerire il formalismo,

67 Il caso più semplice, regola dei trapezi, è quello di approssimare linearmente la funzione considerata nellintervallo -h,0 e 0,+h: rispettivamente. Conseguentemente:

68 Unapprossimazione migliore si ottiene considerando lespanzione in serie di Taylor allordine successivo: da cui: Osserviamo che la precisione di questa espressione è migliore di quanto atteso dal momento che il termine successivo a quello considerato nello sviluppo in serie di Taylor non contribuisce al calcolo dellintegrale.

69 Utilizzando queste espressioni si ottengono rispettivamente le espressioni complete per la regola dei trapezi e quella di Simpson: e

70 # include main() { int i,num[5]; for(i=1; i<=5; i=i++) num[i]=i*i; for(i=0; i<=5; i=i++) printf(" num[%2d]=%3d\n",i,num[i]); } num[ 0]= num[ 1]= 1 num[ 2]= 4 num[ 3]= 9 num[ 4]= 16 num[ 5]= 25 Array (vettore)

71 /* Paolo Lotti trape.c */ # include double fun(double z); int main(void) { double a,b,x,dx,integ,exa; int N,N1,i,coef[1000],rest; printf(" Enter a,b:\n"); scanf("%lf,%lf",&a,&b); exa=fun(b)-fun(a);

72 a: printf(" Enter N:\n"); scanf("%d",&N); rest=N%2; if(rest!=0) { printf("N must be an even number!\n"); goto a; } dx=(b-a)/N; printf("h=%lf\n\n",dx); N1=N+1; coef[1]=1; coef[N1]=coef[1]; for(i=2; i<=N; i=i+1) { coef[i]=2; }

73 integ=0.; for(i=1; i<=N1; i=i+1) { printf(" coef[%2d]=%1d\n",i,coef[i]); x=a+(i-1)*dx; integ=integ+coef[i]*fun(x); } integ=integ*dx/2.; printf("\n integ= %lf exact= %lf\n",integ,exa); return 0; } double fun(double g) { double p; p=exp(g); return p; }

74 /* Paolo Lotti simp.c */ # include double fun(double z); int main(void) { double a,b,x,dx,integ,exa; int N,N1,i,ifac,coef[1000],rest; printf(" Enter a,b:\n"); scanf("%lf,%lf",&a,&b); exa=fun(b)-fun(a);

75 a: printf(" Enter N:\n"); scanf("%d",&N); rest=N%2; if(rest!=0) { printf("N must be an even number!\n"); goto a; } dx=(b-a)/N; printf("h=%lf\n",dx); N1=N+1; coef[1]=1; coef[N1]=coef[1];

76 ifac=2; for(i=2; i<=N; i=i+1) { ifac=6-ifac; coef[i]=ifac; } integ=0.; for(i=1; i<=N1; i=i+1) { printf(" coef[%2d]=%1d\n",i,coef[i]); x=a+(i-1)*dx; integ=integ+coef[i]*fun(x); } integ=integ*dx/3.; printf("\n integ= %lf exact= %lf\n",integ,exa); return 0; }

77 double fun(double g) { double p; p=exp(g); return p; }

78 N h trape simpson

79 N h trape simpson

80 Funzioni il cui argomento è di tipo double e restituiscono un numero anchesso di tipo double: acos(x) funzione trigonometrica inversa del coseno di x; il risultato è espresso in radianti ed è compreso tra 0 e asin(x) funzione trigonometrica inversa del seno di x; il risultato è espresso in radianti ed è compreso tra atan(x) funzione trigonometrica inversa della tangente di x; il risultato è espresso in radianti ed è compreso tra cos(x) funzione trigonometrica che calcola il coseno di x, espresso in radianti cosh(x) coseno iperbolico di x,,

81 exp(x) funzione esponenziale di x log(x) logaritmo naturale di x log10(x) logaritmo in base 10 di x sin(x) funzione trigonometrica che calcola il seno di x espresso in radianti sinh(x) seno iperbolico di x sqrt(x) funzione radice quadrata di x tan(x) funzione trigonometrica che calcola la tangente di x espresso in radianti tanh(x) tangente iperbolica di x


Scaricare ppt "Introduzione allUso dei Calcolatori (1) Uso dei Calcolatori in Fisica (3) Prof. Paolo Lotti Dr. Paolo Lotti Istituto Nazionale di Fisica Nucleare (INFN)"

Presentazioni simili


Annunci Google