由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Quant版 - sparse linear Ax = b , 有什么好办法解 x ?
相关主题
help!(math, optimization)这个interview question 板上有人讨论过吗
excel 问题an interview question, find mode in a rolling window along data sequence
哪里有现成的Sparse regression的package可以下载(C++, MATLAB的)请假一下, quant 电面怎么考 线性代数?
Python & equity research models[合集] 问条题
问个比较菜的问题,如何转行进来比较可行American Put Option用PDE怎样求解?
感觉quant的技术比纯IT的落后一个时代发个general linear sde的解法
转行求建议!!问几个老题
请帮我看看我的basket option程序错在哪里了,我的结果22。19老师说是错的会解2nd order ODE的也进来
相关话题的讨论汇总
话题: matlab话题: ax话题: sparse话题: 50000话题: 内存
进入Quant版参与讨论
1 (共1页)
w**w
发帖数: 100
1
需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
size(A) = 50000, 50000
size(b) = 60000, 50000
matlab: x = b/A
用了 20 分钟,内存最多时居然用了 75G
python:
xx = scipy.sparse.linalg.splu(A)
xx_inv = xx.solve(np.eye(A.shape[0]))
x = b*xx_inv.T
同样用了很大内存,算了很久还没完,杀了。
有什么好的算法, 快 还少占内存?
多谢
n******i
发帖数: 118
2
Matlab 把A,B存成sparse matrix呢
n****e
发帖数: 2401
3
用lapack
M****e
发帖数: 3715
4
把b拆成列向量 每个单独用迭代
sparse矩阵的线性方程迭代算法wiki上有应该介绍一些吧

【在 w**w 的大作中提到】
: 需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
: size(A) = 50000, 50000
: size(b) = 60000, 50000
: matlab: x = b/A
: 用了 20 分钟,内存最多时居然用了 75G
: python:
: xx = scipy.sparse.linalg.splu(A)
: xx_inv = xx.solve(np.eye(A.shape[0]))
: x = b*xx_inv.T
: 同样用了很大内存,算了很久还没完,杀了。

h*******5
发帖数: 59
5
你听过iterative methods 么? 看看Matlab里的 pcg 函数。
BTW,你Matlab程序写错了,应该是x=A\b而不是 b/A. 你这样做用的是高斯消元法,比
较慢。
S****8
发帖数: 401
6
楼上正解,非要用matlab的先试试LU
然后找找matlab下的 iterative routine.
其实你这个并不算很大的运算,再大一些就得用fortran,c神马的并行算,可以去参考
SLEPC 这个
library, 用起来略麻烦, lapack里面有些东西已经老啦。
你这个size,我觉得用matlab足够,我经常用pc算这个量级的运算,解一次不需要一分
钟,当然,取决于稀松的程度和形状
d**0
发帖数: 124
7
precondioning on A

【在 w**w 的大作中提到】
: 需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
: size(A) = 50000, 50000
: size(b) = 60000, 50000
: matlab: x = b/A
: 用了 20 分钟,内存最多时居然用了 75G
: python:
: xx = scipy.sparse.linalg.splu(A)
: xx_inv = xx.solve(np.eye(A.shape[0]))
: x = b*xx_inv.T
: 同样用了很大内存,算了很久还没完,杀了。

H***a
发帖数: 735
8
matrix b 的 size 怎么会是60000 ?

【在 w**w 的大作中提到】
: 需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
: size(A) = 50000, 50000
: size(b) = 60000, 50000
: matlab: x = b/A
: 用了 20 分钟,内存最多时居然用了 75G
: python:
: xx = scipy.sparse.linalg.splu(A)
: xx_inv = xx.solve(np.eye(A.shape[0]))
: x = b*xx_inv.T
: 同样用了很大内存,算了很久还没完,杀了。

w**w
发帖数: 100
9
Ax = b 如果b 只是一列向量, 那一下就解出来了,还不占什么内存。
但不至于循环 50000 次吧, 这样虽然没有内存问题,但很慢。

【在 M****e 的大作中提到】
: 把b拆成列向量 每个单独用迭代
: sparse矩阵的线性方程迭代算法wiki上有应该介绍一些吧

w**w
发帖数: 100
10
如果 A 是对称 的呢?
对称 正定 呢 ?
谢谢

【在 d**0 的大作中提到】
: precondioning on A
相关主题
感觉quant的技术比纯IT的落后一个时代这个interview question 板上有人讨论过吗
转行求建议!!an interview question, find mode in a rolling window along data sequence
请帮我看看我的basket option程序错在哪里了,我的结果22。19老师说是错的请假一下, quant 电面怎么考 线性代数?
进入Quant版参与讨论
w**w
发帖数: 100
11
oh, 反了。

【在 H***a 的大作中提到】
: matrix b 的 size 怎么会是60000 ?
w**w
发帖数: 100
12
等我确定 A 是 不是 对称正定。。。 再试试这个。
多谢

【在 h*******5 的大作中提到】
: 你听过iterative methods 么? 看看Matlab里的 pcg 函数。
: BTW,你Matlab程序写错了,应该是x=A\b而不是 b/A. 你这样做用的是高斯消元法,比
: 较慢。

f*******a
发帖数: 663
13
Incomplete Cholesky Conjugate Gradients

【在 w**w 的大作中提到】
: 如果 A 是对称 的呢?
: 对称 正定 呢 ?
: 谢谢

e*******l
发帖数: 147
14
ICCG
s******i
发帖数: 132
15
这个size直接A\b就好吧?
s*d
发帖数: 309
16
sparse 的话用umfpack
f**x
发帖数: 4325
17
multigrid
w**w
发帖数: 100
18
需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
size(A) = 50000, 50000
size(b) = 60000, 50000
matlab: x = b/A
用了 20 分钟,内存最多时居然用了 75G
python:
xx = scipy.sparse.linalg.splu(A)
xx_inv = xx.solve(np.eye(A.shape[0]))
x = b*xx_inv.T
同样用了很大内存,算了很久还没完,杀了。
有什么好的算法, 快 还少占内存?
多谢
n******i
发帖数: 118
19
Matlab 把A,B存成sparse matrix呢
n****e
发帖数: 2401
20
用lapack
相关主题
[合集] 问条题问几个老题
American Put Option用PDE怎样求解?会解2nd order ODE的也进来
发个general linear sde的解法还是一个OU模型
进入Quant版参与讨论
M****e
发帖数: 3715
21
把b拆成列向量 每个单独用迭代
sparse矩阵的线性方程迭代算法wiki上有应该介绍一些吧

【在 w**w 的大作中提到】
: 需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
: size(A) = 50000, 50000
: size(b) = 60000, 50000
: matlab: x = b/A
: 用了 20 分钟,内存最多时居然用了 75G
: python:
: xx = scipy.sparse.linalg.splu(A)
: xx_inv = xx.solve(np.eye(A.shape[0]))
: x = b*xx_inv.T
: 同样用了很大内存,算了很久还没完,杀了。

h*******5
发帖数: 59
22
你听过iterative methods 么? 看看Matlab里的 pcg 函数。
BTW,你Matlab程序写错了,应该是x=A\b而不是 b/A. 你这样做用的是高斯消元法,比
较慢。
S****8
发帖数: 401
23
楼上正解,非要用matlab的先试试LU
然后找找matlab下的 iterative routine.
其实你这个并不算很大的运算,再大一些就得用fortran,c神马的并行算,可以去参考
SLEPC 这个
library, 用起来略麻烦, lapack里面有些东西已经老啦。
你这个size,我觉得用matlab足够,我经常用pc算这个量级的运算,解一次不需要一分
钟,当然,取决于稀松的程度和形状
d**0
发帖数: 124
24
precondioning on A

【在 w**w 的大作中提到】
: 需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
: size(A) = 50000, 50000
: size(b) = 60000, 50000
: matlab: x = b/A
: 用了 20 分钟,内存最多时居然用了 75G
: python:
: xx = scipy.sparse.linalg.splu(A)
: xx_inv = xx.solve(np.eye(A.shape[0]))
: x = b*xx_inv.T
: 同样用了很大内存,算了很久还没完,杀了。

H***a
发帖数: 735
25
matrix b 的 size 怎么会是60000 ?

【在 w**w 的大作中提到】
: 需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
: size(A) = 50000, 50000
: size(b) = 60000, 50000
: matlab: x = b/A
: 用了 20 分钟,内存最多时居然用了 75G
: python:
: xx = scipy.sparse.linalg.splu(A)
: xx_inv = xx.solve(np.eye(A.shape[0]))
: x = b*xx_inv.T
: 同样用了很大内存,算了很久还没完,杀了。

w**w
发帖数: 100
26
Ax = b 如果b 只是一列向量, 那一下就解出来了,还不占什么内存。
但不至于循环 50000 次吧, 这样虽然没有内存问题,但很慢。

【在 M****e 的大作中提到】
: 把b拆成列向量 每个单独用迭代
: sparse矩阵的线性方程迭代算法wiki上有应该介绍一些吧

w**w
发帖数: 100
27
如果 A 是对称 的呢?
对称 正定 呢 ?
谢谢

【在 d**0 的大作中提到】
: precondioning on A
w**w
发帖数: 100
28
oh, 反了。

【在 H***a 的大作中提到】
: matrix b 的 size 怎么会是60000 ?
w**w
发帖数: 100
29
等我确定 A 是 不是 对称正定。。。 再试试这个。
多谢

【在 h*******5 的大作中提到】
: 你听过iterative methods 么? 看看Matlab里的 pcg 函数。
: BTW,你Matlab程序写错了,应该是x=A\b而不是 b/A. 你这样做用的是高斯消元法,比
: 较慢。

f*******a
发帖数: 663
30
Incomplete Cholesky Conjugate Gradients

【在 w**w 的大作中提到】
: 如果 A 是对称 的呢?
: 对称 正定 呢 ?
: 谢谢

相关主题
Bloomberg Quantitative Researcher 电面excel 问题
如果你interview一个quant,你期望他C++知道哪些?哪里有现成的Sparse regression的package可以下载(C++, MATLAB的)
help!(math, optimization)Python & equity research models
进入Quant版参与讨论
e*******l
发帖数: 147
31
ICCG
s******i
发帖数: 132
32
这个size直接A\b就好吧?
s*d
发帖数: 309
33
sparse 的话用umfpack
f**x
发帖数: 4325
34
multigrid
a*******g
发帖数: 3500
35
Intel MKL - Pardiso
K******C
发帖数: 230
36
svd.

【在 w**w 的大作中提到】
: 需要解个方程 AX = b, A b 都是稀疏矩阵, 比较大。
: size(A) = 50000, 50000
: size(b) = 60000, 50000
: matlab: x = b/A
: 用了 20 分钟,内存最多时居然用了 75G
: python:
: xx = scipy.sparse.linalg.splu(A)
: xx_inv = xx.solve(np.eye(A.shape[0]))
: x = b*xx_inv.T
: 同样用了很大内存,算了很久还没完,杀了。

y********e
发帖数: 93
37
if it's positive-definite, matlab will solve it using Cholesky factorization
, which is fast. If not, it will use LU decomposition, which is slow.
If the performance is really an issue and you really want to optimize it,
try using parallel iterative solver implemented in CUDA. It will improve
your performance by a factor at a cost within $1k.
There are two or three existing CUDA linear solver package out there for
free. Try google it and compile them.
1 (共1页)
进入Quant版参与讨论
相关主题
会解2nd order ODE的也进来问个比较菜的问题,如何转行进来比较可行
还是一个OU模型感觉quant的技术比纯IT的落后一个时代
Bloomberg Quantitative Researcher 电面转行求建议!!
如果你interview一个quant,你期望他C++知道哪些?请帮我看看我的basket option程序错在哪里了,我的结果22。19老师说是错的
help!(math, optimization)这个interview question 板上有人讨论过吗
excel 问题an interview question, find mode in a rolling window along data sequence
哪里有现成的Sparse regression的package可以下载(C++, MATLAB的)请假一下, quant 电面怎么考 线性代数?
Python & equity research models[合集] 问条题
相关话题的讨论汇总
话题: matlab话题: ax话题: sparse话题: 50000话题: 内存