La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica per Scienze Geologiche LT a.a

Presentazioni simili


Presentazione sul tema: "Informatica per Scienze Geologiche LT a.a"— Transcript della presentazione:

1 Informatica per Scienze Geologiche LT a.a.2017-2018
Introduzione all’utilizzo di metodologie informatiche nella Geologia Docente: Prof. Carla Braitenberg, Dipartimento Matematica e Geoscienze, Via Weiss 1, Università di Trieste Tel

2

3

4

5 Esempio da prima: x=0:1:40; y=10*exp(-abs(x)); figure subplot(2,1,1)
plot(x,y) subplot(2,1,2) semilogy(x,y,'k')

6

7 Formulazione matematica della funzione sinusoidale
Le applicazioni delle funzioni di seno e coseno sono ampie- ragione per la quale le analizziamo in dettaglio. Scriviamo la formula matematica di un’onda sinusoidale in 3D. I fronti d’onda sono lineari ed hanno un orientamento ben definito rispetto all’asse x. La direzione del fronte d’onda viene espresso dal vettore d’onda. Implementiamo poi tale equazione in uno script matlab.

8 Definizione della direzione del numero d'onda
La direzione del vettore del numero d'onda è ortogonale ai fronti d'onda e viene definita dalle due componenti del vettore kx e ky. L'angolo del vettore con l'asse x e’ pari a: La lunghezza del vettore numero d’onda e’ pari al modulo del vettore. La lunghezza d’onda della sinusoide e’ pari a:

9 Definizione della due componenti del vettore numero d'onda
Da prima abbiamo definito la lunghezza del vettore n’umero d’onda: Le due componenti sono allora date dalla relazione:

10 Matlab: onda sinusoidale lineare (sinusoide.m)
function sinusoide(lam,A,alf) % grafico di fronte d'onda lineare % eliminazione variabili e librerie create in precedenza if nargin==0 sinusoide(25,10,30) else % creazione vettore x di valori compresi tra 0 e 70 uniformemente divisi su 100 valori. Per y intervallo da 0 a 90. x = linspace(0,70,100); y= linspace(0,90,100); % creazione matrice a 2 Dimensioni X e Y. [X,Y]= meshgrid(x,y); % numero d'onda k=(2*pi)/lam; alf1=alf*pi/180; kvec=k*[cos(alf1) sin(alf1)]; kx=kvec(1); ky=kvec(2); % calcolo dei valori asse z Z = A*(sin(kx*X+ky*Y)); % grafico tridimensionale dei risultati figure surf(X,Y,Z); % visualizzazione 3D (azimuth 37.5, elevation 30) view(3); % manteniamo il fattore di scala axis equal; % etichette sugli assi xlabel('X'); ylabel('Y'); zlabel('Z'); end Valori tipo: lam=25; A=10 alf=30

11 Matlab: somma tra due funzioni
function sovrapposizione(lam,A,alf,a,b,c,d) % grafico di fronte d'onda lineare if nargin==0 sovrapposizione(15,3,45,0.08,0.02,0,0.003) else % creazione vettore x di valori compresi % tra 0 e 70 uniformemente divisi su 100 % valori. Per y intervallo da 0 a 90. x = linspace(0,70,100); y= linspace(0,90,100); % creazione matrice a 2 Dimensioni X e Y. [X,Y]= meshgrid(x,y); % numero d'onda k=(2*pi)/lam; alf1=alf*pi/180; kvec=k*[cos(alf1) sin(alf1)]; kx=kvec(1); ky=kvec(2); % calcolo dei valori asse z per fronte d'onda Z1 = A*(sin(kx*X+ky*Y)); % calcolo dei valori asse z per polinomiale Z2 = (a*X+b*Y+c*X.^3+d*Y.^2); % sommo fronte d'onda + polinomiale Z=Z1+Z2; % grafico tridimensionale dei risultati figure surf(X,Y,Z); % visualizzazione 3D % (azimuth 37.5, elevation 30) view(3); % manteniamo il fattore di scala axis equal; % etichette sugli assi xlabel('X'); ylabel('Y'); zlabel('Z'); end

12 Esempio oscillazione

13 Onda sferica L'onda sferica rappresenta un'immagine istantanea delle onde che si sviluppano sulla superficie di un lago sollecitata dalla caduta di un masso. Descrizione matematica dell'onda sferica: Se l'origine dell'onda e' in x0,y0:

14 Matlab: onda sinusoidale lineare (sinusoide.m)
function sinusoide_radiale(lam,A,x0,y0) % grafico di fronte d'onda lineare % eliminazione variabili e librerie create in precedenza if nargin==0 sinusoide_radiale(25,10,50,50) else % creazione vettore x di valori compresi tra 0 e 70 uniformemente divisi su 100 valori. Per y intervallo da 0 a 90. x = linspace(0,100,100); y= linspace(0,100,100); % creazione matrice a 2 Dimensioni X e Y. [X,Y]= meshgrid(x,y); % numero d'onda k=(2*pi)/lam; % calcolo dei valori asse z Z = A*sin(k*sqrt((X-x0).^2+(Y-y0).^2)); % grafico tridimensionale dei risultati figure surf(X,Y,Z); % visualizzazione 3D (azimuth 37.5, elevation 30) view(3); % manteniamo il fattore di scala axis equal; % etichette sugli assi xlabel('X'); ylabel('Y'); zlabel('Z'); end Valori tipo: lam=25; A=10 X0=50 Y0=50

15 Esempio onda sferica

16

17

18 Onda sferica la cui ampiezza decade esponenzialmente
Vogliamo anche descrivere il caso in cui l'ampiezza dell'onda decade con il raggio esponenzialmente.

19 Matlab: onda sinusoidale radiale che decade
function sinusoide_radexp(lam,A,x0,y0,sigx,sigy) % grafico di onda radiale che decade % eliminazione variabili e librerie create in precedenza if nargin==0 sinusoide_radexp(25,10,50,50,20,40) else x = linspace(0,100,100); y= linspace(0,100,100); % creazione matrice a 2 Dimensioni X e Y. [X,Y]= meshgrid(x,y); % numero d'onda k=(2*pi)/lam; % calcolo Ampiezza onda Ar = A*exp(-((X-x0)/sigx).^2 -((Y-y0)/sigy).^2); % calcolo dei valori asse z Z = Ar.*sin(k*sqrt((X-x0).^2+(Y-y0).^2)); % grafico tridimensionale dei risultati figure surf(X,Y,Z); % visualizzazione 3D (azimuth 37.5, elevation 30) view(3); % manteniamo il fattore di scala axis equal; % etichette sugli assi xlabel('X'); ylabel('Y'); zlabel('Z'); end Valori tipo: lam=25; A=10 x0=50 y0=50 sigx=20 sigy=40

20 Onda sferica con decadimento anisotropo

21 Superficie polinomiale
Di larga applicazione e' l costruzione di una superficie costituita elementi polinomiali. Esempio: descrizione di un campo regionale di una quantita' misurata, come emissione Radon, flusso termico.

22 Esempio superficie polinomiale
Z = 2*X+3*Y+X.^3*.1+Y.^2 *1.5 Z = 0.2*X+0.3*Y+X.^3*0.01+Y.^2*0.05 Esercizio: Costruire la superficie polinomiale. Variare i parametri e descrivere il risultato. Costruire una superficie piana. Costruire una superficie di secondo ordine

23 Funzione polinomiale function Polinomiale(a,b,c,d)
% grafico di onda radiale che decade % eliminazione variabili e librerie create in precedenza if nargin==0 Polinomiale(0.2,0.3,0.01,0.05) else % creazione vettore x di valori compresi tra 0 e 70 uniformemente divisi su 100 valori. Per y intervallo da 0 a 90. x=linspace(-7,7,100); y=linspace(-9,9,100); % creazione matrice a 2 Dimensioni X e Y. [X,Y]= meshgrid(x,y); % calcolo dei valori asse z Z = a*X+b*Y+c*X.^3+d*Y.^2; % grafico tridimensionale dei risultati figure surf(X,Y,Z); shading flat % visualizzazione 3D (azimuth 37.5, elevation 30) view(3); % manteniamo il fattore di scala axis equal; % etichette sugli assi xlabel('X'); ylabel('Y'); zlabel('Z'); end

24

25 Graficare il gradiente di una superficie
v = -2:0.2:2; [x,y] = meshgrid(v); z = y.*x.*exp(-x.^2 - y.^2); % da provare anche: % z = x.*exp(-x.^2 - y.^2); % z = y.*x.*exp(-x.^2 - y.^2); [px,py] = gradient(z,.2,.2); contour(v,v,z) hold on quiver(v,v,px,py) hold off figure surf(x,y,z); % visualizzazione 3D (azimuth 37.5, elevation 30) view(3);

26 Gradiente della topografia
%Plot_DTM_isolinea Zmin=180; Zmax=500; step=2; v=Zmin:step:Zmax; sv=size(v); load DTM_ortom_reg_regrid10m_WGS84_LD.mat; figure('name',['esempio 2D isolinee Zmin: ' num2str(Zmin) ' Zmax: ' num2str(Zmax)]) %contour rappresenta in grafico le isolinee in 2D [C, h]=contour(X1,Y1,Z1,v); %axis([xmin xmax ymin ymax]) axis([ ]); figure [px,py] = gradient(Z1,1,1); contour(X1,Y1,Z1) hold on quiver(X1,Y1,px,py,5)

27

28 Ulteriori applicazioni
Creare un grafico di due onde sinusoidali di lunghezza d’onda diversa sovrapposte. La direzione delle due sia la medesima. Scegliere 1>> 2 Creare un grafico di una superficie polinomiale di secondo ordine che rappresenta l’andamento regionale, al quale viene sovrapposta una anomalia a forma gaussiana, che rappresenta un disturbo locale. La larghezza della Gaussiana e’ determinata dal coefficiente in denominatore dell’esponenziale. Simulare la presenza di tre mud-volcano; un mud-volcano viene rappresentato tramite una funzione gaussiana.

29 Esempio sovrapposizione
close all; clear variables; % parametri polinomiale a = 1e-1; b = 1e-1; c = 1e-6; d = 1e-6; % parametri sinusoide lam = 25; A = 10; x0 = 50; y0 = 50; sigx = 30; sigy = 35; % linspace x,y x=linspace(-50,150,600); y=linspace(-50,150,600); % creazione matrice a 2 Dimensioni X e Y. [X,Y]= meshgrid(x,y); % POLINOMIALE % calcolo dei valori asse z Z_pol = a*X+b*Y+c*X.^3+d*Y.^2; % SENO % numero d'onda k=(2*pi)/lam; % calcolo Ampiezza onda Ar_1 = A*exp(-((X-x0)/sigx).^ ((Y-y0)/sigy).^2); Z_sin_1 = Ar_1.*sin(k*sqrt((X-x0).^ (Y-y0).^2)); % calcolo somma Z = Z_pol + Z_sin_1; % grafico tridimensionale dei risultati figure surf(X,Y,Z); shading flat % visualizz. 3D (azimuth 37.5, elevation 30) view(3); % manteniamo il fattore di scala axis equal; % etichette sugli assi xlabel('X'); ylabel('Y'); zlabel('Z');


Scaricare ppt "Informatica per Scienze Geologiche LT a.a"

Presentazioni simili


Annunci Google