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

在Maxima中批量求解含参数l的表达式的根

Maxima 批量求解含参数表达式的根

下面提供几种实用的批量求解方法,以含参数l的方程为例演示:

方法1:for循环遍历参数列表

适合需要逐次输出结果或做中间处理的场景,示例如下:

/* 1. 定义含参数l的目标方程 */
eq(x, l) := x^2 - l*x + 1 = 0;

/* 2. 定义要批量处理的l值集合 */
l_values : [1, 2, 3, 4];

/* 3. 循环求解并输出结果 */
for l in l_values do (
    print("l = ", l, " 时的根:"),
    print(solve(eq(x, l), x)),
    print("---")
);

方法2:map函数批量映射

更简洁的函数式写法,适合直接生成结果集合:

/* 定义方程和参数列表 */
eq(x, l) := x^2 - l*x + 1 = 0;
l_values : [1, 2, 3, 4];

/* 生成每个l对应的根列表 */
root_list : map(lambda([l], solve(eq(x, l), x)), l_values);

/* 配对参数与结果并打印 */
map(lambda([l, roots], print("l = ", l, " → ", roots)), l_values, root_list);

方法3:数值根批量求解(非解析方程)

如果方程无法得到解析解,改用find_root求数值根,需指定变量的搜索区间:

/* 定义非解析方程(比如超越方程) */
eq(x, l) := sin(x) - l*x = 0;
l_values : [0.1, 0.3, 0.5];

/* 批量求解数值根 */
for l in l_values do (
    root : find_root(eq(x, l), x, 0, %pi),
    print("l = ", l, " 时的数值根:", root)
);

额外提示

  • 若需要连续区间的参数,用makelist(l, l, 起始值, 终止值, 步长)生成参数列表,比如makelist(l, l, 1, 5, 0.5)
  • 可以将结果存入列表保存,比如results : []; for l in l_values do (results : endcons([l, solve(eq(x,l),x)], results));
  • 多根场景下,solve会返回所有解析根;find_root需调整搜索区间来定位不同的根

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:59:59