【问题标题】:Apply function to a list of named arguments in Maxima将函数应用于 Maxima 中的命名参数列表
【发布时间】:2021-05-22 23:19:28
【问题描述】:

对于拉格朗日乘数等问题,您可以求解临界点。通常,您会得到一组关键点。有没有一种方法可以轻松地将原始函数映射到解决方案上,以在这些解决方案上评估/应用函数以获得函数值?

这是一些代码,最后一步是我不知道如何构造的代码:

f(x, y) := y^2 - x^2
g: 1/4 * x^2 + y^2

eq1: diff(f(x,y), x) = h * diff(g, x);
eq2: diff(f(x,y), y) = h * diff(g, y);
eq3: g = 1;

solve([eq1, eq2, eq3], [x, y, h]);
# Get:
# [[x=-2,y=0,h=-4],[x=2,y=0,h=-4],[x=0,y=-1,h=1],[x=0,y=1,h=1]]

# How can I get the list of values by applying the function to the
# list of solutions?
map(apply(f(x, y)), solve([eq1, eq2, eq3], [x, y, h]));

# Want (evaluated):
# [f(-2, 0), f(2, 0), f(0,-1), f(0, 1)]
# ???

【问题讨论】:

    标签: maxima wxmaxima


    【解决方案1】:

    执行此操作的一种方法是将解决方案替换为函数返回的表达式。像这样的东西(我没试过):

    mysolutions: solve (...);
    map (lambda ([solution1], subst (solution1, f(x, y))), mysolutions);
    

    【讨论】:

      猜你喜欢
      • 2019-05-03
      • 2013-12-14
      • 2018-12-19
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 2021-04-25
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多