liuxbin 发表于 2008-12-25 20:31

求行列式值有没有类似点乘那种功能的命令

例如
a=; b=;c=;d=
我想找一个命令比如说是det_dot,
直接用det_dot();
结果是det()和det()

[ 本帖最后由 liuxbin 于 2008-12-25 20:32 编辑 ]

ch_j1985 发表于 2008-12-25 21:45

回复 楼主 liuxbin 的帖子

不太明白LZ问题的意思

sigma665 发表于 2008-12-26 09:44

建议lz自己编一个吧

liuxbin 发表于 2008-12-27 16:43

我想了一个办法,先用符号运算将这个方阵展开,然后就可以实现点乘功能了,也就是Vectorized了

sigma665 发表于 2008-12-27 20:11

回复 地板 liuxbin 的帖子

符号运算速度太慢了

liuxbin 发表于 2008-12-28 11:20

楼上没有理解我的意思
我的方阵维数比较高,这里我用二维方阵作为例子
本来我是这样实现的
x=;
a=sin(x);b=cos(x);c=exp(x);d=x;
size_x=size(x);
for count_x=1:size_x(2)
value(count_x)=det();
end
但是这样有一个问题就是我在跑一个程序的时候报错,提示没有Vectorized

然后我就用符号运算det()=a*d-b*c,得到了行列式展开式.
然后我把它改成了a.*d-b.*c,
x=;
a=sin(x);b=cos(x);c=exp(x);d=x;
value=a.*d-b.*c;
这样就实现了Vectorized,而且速度比上面用的循环要快好多

ch_j1985 发表于 2008-12-28 13:25

回复 6楼 liuxbin 的帖子

请问LZ问题解决啦?
页: [1]
查看完整版本: 求行列式值有没有类似点乘那种功能的命令