Re: 1-dim Schroedinger equation solver
[marcofuics:]
> matlab (non so di preciso) ma è abbastanza "meta-linguaggio" , nel
> senso che trovi già parecchie funzionalità ad alto livello, niente di
> più facile che le 8 righe sono del tipo
>
>
> useDifferentialEquation
> setPotential
> findSolution
>
> o roba simile su autovalori e/o autostati
Piu' o meno. Usava una funzione eig() che suppongo trovasse
gli autovalori di una matrice. A questo punto tanto vale
riportare quelle famose otto righe:
1 N = 50; s = 1;
2 n = 1:N - 1;
3 m = sqrt(n);
4 x = s/sqrt(2) * (diag(m,-1) + diag(m,1));
5 p = i/s/sqrt(2) * (diag(m,-1) - diag(m,1));
6 H = p^2/2 + x^2/2;
7 EigSort = sort(eig(H));
8 EigSort(1:8)
che a quanto ho capito troverebbero gli autovalori (e con una
piccola modifica gli autovettori, anche se non espressi nella
base x) per stati legati con V(x)=x^2/2. La convergenza al
crescere di N dovrebbe essere rapida, dicono, almeno per il
potenziale dell'esempio.
Ho solo due problemi con questo sorgente: al momento non ho
una funzione eig() in C e non ho capito un tubo del
trucchetto con le matrici quasi diagonali x e p, per quanto
fosse "spiegato" nell'articolo.
> nel senso che tutto il lavoro sporco viene delegato a delle
> sub-routines a te nascoste e di cui tu non ti preoccupi affatto. Se tu
> vuoi rifare in C, guarda che non stai rifacendoti le 8 righe :)) ma
> bensi' le altre 7992 che ci stanno sotto :))
E` che se gia` mi sembra strano che nessuno abbia scritto
programmini del genere in C, mi parrebbe ancora piu' strano
che non ci fossero in giro librerie C di algebra lineare.
Queste pero` non le ho ancora cercate; forse invece mi
converrebbe cominciare proprio da quelle.
>>> E perchè Java e/o fortran non vanno bene?
>>
>> Sono un programmatore, non un fisico. Lavoro in C,
>> assembler di vari processori (si', si usa ancora) e
>> C++ da 25 anni (nel campo del real time).
>
> ho capito chi sei :)) magari scrivi con vim o al massimo nedit su
> c-shell (1000 a 1 che non hai mai usato eclipse c++)
Quasi. KWrite per programmare, joe sui sistemi target; vi,
emacs e compagnia, no grazie. Che ci vogliamo fare, ero
abituato a Cygnus-Ed su Amiga e per vari aspetti ancora lo
rimpiango. Valutare la c-shell e` tra le cose che vorrei fare
(sul lavoro) avendo tempo; bash e' insopportabile per gli
script. Mai usato eclipse.
Nel complesso hai ottenuto un buon punteggio. :-)
> cas sono del tipo
>
>
> scrivi l'espressione formale di un potenziale da inserire in sch.er e
> la sol.ne ti vien data come sviluppo su autofunzioni.... ad esempio ti
> dice i polinomi di legendre o hermite che sono risolutivi,
> identificandoli con i numeri. e queste vanno bene per un certo uso
No, non pretendo tanto. In effetti non ci avevo nemmeno
pensato.
> numeriche invece ti servono per fare previsioni si esperimenti.
Ecco, numeriche mi andrebbero piu' che bene.
> purtroppo questa è la minestra... ti tocca
> :)
Non mi sono ancora rassegnato...
Ciao
Paolo Russo
Received on Fri Jan 24 2014 - 20:23:06 CET
This archive was generated by hypermail 2.3.0
: Wed Feb 05 2025 - 04:23:16 CET