• Non ci sono risultati.

Introduzione al Calcolo Scientifico Corso di Calcolo Numerico, a.a. 2010/2011 Francesca Mazzia

N/A
N/A
Protected

Academic year: 2021

Condividi "Introduzione al Calcolo Scientifico Corso di Calcolo Numerico, a.a. 2010/2011 Francesca Mazzia"

Copied!
19
0
0

Testo completo

(1)

Introduzione al Calcolo Scientifico

Corso di Calcolo Numerico, a.a. 2010/2011

Francesca Mazzia

Dipartimento di Matematica

Universit` a di Bari

(2)

Calcolo Scientifico

Insieme degli strumenti, delle tecniche e delle teorie necessarie per risolvere con il computer problemi della scienza e della tecnica.

nasce negli anni ’40 (modellizzazione di problemi balistici e di armi nucleari nella Seconda Guerra Mondiale);

si sviluppa negli anni ’70 e ’80 (problemi dell’industria, es.

progettazione di aerei);

si consolida negli anni ’90 (problemi di Informatica, Fisica, Chimica,

Ingegneria, Economia, ...).

(3)

CALCOLO NUMERICO

Risoluzione di problemi matematici al calcolatore.

Richiede:

una conoscenza dello strumento computazionale da usare.

una conoscenza del problema da risolvere

la costruzione di un algoritmo che risolva il problema con una

accuratezza desiderata ed entro i limiti delle risorse (tempo, memoria,

...) disponibili.

(4)

Ambiente computazionale

hardware: PC o supercomputer (computer vettoriali, computer paralleli);

sistemi operativi e linguaggi:

UNIX, LINUX, WINDOWS, ...

C, C++, Java, Fortran95, ...

data management: costruzione di database contenenti tutte le informazioni rilevanti per un particolare progetto applicativo;

visualizzazione: rappresentazione grafica finalizzata ad una veloce

comprensione del calcolo;

(5)

Esempi di Applicazioni Informatiche

Grafica

Elaborazione di segnali ed immagini Motori di ricerca

Data mining

Machine learning

(6)

Linguaggi per il Calcolo Scientifico

Il linguaggio di programmazione per la comunit` a scientifica `e stato per molti anni il Fortran (introdotto negli anni ’50). Ora anche altri linguaggi, specialmente il C e il C++ e Java, sono usati per il Calcolo Scientifico.

la disponibilit` a di un linguaggio che pu`o essere usato su una molteplicit` a di

macchine determina la portabilit` a del software da macchina a macchina

con pochissimi cambiamenti nelle performance del codice.

(7)

Problem Solving Environments

Un PSE `e un ambiente di alto livello che contiene tutto il software necessario per risolvere una determinata classe di problemi, fra cui

metodi avanzati per la soluzione;

selezione automatica o semiautomatica dei metodi di soluzione;

modi per incorporare facilmente nuovi metodi di soluzione.

Gli utenti possono usarlo senza avere una conoscenza specialistica del

computer.

(8)

PSE per il calcolo numerico

Matlab;

Scilab;

Octave;

R;

Python;

(9)

MATLAB

MATLAB (MATrix LABoratory) : PSE per il calcolo scientifico ad alte prestazioni e la visualizzazione, integra analisi numerica, calcolo con matrici, grafica. ` E usato in una variet` a di applicazioni e rappresenta un potente strumento di calcolo, visualizzazione e programmazione:

elaborazione di immagini e segnali;

progettazione di sistemi di controllo;

ingegneria finanziaria;

ricerca in medicina;

http://www.mathworks.com/

(10)

SCILAB

E un ambiente di calcolo scientifico simile al Matlab, sviluppato dallo ` Scilab group ( INRIA-Rocquencourt Metalau Project, Cergrene ENPC).

Scilab `e un software free scaricabile dal sito:

http://www.scilab.org/

Scilab `e disponibile per la maggior parte delle piattaforme Unix, per PC

con Linux e Windows.

(11)

OCTAVE

GNU OCTAVE `e un ambiente di calcolo scientifico simile al Matlab, sviluppato da John W. Eaton e molti altri.

OCTAVE `e un software free scaricabile dal sito http://www.octave.org/

Octave `e disponibile per la maggior parte delle piattaforme Unix, per PC

con Linux e Windows.

(12)

R

R (R development Core Team, 2007) `e una versione open-source del linguaggio S.

E pi` ` u conosciuto come un linguaggio per analisi statistica dei dati. Di recente si sta evolvendo come software per il calcolo scientifico.

R `e un software free scaricabile dal sito http://www.r-project.org

R `e disponibile per la maggior parte delle piattaforme Unix, per PC con

Linux e Windows.

(13)

Python

Python `e un linguaggio di programmazione ad alto livello orientato agli ogegtti, che utilizzato insieme a un IDE pu`o essere considerato come un PSE. L’implementazione di Python `e stata iniziata nel 1989 da Guido van Rossum del CWI (Netherlands) e il linugaggio e in continua evoluzione.

L’ultima release la 3.2 (febbraio 2011), ma le vesrioni 2.x continuano ad essere utilizzati perch`e le versioni 3.x non sono compatibile con le precedenti versioni.

Il linguaggio pu`o essere utilizzato per sviluppare applicazioni distribuite, scripting, e per il calcolo scientifico. Python pu`o essere paragonato a Tcl, Perl, Java, JavaScript e Visual Basic.

Python `e un software free scaricabile dal sito http://www.python.org/

ed `e disponibile per la maggior parte delle piattaforme, Unix, per PC con

(14)

Scopo del corso

Costruire un algoritmo efficiente per il calcolo scientifico pu`o essere una sfida complessa e difficile.

Lo scopo di questo corso `e farvi conoscere metodi e strumenti di analisi di base da poter utilizzare per risolvere problemi pi` u complessi che potreste incontrare in futuro.

Molti degli algoritmi che faremo sono gi` a implementati nei PSE.

Il loro studio ci fornisce le basi per risolvere problemi pi` u complessi che non

sono stati ancora risolti.

(15)

Sorgenti di errori

Problema reale → Modello Matematico semplificazione del modello:

si suppongono trascurabili alcune grandezze fisiche Modello Matematico → Metodo Numerico

approssimazione nel metodo risolutivo (es. un procedimento infinito approssimato mediante un procedimento finito: errore di

troncamento);

Metodo Numerico → programma

errori di arrotondamento: i dati numerici elaborati e i risultati delle

operazioni eseguite vengono arrotondati (si opera con aritmetica

finita, errore di round-off)

(16)

Il processo di risoluzione numerica

sviluppo di metodi numerici che tengano conto:

della natura del problema;

delle risorse hardware e software;

sviluppo di un algoritmo o un set di istruzioni che descrivono come risolvere un problema con un calcolatore;

esame dei diversi aspetti che riguardano la scrittura, la comprensione e la valutazione di algoritmi ed implementazione in un determinato ambiente di calcolo;

formulazione di problemi test;

fase di testing e misura dell’efficienza.

(17)

Efficienza

ottimizzazione della complessit` a di tempo e di spazio

studio accurato dell’algoritmo e della fase di implementazione attraverso:

la ricerca di tecniche che consentono l’effettiva minimizzazione dei calcoli

una corretta pianificazione delle aree di memoria da utilizzare

(18)

Alcuni criteri per un buon codice

affidabilit` a robustezza portabilit` a leggibilit` a

buona documentazione

ampia fase di testing

(19)

Libri di testo

F. Mazzia, D. Trigiante, Laboratorio di Programmazione e Calcolo, Pitagora Editrice, Bologna, 1992.

P. Amodio, D. Trigiante, Elementi di Calcolo Numerico, Pitagora Editrice, Bologna, 1993.

James F. Epperson, Introduzione all’analisi numerica, teoria, metodi, algoritmi. McGraw-Hill, Milano, 2003

Uri. M. Asher and Chen Grief, A first course on Numerical Methods.

Riferimenti

Documenti correlati

Se i valori assegnati sono affetti da errori, come in genere capita se tali valori sono ottenuti da osservazioni sperimentali, allora non ha pi` u molto senso “costringere” il

Octave `e disponibile per la maggior parte delle piattaforme Unix, per PC con Linux e Windows... Di recente si sta evolvendo come software per il

Se un algoritmo stabile `e applicato ad un problema ben condizionato, allora la soluzione y + δy `e vicina alla soluzione esatta y , cio`e l’errore relativo:.

costituisce un insieme di regole definito dall’istituto degli ingegneri elettrici e elettronici per la rappresentazione e l’elaborazione dei numeri floating point nei

Risolviamo il problema precedente suddividendo l’intervallo [0, 12] in N sottointervalli di ampiezza uguale. Se N `e il numero di sottointervalli, il costo del metodo di Simpson `e 2N

Questo `e chiamato underflow graduale (l’underflow `e la situazione in cui il risultato di una operazione `e diversa da zero ma `e pi` u vicina a zero di qualsiasi numero

I due tipi di numeri rappresentati sono interi (fixed point) e reali (floating point). Un numero reale ha tipo float in c e real in Fortran

Data una matrice A, si dice rango della ma- trice, e si indica con rank(A), il rango dell’in- sieme dei suoi vettori colonna.... Norma matriciale indotta da una norma