Temel olarak matris için özdeğerleri bulmaya çalışıyorum ve yaklaşık 12 saat sürüyor. Tamamlandığında, tüm özvektörleri (aslında hiçbir şekilde) bulamadığını ve bulduğu şeylere kuşkuyla yaklaştığımı söylüyor. Tek yapabildiğim kodumu postalamaktır, ve birisinin bana bazı önerilerde bulunabileceğini umuyorum. Mathematica ile çok deneyimli değilim ve belki de yavaş çalışma süresi ve kötü sonuçların matematiksel yetenekleri ile değil benimle bir ilgisi var. Cevap veren herkese teşekkürler.mathematica kullanarak hesaplama özdeğerleri ile sorun
cutoff = 500; (* set a cutoff for the infinite series *)
numStates = cutoff + 1; (* set the number of excited states to be printed *)
If[numStates > 10, numStates = 10];
$RecursionLimit = cutoff + 256; (* Increase the recursion limit to allow for the specified cutoff *)
(* set the mass of the constituent quarks *)
m1 := mS; (* just supposed to be a constant *)
m2 := 0;
(* construct the hamiltonian *)
h0[n_,m_] := 4 Min[n,m] * ((-1)^(n+m) * m1^2 + m2^2);
v[0,m_] := 0;
v[n_,0] := 0;
v[n_,1] := (8/n) * ((1 + (-1)^(n + 1))/2);
v[n_,m_] := v[n - 1, m - 1] * (m/(m - 1)) + (8 m/(n + m - 1))*((1 + (-1)^(n + m))/2);
h[n_,m_] := h0[n,m] + v[n,m];
(* construct the matrix from the hamiltonian *)
mat = Table[h[n,m], {n, 0, cutoff}, {m, 0, cutoff}] // FullSimplify;
(* find the eigenvalues and eigenvectors, then reverse the order *)
PrintTemporary["Finding the eigenvalues"];
{vals, vecs} = Eigensystem[N[mat]] // FullSimplify;
$RecursionLimit = 256; (* Put the recursion limit back to the default *)
Kodumdan biraz daha fazlası var, ancak bu gerçekten yavaşlama noktasıdır. Kesinlikle bahsetmem gereken bir şey var ki, eğer m1 ve m2'yi sıfır olarak ayarladığımda, gerçekten herhangi bir sorunum yok, ama m1'i sabit olarak ayarlamak herşeyi cehenneme çevirir.
muhtemelen zaman önemli öbek (Timo önerildiği gibi hatta memoization) matris yukarı bina harcanmaktadır belirtmekte fayda olduğunu.“RSolve”, “v” tanımlamanız için açık bir form verir, ancak belirsiz işlevi (başlangıç koşullarınız aracılığıyla) düzeltmek, şube kesintileri vb. Ile karmaşık olabilir. Her halükarda, bunu daha fazla ölçeklendirirseniz, bu bir şey olabilir. bakmak. – acl