domenica 22 marzo 2009

Esercizio: integrale numerico (3 dimensioni)

Al link integrale sfera 1 propongo il calcolo della massa di un oggetto sferico, la cui densità è una funzione della distanza dal centro. L'integrale non può venir calcolato in modo analitico, ed è allegato il programma che calcola l'integrale alle differenze finite. La tecnica usata è "deterministica" (un succcessivo esempio chiarirà il senso di questa parola). Nota: il programma è teoricamente in c++, ma mi sono limitato ad usare elementi di programmazione c.

6 commenti:

  1. non ho capito il tipo di verifica che si deve fare(Nota1).
    cosa significa integrare f=1?devo porre r=0?

    RispondiElimina
  2. No, r varia ma f(r) viene scelta come costante. La funzione da integrare è una f(r) generica. Un caso molto particolare è f(r) = costante. E ancora più particolare f(r) = 1. Se f(r) = 1 in tutto il volume, massa e volume sono uguali. Quindi integrando questa densità devo ottenere il volume della regione di integrazione. Perchè perdo tempo in questo mulino invece di andare dritto al sodo e calcolare l'integrale con f(r) = la funzione giusta? Perchè quando devo eseguire un calcolo numerico di cui non conosco a priori il risultato, evito SEMPRE di andare dritto al sodo. Sarebbe un suicidio (prova a valutare quanti mezzi hai per verificare di aver fatto le cose bene). Qui la fortuna è che esiste un programma molto simile a quello finale, e che calcola un risultato prevedibile a priori. Quindi prima preparo quel programma, e poi sostituisco f(r) con la forma opportuna. AB

    RispondiElimina
  3. si ma così calcolo il volume del cubo di lato e non la sfera...cioè l'integrale di f=1 è r^3,no?

    RispondiElimina
  4. Facciamo ordine:
    1) calcolo 1 su un cubo.
    2) calcolo 1 su una sfera
    3) calcolo f su una sfera.
    Nel mio triplo ciclo for è presente un "if" che azzera f (si tratti della f giusta o di 1) se r > 1.
    AB

    RispondiElimina
  5. ok, io ho capito il programma, ma come faccio a tradurlo nella nota1 ??
    l'integrale di f=1 in dV è logico che venga V, ma poi?

    RispondiElimina
  6. Non capisco bene la domanda. comuque quello che ho fatto io nel programma finale è:
    Sommo su tutti i micro-cubetti in un macro-cubo che include la sfera (ciclo for triplo).
    Nel calcolo di f(x,y,z) impongo la condizione che fuori dalla sfera la funzione è zero (condizione if...). Dentro, la funzione è quello che deve essere. AB

    RispondiElimina