You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Maxima CAS中绘制二维向量场?代码报错求解

问题解决步骤

核心原因

报错是因为plotdf要求向量场表达式只能依赖x和y,但你的p仍包含未替换的变量z——虽然你后来定义了z:x+y*i,但这个定义在p创建之后,导致p里的z没有被替换为x和y的表达式,最终plotdf识别到额外变量z。另外注意:Maxima的标准虚数单位是%i,用i会被当作普通变量,导致计算异常。

修正后的代码

display2d:false;
kill(all);

// 先定义z为x+y的复平面表达式(使用Maxima标准虚数单位%i)
z: x + y*%i;

t: 0.75*%i;
// 基于已定义的z计算p,此时p会自动展开为x和y的函数
p: z*(z^3 - 1.5^3*%e^(2*%pi*%i*t));

// 求解根的逻辑保持不变
s: solve([p],[z]);
s: map(rhs,s);
s: map('float,s);
s: map('rectform,s);

// 直接取p的实部和虚部(此时p已仅含x、y)
r: realpart(p);
m: imagpart(p);

// 调用plotdf绘图
plotdf([r,m],[x,y], [trajectory_at,realpart(s[2]), imagpart(s[2])], [direction,forward]);

关键修正点

  • 调整变量定义顺序:先定义z: x + y*%i,再计算p,确保p中的z被替换为x和y的表达式,让realpart和imagpart能正确解析出仅含x、y的实值函数。
  • 替换虚数单位:把代码中的i改为Maxima标准的%i,避免被当作普通变量处理。
  • 移除多余操作:无需额外调用rectform(p),因为基于z:x+y*%i计算的p已经是可直接解析的形式。

运行修正后的代码,r和m会变成仅依赖x和y的表达式,plotdf就能正常绘制向量场和指定轨迹。

内容的提问来源于stack exchange,提问作者Adam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:12:22