gpt4 book ai didi

wolfram-mathematica - 如何存储最小化的输出

转载 作者:行者123 更新时间:2023-12-04 08:04:09 25 4
gpt4 key购买 nike

我在 Mathematica 中使用最小化最小化了一个多变量函数。它工作正常。我想将最小化的输出传递给变量以便提前使用它们。但我错过了一些东西。看看吧(代码前面定义了Etet函数,没问题)。

J1 = 1; J2 = 1; D1 = 0.1; D2 = 0;
list1 = {θ1n, θ2n, θ3n, θ4n, ϕ1n, ϕ2n, ϕ3n, ϕ4n};
{Emin, list1} = Minimize[Etet[J1, J2, D1, D2, θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4],
{θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4}];

当我输入时:

 list1

我得到:

{θ1 -> -2.35619, θ2 -> 0.785398, θ3 -> -2.35619, θ4 -> -0.785398,
ϕ1 -> 4.71239, ϕ2 -> 1.89763*10^-8, ϕ3 -> 1.5708, ϕ4 -> -2.75641*10^-8}

然而,值 -2.35619 实际上并未存储在 θ1 等中。

我怎样才能改变这个?

最佳答案

您可以使用ReplaceAll (/.)

θ1 = θ1 /. list1

或者一次全部

Clear[θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4]

J1 = 1; J2 = 1; D1 = 0.1; D2 = 0;

{Emin, list1} = Minimize[Etet[J1, J2, D1, D2, θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4],
{θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4}];

{θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4} = {θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4} /. list1

而且更整洁

Clear[θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4]

J1 = 1; J2 = 1; D1 = 0.1; D2 = 0;

vars = {θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4};

{Emin, list1} = Minimize[Etet[J1, J2, D1, D2, θ1, θ2, θ3, θ4, ϕ1, ϕ2, ϕ3, ϕ4], vars ];

With[{vars = vars}, vars = vars /. list1]

θ1

-2.35619

With 需要将值向下传递给 vars 中的变量。

关于wolfram-mathematica - 如何存储最小化的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55703930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com