zeroieme 发表于 2013-2-18 00:35:57

怎么令Mathematica展开积分式?

就是 Expand+G,i]] 命令
得到 Integrate, i] + Integrate, i]ExpandAll都不行

wayne 发表于 2013-2-19 15:47:30

Expand是针对多项式的吧,可以试试/.//.之类的函数:
http://reference.wolfram.com/mathematica/ref/ReplaceRepeated.html
==========
BTW,为什么会有这种需求,可否谈谈背景

zeroieme 发表于 2013-2-19 17:54:32

这样?明白了!

整个表达式积分没有显式结果。
分拆积分后,有显式结果的部分直接代入计算,剩余的才用数字积分。这样能降低运算量。

wayne 发表于 2013-2-20 09:30:30

3# zeroieme
replace系列的函数执行的是符号替换,如果有具体的函数表达式的话,简单的替换就不管用了。
你可以先将表达式最外一层的加号,替换成List, ,即    /.Plus->List
然后对该List的每一个元素做 Integrate操作, 完了之后 再将 /.List->Plus

zeroieme 发表于 2013-2-20 11:17:14

4# wayne


List和Plus的互换最近我也经常做。List下提取公因式比直接Factor快多了。
就是一下子没想到积分也可以类似处理。
谢谢:)
页: [1]
查看完整版本: 怎么令Mathematica展开积分式?