j*********5 发帖数: 362 | 1 个人感觉就是举两个例子,一个4×5的矩阵,一个5×3的矩阵,看看边界怎么变化之类
的。可能就心里有数了? |
|
c****a 发帖数: 50 | 2 题目问能否合并成一个矩阵,要求不能有gap,不能有overlap,请大牛指教! |
|
发帖数: 1 | 3 铺砖问题?
:题目问能否合并成一个矩阵,要求不能有gap,不能有overlap,请大牛指教! |
|
z******t 发帖数: 107 | 4 a11 a12 a13 a14
0 a22 a23 a24
0 0 a33 a34
0 0 0 a44
主对角线以下全都是零 这样的矩阵 |
|
G********d 发帖数: 10250 | 5 lol
都用补偿了 那还叫矩阵测光么
矩阵测光+补偿 远不如 点测/中央加权+补偿 容易直接 |
|
x*********s 发帖数: 5554 | 6 现在有一个30x30的矩阵A, 想用matlab简单求逆
rank(A)=30没问题,但是cond(A)=1.0058e+14,det(A)=-5.5468e-141
是一个病态矩阵,
matlab有没有简单的办法求的一个稳定的逆呀?
或者有什么简单的算法没有?
我数学基础太差,
仅有的几个包子求助,谢谢了 |
|
g**********t 发帖数: 475 | 7 谢谢博导。我现在的程序就是基于这篇文章写的。这篇文章里的提升是对单个大矩阵来
说的,而且在这篇CPU端用的是同样的算法(Jacobi method)。其实CPU端可以用更高效
的算法,这样GPU就没有太大优势了。我想问一下有没有适合我的矩阵大小的,可以在
GPU上高效实现的算法?比如QR algorithm? |
|
m**t 发帖数: 3911 | 8 ☆─────────────────────────────────────☆
kukutf (五脚蟹★酷酷豆腐) 于 (Sun Mar 16 22:23:35 2008) 提到:
发信人: kukutf (五脚蟹★酷酷豆腐), 信区: Programming
标 题: 这种矩阵问题是怎么解的?
发信站: BBS 未名空间站 (Sun Mar 16 22:16:39 2008), 转信
min x'Ax
s.t. x'x=1
A是一般的矩阵。不对称的。
☆─────────────────────────────────────☆
hero080 (黑肉|其实一点也不黑) 于 (Sun Mar 16 22:25:43 2008) 提到:
你的意思是: min det(x'Ax)吧?
☆─────────────────────────────────────☆
kukutf (五脚蟹★酷酷豆腐) 于 (Sun Mar 16 22:27:40 2008) 提到:
A是n 乘n
x是n 乘1的向量
,所以,x' A x实际是一个数字。
det一个数字,还是 |
|
F******n 发帖数: 346 | 9 在matlab中有一个3D 矩阵,记载灰度信息,如何把矩阵转成 STL(STereoLithography)图像。请教这种算法的名称? |
|
G*F 发帖数: 427 | 10 比矩阵速度的话用matlab做基准就可以了,没matlab的话用python加MKL enabled的
numpy也可以np.dot(A, B)
不过java或c++真是很少用在数值计算上。前段时间我要算的一个11K*350K的矩阵,来
个A * A',要是用楼主那样用loop来算,那得算到哪年去啊。 |
|
e******o 发帖数: 27 | 11 【 以下文字转载自 Computation 讨论区 】
发信人: espresso (espresso), 信区: Computation
标 题: 请问:稀疏矩阵运算有什么好的C++库?
发信站: BBS 未名空间站 (Thu Nov 10 23:45:06 2005), 转信
大概有6000*6000
想求矩阵相乘,SVD之类,有什么好用的库么?谢谢 |
|
o**o 发帖数: 3964 | 12 Lapack没有稀疏矩阵的么? 4kx4k的double complex矩阵求逆大概在半个小时到一个小时
. |
|
y****d 发帖数: 52 | 13 需要求一个矩阵的本征值和本征向量(eigenvalue/eigenvector),矩阵比较大,1000000*
1000000 (1百万*1百万),但有一定周期结构,并且绝大多数是0. 而且我只需要本征值最
低的10到100个结果。
各位有没有推荐的子程序? 最好是Fortran or C写的。
PS,SVD我已经试过了,奇慢。而且没有必要把所有的eigenvalue都接出来。
多谢各位! |
|
p*********9 发帖数: 277 | 14 谢谢回答.有些confusing
因为我定义的这几个矩阵都回定义成全局变量,所以我就用了这样的定义.
如果定义正下面的样子:
void myfun(int time, double *A, double **B)
有什么大的优势呢?毕竟这个矩阵都很小阿。 |
|
t*****z 发帖数: 812 | 15 看应用吧。
试试16G大小的矩阵的乘法,光copy来copy去就够你受的
或者试试10000次调用Cublas算32X32的(不同)小矩阵运算,看看cublas快还是mkl快 |
|
t*****n 发帖数: 4908 | 16 楼主的代码有些问题:
1 数组y没用到,不影响结果
2 矩阵m乘向量x可以放到循环外面。如果是商业代码的话这些优化肯定要做。
3 blas库有gemv()专门做矩阵乘向量,质量肯定比手写的高。
我理解这些代码是做测试用的。但是测试最好是来自实例。 |
|
y**f 发帖数: 32 | 17 主要还是看算法吧
俺当年读书时的一个作业是用HSL库来算大型稀疏矩阵的特征值,就算你在cluster上跑
计算(无论用Java还是C++)时申请的内存动不动就是一个完全矩阵,那和一些专用库算
法比较也快不起来 |
|
N******K 发帖数: 10202 | 18 std::move rvalue reference
move constructor
这些东西真是好用
现在可以直接传值进函数 返回值 不用new一个东西再返回这种 古老的玩意
初步测试 性能接近 armadillo 线性组合运算比armadillo 快1~2倍 -》这是没有用
任何并行库的条件下
矩阵运算表达式可以跟matlab一样 直接ctrl-c ctrl-v 改一改 就行了
举个例子:
A B C为矩阵
c++代码
C = 1.0 + A*A + A * (10.0 + A*B({0,1,2}, {0,1,2}));
Matlab代码
C = 1.0 + A*A + A * (10.0 + A*B([1,2,3], [1,2,3])); |
|
t****t 发帖数: 6806 | 19 move以前没有. 但是move是为了&&类型, 即xvalue服务的(前面我脑子进水了说prvalue
). C++11的新特性核心在于编译器对于xvalue的识别和区分, 即告诉函数, 这个对象其
它地方不要了, 你可以破坏掉. 这才是C++11新加的东西. 至于返回对象还是返回new,
那是风格的问题, 跟C++11无关.
至于矩阵库, matlab以前有C++ math library, 其实跟这个差不多. 当然语法上没有你
这个干净, 后来他们不支持了. 10年前我就写过对这个的wrapper, 作为对C++的练手.
除了没有C++11的特性以外(initializer_list, xvalue), 其它的跟你的一样. 但是
matlab的矩阵本身是copy-on-write的, 所以新开对象的开销是很小的. |
|
t******t 发帖数: 13 | 20 这里牛牛多,问个问题.
我有一个阶数很大的BLOCK TRIDIAGONAL矩阵(暂称为D)
每个BLOCK又是TRIDIAGONAL的
按照LAPACK所需的格式我知道怎么压D
问题是等我压完了,猛一抬头看我算法里
实际需要的是 D*D
而这个好象是BLOCK PENTA-DIAGONAL的矩阵
每个BLOCK又是PENTA-DIAGONAL的
哪位有什么好的resource来压这个么?
多谢. |
|
h*******e 发帖数: 351 | 21 请问已知两个矩阵的最大特征值或者最大特征值的上限, 那么如何确定这两个矩阵的乘积
的最大特征值或者最大特征值的上限呢? 是否直接相乘就可以了? |
|
f*******g 发帖数: 1 | 22 请教诸位大侠两个关于矩阵的问题:
1.有没有文章或书籍介绍 pseudo-circulant matrix (就是在circulant matrix的基础上
加以变化)的性质?
2.存不存在广义的Sylvester matrix (就是涉及到多个多项式系数的类Sylvester矩阵)
?
thx. |
|
f*******d 发帖数: 339 | 23 我现在是先读到一个矢量里,然后用zeros 造一个矩阵,然后用两个for 循环对每个
矩阵元赋值, 感觉这方法有点土。有什么比较好的办法吗? |
|
m********e 发帖数: 5088 | 24 本人用有限差分法算8个耦合的eigenvalue functions.
最后的矩阵实在打得惊人,大约100万*100万。要算其eigenvalues and eigenfunctions
Matlab肯定是不行了(感觉大于8000*8000就不行了)
请问大牛们这种情况怎么处理,我想到用Fortran做并行计算,不过package很难确定,网
上很多算大型稀疏矩阵的package不知道如何选择。大家有没有好的建议?
先谢谢了 |
|
f********r 发帖数: 50 | 25 指望靠好的硬件不太现实
如果不能找到一个理想的算法,这个问题是解决不了的
我做的不是有限差分,而是强相关量子系统,
所以如果要求系统的eigenvalue,矩阵的大小也是2^N *2^N
最少,N是系统的大小。精确求解根本不可能。
但是可以利用renormalization的思想,去掉那些不重要的本证态
事实证明,仅保留10个态,如果方法得当,可以得到1e-4的精度的eigenvalue.
关于稀疏矩阵的算法,有很多种,我想很常用的一种就是jacobi-davidson,
你应该可以在网上找到matlab和fortran的程序。
eigenfunctions
网 |
|
y**i 发帖数: 86 | 26 用fortran,
用arpack包,不用存矩阵,
中间费时的是矩阵和矢量相乘,并行处理,
低精度和计算少量本征值的话用时很少。
eigenfunctions
网 |
|
s*******g 发帖数: 18 | 27 刚刚接触maple, 需要解决实际问题,遇到机器人手臂问题, 需要用角度theta i定义第
n个手臂的位移和速度。
矩阵A,是个i×1矩阵,元素a[i]=l[i]*sin(theta[ i])*omega[ i]
之前用不用定义a[i]是个array之类的?
然后对A求对omega[i]的偏微分,得到的A'=Diff(A,omega[i])。 |
|
y****d 发帖数: 52 | 28 需要求一个矩阵的本征值和本征向量(eigenvalue/eigenvector),矩阵比较大,1000000*
1000000 (1百万*1百万),但有一定周期结构,并且绝大多数是0. 而且我只需要本征值最
低的10到100个结果。
各位有没有推荐的子程序? 最好是Fortran or C写的。
PS,SVD我已经试过了,奇慢。而且没有必要把所有的eigenvalue都接出来。
多谢各位! |
|
m********e 发帖数: 5088 | 29 100万*100万的算大型矩阵了,比较推荐Arpack(in Fortran77),但估计这么大的矩阵得
用64bit机器。
一般的32bit机器,4Gdual processor, 4G ram,最多可以解到30万*30万。
再小一点的10万,20万左右的,就可以用matlab*P解了
一般的Matlab如果用sparse+eigs,最多解10000*10000,再多没戏。
所以还是用fortran比较好。
如果我没猜错,应该是要解simultaneous eigenvalue equations吧。
好运
1000000*
最 |
|
T*********e 发帖数: 39815 | 30 你这个矩阵是不是根本就不是full rank矩阵?
det(A)多少? |
|
j********3 发帖数: 560 | 31 谢谢了。那么对于这种行列式很小的矩阵,是不是就没法比较精确的求解出它的逆矩阵
呢? |
|
b*****n 发帖数: 319 | 32 想调用矩阵文件A, B,都是数据文件
如何实现?
如何实现提取矩阵某行或某列数据? |
|
j**u 发帖数: 6059 | 33 ☆─────────────────────────────────────☆
kouzhong (jinzhongyue) 于 (Sat Apr 7 10:43:16 2007) 提到:
请问各位MATLAB高手如何在MATLAB中运用矩阵计算实现以下循环, 例如。A,B和C都是
600*
5000的矩阵。多谢 !!!
for j = 1:cols
for i = 1:rows
A(i,j)=B (i,j)*C(i,j);
end
end
☆─────────────────────────────────────☆
snowdy (hahahaha) 于 (Sat Apr 7 10:55:10 2007) 提到:
A=B.*C
☆─────────────────────────────────────☆
kouzhong (jinzhongyue) 于 (Sat Apr 7 12:44:14 2007) 提到:
thanks, I even forgot the basic matrix operation with matlab. :(
☆ |
|
s****h 发帖数: 921 | 34 来自主题: Computation版 - 矩阵计算 有一个稀疏的大矩阵A(m*n),m>>n>5000.
A的每一行和都是0,A的rank=n-1.
1, 如何快速在m行里找出n-1线性无关的行?
2, 1完成后,A的矩阵就分成了2个部分: A1,A2; A=(A1;A2);
A1就是n-1个线性无关的行,A2是剩下的m-n+1行.
对A1的每一行,找出A2哪些行可以代替它,使得A1的rank仍然是n-1.
for i=1:size(A1,1)
remove i-th rew of A1
add one row in A2 into A1
if A1 is still rank==n-1 then we record the row number of A2
end |
|
y*******g 发帖数: 6599 | 35 比如矩阵是
a1 b1
a2 b2
..
an bn
向量为
c1
c2
..
cn
想得到一个矩阵
a1c1 b1c1
...
ancn bncn
该怎么处理?谢谢 |
|
c****r 发帖数: 576 | 36 【 以下文字转载自 Mathematics 讨论区 】
发信人: celler (生活正常化了), 信区: Mathematics
标 题: matlab 能不能解符号矩阵方程?
发信站: BBS 未名空间站 (Mon Nov 26 17:34:14 2007)
这样的方程:J*C + C*J' = D,其中J' = transpose(J),J,C,D都是带有符号变量的
矩阵,求符号解。 |
|
p******m 发帖数: 353 | 37 小弟初学Python, 网上看到个Matpy的矩阵功能包,但是好像针对于老版本Python的。
我用的是最新的2.5.1版本,请问有没有针对最新版本的矩阵功能包可以下载啊? |
|
d*******2 发帖数: 340 | 38 机器内存2G, 用matlab的话可用4000x4000的矩阵8-10个的样子. 现在刚学C语言,用了
一句
double extended_u2[512][256][2]; 编译运行的时候说main.exe遇到问题需要关闭.如
果把矩阵改到256x256就没有问题.请问我该怎么分配内存?先谢了!
by the way, 我是用dev c++编译联接的. |
|
s****h 发帖数: 921 | 39 我有一个动态系统参数优化的问题。
参数有四个:a,b,c,d。
优化的目标是使系统的output达到理想的曲线g.
我从一个initial guess开始,用简单的sensitivity analysis进行迭代。效果还可以.
我知道sensitivity analysis对初值的依赖性很强,如果initial guess太差,可能无法
收敛.
实际运行中,我发现:
如果initial guess太差,H矩阵产生奇异,rank只有2,而非4.
这个就算是无法收敛吗?
还是因为我在计算梯度时候的步长取小了,造成H矩阵奇异呢? |
|
f*******8 发帖数: 149 | 40 请问如何求解下面这个矩阵方程?
AX^2+BX+C=0
其中,A,B,C,X和0都是4×4的矩阵。
请问可以用Matlab求解吗?如何使用呢?
万分感谢! |
|
d*******2 发帖数: 340 | 41 比如一个100x100的矩阵,对第11行和第16行求和,第12行和第17行求和,第13行和第
18行求和,第14行和第19行求和,第15行和第20行求和,求和之后分别成为第11,12,
。。。15行。
然后对第31行和第36行求和,第32行和第37行求和,第33行和第38行求和,。。。第35
行和第40行求和,求和之后替代原来的第31,32,。。35行。
。。。
最后对第91行和第96行求和,第92行和第97行求和,第93行和第98行求和,。。。第95
行和第100行求和,求和之后替代原来的第91,92,。。95行。最后矩阵变成75x75的矩
阵。
请问有什么简单的办法么?
先谢了! |
|
d*******2 发帖数: 340 | 42 比如4x3的矩阵,现有一向量a=[0 0 0]; 如何找到他的行号是第四行?先谢了!
0 0 20
0 5 10
4 9 4
0 0 0 |
|
s*******g 发帖数: 483 | 43 也许将秩矩阵逼近有用(low-rank approximation) |
|
r********d 发帖数: 155 | 44 我试了将坐标x,y和矩阵值z分别设成维数相同的矩阵:x(m,n),y(m,n),z(m,n)
然后用contourf(x(:,:),y(:,:),z(:,:))即可,但用contour的时候却总是出错,帮忙
看看还有什么别的办法。。。 |
|
c******k 发帖数: 1140 | 45 用 Mathematica运行一个32x32 的矩阵,但是其中只有几十个元素是符号,符号也挺短
的,其余元素全是零,然后求其逆矩阵,符号运算,结果报错:
No more memory available.
Mathematica kernel has shut down.
Try quitting other applications and then retry.
我的laptop 3G内存,Mathematica新手,恳请指导一下,多谢! |
|
d*****k 发帖数: 580 | 46 现有一 M x N 的矩阵A,以及一个 K x 2 的"地址"矩阵B,B中的每一行指向A中一个元
素,这些元
素分散在A的各个地方,一个一个的读取很容易,A( B(i,1), B(i,2) ),但要用到循环
。不知道用
什么方法能一次性读取出来不用循环呢? |
|