找回密码
 欢迎注册
查看: 8987|回复: 8

[原创] 整理mathematica方程组求解结果的vim脚本

[复制链接]
发表于 2011-11-26 16:52:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
在使用mathematica求解得到方程组的求解结果时,
mathematica的求解结果粘贴出来的时候,往往很不
整齐,因此本人整理了一个vim脚本,专门用来整理
mathematica的求解结果。

比如用mathematica求解方程组
NSolve[{x + y + z + w == 20,
                 x^2 - y^2 + z^2 - w^2 == 0,
                 x^3 + y^3 + z^3 + w^3 == 7,
                 x^4 + y^4 + z^4 - w^4 == 0},
                {x, y, z, w}]

如果直接从mathematica中粘贴出来的话,求解结果
如下:
{{x -> 11.5073 + 5.56279 I, y -> -11.4673, z -> 11.5073 - 5.56279 I,
  w -> 8.45269}, {x -> 11.5073 - 5.56279 I, y -> -11.4673,
  z -> 11.5073 + 5.56279 I,
  w -> 8.45269}, {x -> -0.633291 + 6.87381 I,
  y -> 4.66238 - 8.28313 I, z -> 7.79684 - 1.42422 I,
  w -> 8.17408 + 2.83354 I}, {x -> -0.633291 - 6.87381 I,
  y -> 4.66238 + 8.28313 I, z -> 7.79684 + 1.42422 I,
  w -> 8.17408 - 2.83354 I}, {x -> 7.79684 - 1.42422 I,
  y -> 4.66238 - 8.28313 I, z -> -0.633291 + 6.87381 I,
  w -> 8.17408 + 2.83354 I}, {x -> 7.79684 + 1.42422 I,
  y -> 4.66238 + 8.28313 I, z -> -0.633291 - 6.87381 I,
  w -> 8.17408 - 2.83354 I}, {x -> 6.10028 + 2.52048 I,
  y -> 6.07128 - 2.39536 I, z -> 3.99203 - 3.88309 I,
  w -> 3.83641 + 3.75797 I}, {x -> 6.10028 - 2.52048 I,
  y -> 6.07128 + 2.39536 I, z -> 3.99203 + 3.88309 I,
  w -> 3.83641 - 3.75797 I}, {x -> 3.99203 + 3.88309 I,
  y -> 6.07128 + 2.39536 I, z -> 6.10028 - 2.52048 I,
  w -> 3.83641 - 3.75797 I}, {x -> 3.99203 - 3.88309 I,
  y -> 6.07128 - 2.39536 I, z -> 6.10028 + 2.52048 I,
  w -> 3.83641 + 3.75797 I}}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-11-26 16:56:21 | 显示全部楼层
上面的求解结果很乱,所以本人写了一个vim的脚本,处理结果如下:
{x=11.5073+5.56279I,y=-11.4673,z=11.5073-5.56279I,w=8.45269},
{x=11.5073-5.56279I,y=-11.4673,z=11.5073+5.56279I,w=8.45269},
{x=-0.633291+6.87381I,y=4.66238-8.28313I,z=7.79684-1.42422I,w=8.17408+2.83354I},
{x=-0.633291-6.87381I,y=4.66238+8.28313I,z=7.79684+1.42422I,w=8.17408-2.83354I},
{x=7.79684-1.42422I,y=4.66238-8.28313I,z=-0.633291+6.87381I,w=8.17408+2.83354I},
{x=7.79684+1.42422I,y=4.66238+8.28313I,z=-0.633291-6.87381I,w=8.17408-2.83354I},
{x=6.10028+2.52048I,y=6.07128-2.39536I,z=3.99203-3.88309I,w=3.83641+3.75797I},
{x=6.10028-2.52048I,y=6.07128+2.39536I,z=3.99203+3.88309I,w=3.83641-3.75797I},
{x=3.99203+3.88309I,y=6.07128+2.39536I,z=6.10028-2.52048I,w=3.83641-3.75797I},
{x=3.99203-3.88309I,y=6.07128-2.39536I,z=6.10028+2.52048I,w=3.83641+3.75797I}
这个整理的结果应该比上面的好了不少。
对应的脚本见附件!
如果有建议的话,可以给我提出!
有注释是我写代码的一贯风格!

002整理mathematica方程组求解结果.vim

500 Bytes, 下载次数: 5, 下载积分: 金币 -1 枚, 经验 1 点, 下载 1 次

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-11-26 16:58:13 | 显示全部楼层
{x=11.5073+5.56279I   , y=-11.4673         , z=11.5073-5.56279I   , w=8.45269}          ,
{x=11.5073-5.56279I   , y=-11.4673         , z=11.5073+5.56279I   , w=8.45269}          ,
{x=-0.633291+6.87381I , y=4.66238-8.28313I , z=7.79684-1.42422I   , w=8.17408+2.83354I} ,
{x=-0.633291-6.87381I , y=4.66238+8.28313I , z=7.79684+1.42422I   , w=8.17408-2.83354I} ,
{x=7.79684-1.42422I   , y=4.66238-8.28313I , z=-0.633291+6.87381I , w=8.17408+2.83354I} ,
{x=7.79684+1.42422I   , y=4.66238+8.28313I , z=-0.633291-6.87381I , w=8.17408-2.83354I} ,
{x=6.10028+2.52048I   , y=6.07128-2.39536I , z=3.99203-3.88309I   , w=3.83641+3.75797I} ,
{x=6.10028-2.52048I   , y=6.07128+2.39536I , z=3.99203+3.88309I   , w=3.83641-3.75797I} ,
{x=3.99203+3.88309I   , y=6.07128+2.39536I , z=6.10028-2.52048I   , w=3.83641-3.75797I} ,
{x=3.99203-3.88309I   , y=6.07128-2.39536I , z=6.10028+2.52048I   , w=3.83641+3.75797I}
可以用align插件得到如上面的结果!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-11-26 22:28:48 | 显示全部楼层
3# mathematica
Mathematica其实非常擅长排版
输出结果的格式化有很多的丰富的函数 ,如 Grid,TableForm
20111126222632.jpg

如果想文本格式化的话,可以用Export

点评

你比我聪明多了!  发表于 2021-1-19 12:44
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-1 12:00:28 | 显示全部楼层
Mathematica的Solve输出的是替换规则(Rules),应该是比较方便应用的。想排得好看的话可以很容易转成矩阵
无标题.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-1 12:07:48 | 显示全部楼层
无标题.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-12-1 12:13:54 | 显示全部楼层
无标题.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-8-3 18:35:04 | 显示全部楼层
3505
hujunhua 发表于 2011-12-1 12:07

为什么不像我一样既把代码贴出来,又把图片贴出来???????
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 08:42 , Processed in 0.048487 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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