gpt4 book ai didi

wolfram-mathematica - NIntegrate无法收敛到不在我的确定积分内的点附近吗?

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

我正在尝试计算一个定积分。我写:

NIntegrate[expression, {x, 0, 1}, WorkingPrecision -> 100]

下面描述“表达式”。添加了WorkingPrecision以帮助解决另一个错误。

我收到一个错误:

"NIntegrate::ncvb: NIntegrate failed to converge to prescribed accuracy after 9 recursive bisections in x near {x} = {<<156>>}. NIntegrate obtained <<157>> and <<160>> for the integral and error estimates. >>"



当我仅查看 near{x} = {<<156>>}时,为什么会收到 0<x<1的错误消息?这个数字两端的尖尖括号是什么意思?

这个表达式真的很长,所以我认为显示它的生成方式会更有意义。这是一个基本版本(某些指数我需要成为变量,但这些是最低的值,但仍然会出现错误) )。
F[n_] := (1 - (1 - F[n-1])^2)^2;
F[0] = x;
Expr[n_]:= (1/(1-F[n]))Integrate[D[F[n],x]*x,{x,x,1}];

集成Expr [3]或更高版本时出现错误。奇怪的是,当我使用常规积分,然后在最后使用//N时,得到的复数为n = 2。

最佳答案

<<156>>并不意味着正在x=156处对积分进行求值。 <<>>称为 Skeleton ,用于指示抑制了较大的输出。从文档中:

Skeleton[n] represents a sequence of n omitted elements in an expression printed with Short or Shallow. The standard print form for Skeleton is <<n>>.



谈到您的积分,这是我得到的错误:

因此,您可以看到此长号在您的情况下被抑制了(取决于您的首选项)。最后一个 >>是一个链接,可将您带到文档中相应的错误消息。

如果您尝试文档中的建议,即增加 MaxRecursion,则最终会收到新的错误 ::slwcon
因此,现在这告诉您 WorkingPrecision太小或您具有奇异性(这是由较低的工作精度引起的)。将 WorkingPrecision增加到 200可得到以下输出:



您可以进一步了解表达式的性质。
num = Numerator@Expr@3;
den = Denominator@Expr@3;
Plot[{num, den}, {x, 0, 1}, WorkingPrecision -> 100, PlotRange -> All]

因此,如果超过0.7欧元,您的表情可能会出现严重的稳定性问题,从而导致奇异之处。它是分子而不是分母,需要高精度才能收敛到正确的值。
num /. x -> 0.99
num /. x -> 0.99`100

Out[1]= -0.015625
Out[2]= 1.2683685178049112809413795626911317545171610885215799438968\
06379991565*10^-14

den /. x -> 0.99
den /. x -> 0.99`100

Out[3]= 1.28786*10^-14
Out[4]= 1.279743968014714505561671861369465844697720803022743298030747945923286\
915425027352809730413954909*10^-14

当您没有足够的精度时,您会在这里看到分子和分母之间的差异,从而导致接近奇异的情况。

关于wolfram-mathematica - NIntegrate无法收敛到不在我的确定积分内的点附近吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7786906/

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