- pippec blogja
- A hozzászóláshoz be kell jelentkezni
- 1095 megtekintés
Hozzászólások
Véletlen generálás?
Matlab/octave kód:
N = 12;
A = rand(N);
while det(A)==0
A = rand(N);
end
B = rand(N,1);
X = inv(A)*B;
csvwrite('A.csv',A)
csvwrite('B.csv',B)
csvwrite('X.csv',X)
- A hozzászóláshoz be kell jelentkezni
Köszönöm szépen.
Éreztem, h sántít vmi. Pancser kérdés volt, bocsi.
________________________________________________
Attól, hogy más hülye, te még lehetnél normális.
- A hozzászóláshoz be kell jelentkezni
Az a baj, hogy nagyon nem valos a pelda, a valodi sokismeretlenes egyenletrendszerekben az A matrix nagyon sparse.
- A hozzászóláshoz be kell jelentkezni
d = 0.1;
sprand(N,N,d);
Ekkor már tényleg fog dolgozni az a while ciklus.
Tényleg nem ez az ideális módja.
- A hozzászóláshoz be kell jelentkezni
Esetleg (viszonylag egyszerűen tanulható dologról van szó) véges differenciák módszerének nézz utána, ott születnek ilyen egyenletrendszerek.
- A hozzászóláshoz be kell jelentkezni
Milyen módszerekkel? Pl. mátrixinvertáló függvényt írsz? (Subscribe.)
--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc
- A hozzászóláshoz be kell jelentkezni
Pl Gauss-Siedel módszer, stb. Nem invertálok mátrixokat, az idő, az a lényeg, h minél gyorsabban meglegyen az eredmény.
________________________________________________
Attól, hogy más hülye, te még lehetnél normális.
- A hozzászóláshoz be kell jelentkezni
Megnéztem a Gauss-Siedelt, de nekem úgy tűnik, hogy ott is kell invertálni. Az pedig tényleg időigényes. Vagy valahogy elkerülöd?
--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc
- A hozzászóláshoz be kell jelentkezni
a G-S iteraciohoz nem kell inverz
- A hozzászóláshoz be kell jelentkezni
Igaz, az A mátrix dekompozíciója során keletkező alsó háromszögmátrixnak kell az inverze, ha kézzel számol az ember. Az algoritmusban tényleg nincs inverz.
--
Debian - The "What?!" starts not!
http://nyizsa.uni.cc
- A hozzászóláshoz be kell jelentkezni
A Gauss-Seidel gyorsabb, mint a Cholesky? Kell majd nemsokara egy gyors, nagymeretu matrixokra valo egyenletmegoldo. Az inverz opcionalis, egyelore nem kell. Az volna a jo, ha a meg tudna oldani 10ezer x 10ezres egyenleteket veges idon belul, es ilyenkor mar szamit hogy O(nlogn) vagy O(n^2) a sebesseg.
Lattam par GPU implementaciot (pl a Magma), probalta mar valaki?
- A hozzászóláshoz be kell jelentkezni
10k x 10kt szinte barmi megold, foleg GPUn.
- A hozzászóláshoz be kell jelentkezni