24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1002  |  回复: 3

ndadams

铁虫 (小有名气)

[求助] 请教:mathematica 每次 的计算结果不同已有1人参与

Tee = Chop[TLee, 10*10^-8];
H = Det[Tee];
fpz = \[Omega] /. Solve[H == 0, \[Omega]]

请教各位问题:
求矩阵Tee的行列式,然后通过行列式的值为零求频率Omega。
在求行列式之前用了Chop命令 Chop[TLee, 10*10^-8];
当Chop的第二个参数(10*10^-8)取不同值时,计算结果Omega差别很大,这个是什么原因,怎么解决呢?

谢谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xzczd

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
……你TLEE的值是不是本来就很小?TLEE是用什么方法得到的?如果也是算出来的,那把TLEE的计算精度提高些试试。
小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
2楼2015-08-25 12:32:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ndadams

铁虫 (小有名气)

TLEE矩阵的元素都是Omega的函数,我看到Omega前面的系数有些近似为零,为了缩短计算时间,就用了Chop指令。
Chop的第二个参数选不同的数量级,计算结果差别很大。

我也怀疑可能矩阵中的元素值都很小。
3楼2015-08-25 14:56:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ndadams

铁虫 (小有名气)

我明白了,先前的想法是不对的。原因如下:

在这里不能使用Chop指令,因为矩阵中的元素是\[Omega]\的函数,并不知道矩阵中每个元素的数值大小,Chop截断的是接近于零常数和常系数,因此很多包含\[Omega]的项因为系数较小被截断而去掉了。
导致行列式中\[Omega]的最高阶次严重降低,很多高次项被去掉了。这样,得到的多项式就和原来的大不相同,得到的解也就不同。
4楼2015-08-26 01:54:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ndadams 的主题更新
信息提示
请填处理意见