lin2009 发表于 2012-12-12 11:07:08

简单的复数表达式化简在maple中却不容易实现

如下2个例子:
1、
(1/6*I)*(-3+I*sqrt(3))*sqrt(3)    ...(1)
用simplify的各种方法都不行。
用expand却可以得到:-1/2-(1/2*I)*sqrt(3)

2、
若(1)式是某矩阵中的某个元素,用simplify和expand方法都不行。如下:
Matrix(3, 3, {(1, 1) = 1, (1, 2) = ((1/6)*I)*(-3+I*sqrt(3))*sqrt(3), (1, 3) = ((1/6)*I)*(3+I*sqrt(3))*sqrt(3), (2, 1) = 1, (2, 2) = ((1/6)*I)*(3+I*sqrt(3))*sqrt(3), (2, 3) = ((1/6)*I)*(-3+I*sqrt(3))*sqrt(3), (3, 1) = 1, (3, 2) = 1, (3, 3) = 1})
当需要化简的元素个数少时,可以一个个expand。
但是矩阵较大或需要化简的元素个数较多时,该用什么办法呢?


lin2009 发表于 2012-12-12 17:30:25

参考了evalc函数,仍不奏效。
http://forum.simwe.com/thread-1054792-1-1.html

自己动手,找到一种折中的方法:
newA := Re(A)+I*Im(A)
不知大家有无更好的方法?

feiyuzhen 发表于 2012-12-14 07:32:24

表达式简单的话,复数情况evalc比较常用,
矩阵可以用map命令

chyanog 发表于 2013-2-3 15:39:29

本帖最后由 chyanog 于 2013-2-3 15:39 编辑

map(radnormal, mat)

map(expand, mat)
页: [1]
查看完整版本: 简单的复数表达式化简在maple中却不容易实现