找回密码
 注册
Simdroid-非首页
查看: 295|回复: 4

急求Mathematica一个小程序的编制方法,清高手指点.

[复制链接]
发表于 2005-4-28 11:44:48 | 显示全部楼层 |阅读模式 来自 郑州大学
用函数Collect[]合并同类项
举一个简单例子:U=x^2+2*x*y+x+y+y^2+z
结果是:Collect[U,x]=(x+2y+1)x+y+y^2+z
但是我不想得到这样的结果,我想找到(x+y)的同类项,想得到U=(x+y)^2+(x+y)+z,并用f来代替(x+y),即最后想得到:U=f^2+f+z. 即用f来代替(x+y)后,得到求解f的合并同类项,并把x,y换成f,用f来表达U.不知如何去做,恳请指教.
其实我作的一个题目是有关:r^2=x^2+y^2,最后我要找到有关1/r^2,1/r^4,1/r^6这些因子(实在合并不了的才用x,y等来表达,大的趋势是找到1/r^2,1/r^4,1/r^6这些因子),但做到最后给的结果总是用最最基本的量x,y来表示,有几百项那么多.理论的结果(我已手算十几天了,通宵达旦,有些已算出,有些实在算不下去了,太长了)用1/r^2,1/r^4,1/r^6这些因子表示的话只有十来项,且很简洁,式子也很对称,很整齐,很有规律性.
急用,恳请高手指教,不胜感激.
发表于 2005-4-28 15:30:27 | 显示全部楼层 来自 湖北武汉

Re:急求Mathematica一个小程序的编制方法,清高手指点.

Simdroid开发平台
既然只有r一个参数,你就用x代替1/r^2。这样只有x,x^2,x^3,你对x求三次导就可以得到x^3的系数的六倍,这样经过点处理就可以一次求出x各项的系数了。
 楼主| 发表于 2005-4-28 20:04:52 | 显示全部楼层 来自 郑州大学

Re:急求Mathematica一个小程序的编制方法,清高手指点.

对您的回复本人不胜感激,谢谢您!
但我只是举了一个小小的例子,我不仅仅只有r这一个参数,我有十多个参数,还有一些复合项,他们归根到底都是可以用最最基本的x,y等四五个少数最最基本项来表示,但我需要找到有关r的负偶数次幂,并进行同类项(有关r的负偶数次幂)的合并,否则太繁琐,且不直观。并进行代换,例如:令f=r^2=x^2+y^2(这只是一个例子,事情远比这复杂)。
我想,Mathematica5.0功能非常强大,肯定能进行这一操作,应改调用或定义有关函数进行吧,但大多教材版本不仅老,讲的也都很浅。本人这方面不太精通,还望进一步指点,不胜感激!谢谢!
发表于 2005-6-24 16:26:05 | 显示全部楼层 来自 香港

Re:急求Mathematica一个小程序的编制方法,清高手指点.

简单思路?

In[1]:= U = x^2 + 2*x*y + x + y + y^2 + z;

In[2]:= U /. {y -> c - x} // Expand

Out[2]:= c + c^2 + z

评分

1

查看全部评分

 楼主| 发表于 2005-6-24 20:36:05 | 显示全部楼层 来自 郑州大学

Re:急求Mathematica一个小程序的编制方法,清高手指点.

果然很凑效,也很神奇,您是个高手,谢谢您!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-26 21:45 , Processed in 0.043832 second(s), 17 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表