网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
04月24日漏签0天
mathematica吧 关注:19,960贴子:74,297
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 4回复贴,共1页
<<返回mathematica吧
>0< 加载中...

关于Mathematica表达式替换的问题

  • 只看楼主
  • 收藏

  • 回复
  • 庞加莱回归
  • 安装激活
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
ClearAll["Global`*"]
PoissonBracket[f_,g_,coords_List,moms_List]:=Total[MapThread[D[f,#1]*D[g,#2]-D[f,#2]*D[g,#1]&,{coords,moms}]];
q={qx,qy,qz};
p={px,py,pz};
A={Ax[qx,qy,qz],Ay[qx,qy,qz],Az[qx,qy,qz]};
v=(1/m)*(p-e*A);
H=1/2*m*(v.v)+e*\[Phi][qx,qy,qz];
rules={D[Az,qy]-D[Ay,qz]->Bx,
D[Ax,qz]-D[Az,qx]->By,
D[Ay,qx]-D[Ax,qy]->Bz,
D[Ay,qz]-D[Az,qy]->-Bx,
D[Az,qx]-D[Ax,qz]->-By,
D[Ax,qy]-D[Ay,qx]->-Bz};
我在计算带电粒子在电磁场中运动的泊松括号时,定义了磁矢势与磁场的替换规则,但是在实际计算的时候Mathematica并没有运用这套规则,请问这个问题该如何解决呢?


  • xzcyr
  • 吧主
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
……
1. 你把rules后面的分号去掉观察一下输出,想对此话题有全面了解的话,请参考精品区《为什么y=y[x]会出错?你分得清函数关系和函数吗?》(我已经顶上来了,请看一下首页。)
2. ReplaceAll(/.)执行的并不是智能替换,想对此话题有全面了解的话,请参考精品区《为什么 a^4 /. a^2 -> b 不输出 b^2 ?说说语义式匹配》(我已经顶上来了,请看一下首页。)
3. 你最后一行代码的文本没贴,这次就算了。
对于你这个特定的例子,最简改法大概是:
With[{Ax = Ax[qx, qy, qz], Ay = Ay[qx, qy, qz], Az = Az[qx, qy, qz]},
rules = {D[Az, qy] - D[Ay, qz] -> Bx, D[Ax, qz] - D[Az, qx] -> By,
D[Ay, qx] - D[Ax, qy] -> Bz, D[Ay, qz] - D[Az, qy] -> -Bx,
D[Az, qx] - D[Ax, qz] -> -By, D[Ax, qy] - D[Ay, qx] -> -Bz}]
Factor@PoissonBracket[v[[1]], v[[2]], q, p] /. rules
不过对于更复杂的情形,这么改多半是不够的。


2026-04-24 02:07:09
广告
不感兴趣
开通SVIP免广告
  • xzcyr
  • 吧主
    15
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
更一般的改法:
(* 注意 rules 要使用2楼更正过的定义 *)
newrules =
Solve[Equal @璐村惂鐢ㄦ埛_053SRMK馃惥 rules,
Cases[rules, _[_, _, _], Infinity] // Union][[1]]
PoissonBracket[v[[1]], v[[2]], q, p] /. newrules // Simplify


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 4回复贴,共1页
<<返回mathematica吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示