gpt4 book ai didi

wolfram-mathematica - 找到由 Mathematica 中的积分定义的函数的最小值

转载 作者:行者123 更新时间:2023-12-04 00:15:38 24 4
gpt4 key购买 nike

我需要在 [0,1] 上找到函数 f(t) = int g(t,x) dx 的最小值。我在 mathematica 中所做的如下:

f[t_] = NIntegrate[g[t,x],{x,-1,1}]
FindMinimum[f[t],{t,t0}]

然而,mathematica 在第一次尝试时就停止了,因为 NIntegrate 不适用于符号 t。它需要一个特定的值来评估。尽管 Plot[f[t],{t,0,1}] 工作得很好,FindMinimum 在初始点停止。

我不能用 Integrate 替换 NIntegrate,因为函数 g 有点复杂,如果你输入 Integrate,mathematica 就会继续运行......

有什么办法可以解决吗?谢谢!

最佳答案

尝试这个:

In[58]:= g[t_, x_] := t^3 - t + x^2

In[59]:= f[t_?NumericQ] := NIntegrate[g[t, x], {x, -1, 1}]

In[60]:= FindMinimum[f[t], {t, 1}]

Out[60]= {-0.103134, {t -> 0.57735}}

In[61]:= Plot[f[t], {t, 0, 1}]

我对您的代码所做的两个相关更改:
  • := 定义 f而不是 = .当 f 的用户提供了参数的值时,这有效地给出了 f “稍后”的定义。见 SetDelayed .
  • t_?NumericQ 定义 f而不是 t_ .这就是说,t 可以是任何数字(Pi、7、0 等)。但不是任何非数字(t、x、“foo”等)。
  • 关于wolfram-mathematica - 找到由 Mathematica 中的积分定义的函数的最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3474961/

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