| 查看: 1075 | 回复: 8 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
[求助]
Mathematica求助 泰勒展开和求导 已有1人参与
|
|||
|
求教Mathematica: 多元函数展开后(Series[]),比如x展开到m次,y展开到n次,怎么只保留m+n<4的项? 多谢!! |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有8人回复
最失望的一年
已经有10人回复
求推荐英文EI期刊
已经有5人回复
存款400万可以在学校里躺平吗
已经有27人回复
请教限项目规定
已经有4人回复
国自然申请面上模板最新2026版出了吗?
已经有20人回复
26申博
已经有3人回复
基金委咋了?2026年的指南还没有出来?
已经有10人回复
基金申报
已经有6人回复
疑惑?
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
一个关于 quadgk 函数求积分的问题
已经有7人回复
Matlab 7.0 基础教程 清华大学
已经有29人回复
如何求解下列方程:xlnx=a(x-b)
已经有14人回复
[求助]用Mathematica软件进行taylor展开
已经有3人回复
gsview
木虫 (小有名气)
- 应助: 4 (幼儿园)
- 金币: 2446.9
- 红花: 3
- 帖子: 146
- 在线: 233.8小时
- 虫号: 443276
- 注册: 2007-10-27
- 性别: GG
- 专业: 核物理
【答案】应助回帖
★ ★ ★ ★ ★
DRAGONZXD: 金币+5, ★★★很有帮助 2015-06-02 21:41:18
DRAGONZXD: 金币+5, ★★★很有帮助 2015-06-02 21:41:18
|
看了walk1997的程序觉得那个rule还是太复杂。 其实楼主的要求就是想把各变量的幂次能合起来,其实很简单,只需要在你想要合起来的变量都给一个参数就可以了。 例如 f[x__] := Sin[Total[x]]; x = {a, b, c}; x1=x*h 这样你把f[x1]对x在0点展开的时候h的幂次就所有变量的幂次的和。 而且你还可以进一步复杂,例如a和b的幂次之和不能大于n,b和c的幂次之和不能大于m,总幂次又要小于L,那你就相应的把这些都给一个一样的参数就可以了,那x1={a*h1*h,b*h1*h2*h,c*h2*h}, 这样筛选的rule就可以很简单的是 rule={h1^j1_/;(j1>n)->0,h2^j2_/;(j2>m)->0,h^j_/;(j>=L)->0} 稍微改一下walk的程序就是 f[x__] := Sin[Total[x]]; x0 = {a, b, c, d, e}; x = x0*h; n = 5; test = f[x]; rule = {h^n_ /; (n > 4) -> 0}; Do[test = ExpandAll[Normal[Series[test, {x0[[k]], 0, n - 1}]]]; test = test /. rule; , {k, 1, Length[x]}] test = test /. {h -> 1}; |
8楼2015-05-10 15:07:47
walk1997
金虫 (著名写手)
- 应助: 1 (幼儿园)
- 金币: 4676.2
- 红花: 22
- 帖子: 1066
- 在线: 798.1小时
- 虫号: 416039
- 注册: 2007-06-29
- 性别: GG
- 专业: 粒子物理学和场论
2楼2015-04-23 06:46:30
3楼2015-04-27 17:45:06
walk1997
金虫 (著名写手)
- 应助: 1 (幼儿园)
- 金币: 4676.2
- 红花: 22
- 帖子: 1066
- 在线: 798.1小时
- 虫号: 416039
- 注册: 2007-06-29
- 性别: GG
- 专业: 粒子物理学和场论
|
对这种多项式处理不是很熟 另外对模式的理解个人还不是很深入 只能用比较笨的方式 下面的代码是比较笨的方法解决你这个问题 例子是7个变量泰勒展开,只取总的次数小于5的项。 个人感觉mathematic应该有更简单的方式只需要构造单个的rule 挑选出所需的项,不过我没找到这样的函数,只好用字符的方式和多个rule来实现这种笨挑选。 f[x__] := Sin[Total[x]]; x = {a, b, c, d1, d2, d3, d4}; n = 5; test = f[x] jihe = Delete[Subsets[x], 1]; rule = Map[((Times @@ Table[#[]^ToExpression[("n" <> ToString <> "_." ], {i, 1, Length[#]}]) /; Evaluate[ Total[Table[ ToExpression[("n" <> ToString)], {i, 1, Length[#]}]] >= n]) -> 0 &, jihe] Do[ test = ExpandAll[Normal[Series[test, {x[], 0, n - 1}]]]; test = test /. rule; , {i, 1, Length[x]}] test |
4楼2015-05-05 22:05:30













回复此楼
], {i,