Main Content

vpaintegral

使用变量精度的数值集成

Description

例子

vpaintegral((F,,,,一个,,,,b数值近似FFrom一个b。默认变量XFis found bySymvar

vpaintegral((F,,,,[a b])等于vpaintegral((F,,,,一个,,,,b)

例子

vpaintegral((F,,,,X,,,,一个,,,,bperforms numerical integration using the integration variableX

例子

vpaintegral((___,,,,名称,价值uses additional options specified by one or more名称,价值pair arguments.

Examples

数值整合符号表达式

数值集成the symbolic expressionX^2From12

syms x vpaintegral(x^2, 1, 2)
ANS = 2.33333

数值整合符号函数

数值整合符号函数y(X)=X2From12

syms y(x) y(x) = x^2; vpaintegral(y, 1, 2)
ANS = 2.33333

High-Precision Numerical Integration

vpaintegraluses variable-precision arithmetic while the MATLAB®不可缺少的功能使用双精度算术。使用公差的默认值,vpaintegral可以处理导致MATLAB的值不可缺少的功能以溢出或底流量。

整合贝塞利(5,25*u)。*exp(-u*25)通过两者使用不可缺少的一个ndvpaintegral。这不可缺少的功能返回一个nd issues a warning whilevpaintegral返回正确的结果。

syms u x f = besseli(5,25*x)。*exp(-x*25);fun = @(u)besseli(5,25*u)。*exp(-u*25);使用integral = integral(fun,0,30)使用vpaintegral = vpaintegral(f,0,30)
Warning: Infinite or Not-a-Number value encountered. usingIntegral = NaN usingVpaintegral = 0.688424

使用公差提高精度

数字Function does not affectvpaintegral。相反,提高精度VPA在teral通过降低集成公差。相反,通过增加公差来提高数值整合的速度。控制使用的公差vpaintegral通过改变相对容忍度reltol一个nd absolute toleranceAbstol,通过条件影响整合

| - | max (( 一个 b s t o l ,,,, | | · r e l t o l 在哪里 = Calculated Integral = Exact Integral

数值集成besselj(0,x)From0pi,,,,至32significant figures by settingreltol10^(-32)。关掉Abstol通过将其设置为0

syms x vpaintegral(besselj(0,x), [0 pi], 'RelTol', 1e-32, 'AbsTol', 0)
一个ns = 1.3475263146739901712314731279612

使用较低的公差值以速度成本提高了精度。

使用航点的复杂路径集成

整合1/(2*z-1)从三角路径上01+1i1-1i回到0通过指定路径点。

syms z vpaintegral(1/(2*z-1), [0 0], 'Waypoints', [1+1i 1-1i])
一个ns = - 8.67362e-19 - 3.14159i

reversing the direction of the integral, by changing the order of the waypoints and exchanging the limits, changes the sign of the result.

多个积分

通过嵌套调用来执行多个集成vpaintegral。整合

- 1 2 1 3 X y d X d y

Syms X Y Vpaintegral(vpaintegral(x*y,x,[1 3]),y,[-1 2])
一个ns = 6.0

集成的限制可以是符号表达式或函数。整合三角形区域0≤X≤1一个nd| y |通过指定集成的限制y按照X

vpaintegral(vpaintegral(sin(x-y)/(x-y),y,[-x x]),x,[0 1])
一个ns = 0.89734

输入参数

collapse all

表达式或函数要集成,指定为符号数,变量,矢量,矩阵,多维数组,函数或表达式。

集成的限制,,,,specified as a list of two numbers, symbolic numbers, symbolic variables, symbolic functions, or symbolic expressions.

集成变量,指定为符号变量。如果X未指定,集成变量由Symvar

名称值参数

Specify optional pairs of arguments asname1 = value1,...,namen = valuen, 在哪里姓名是参数名称和Valueis the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

在R2021a之前,请使用逗号分隔每个名称和值,并附上姓名用引号。

Example:“ Reltol”,1E-20

相对误差耐性,,,,specified as a positive real number. The default is1E-6。这reltol参数仅在 r e l t o l · | | > 一个 b s t o l , 在哪里是计算出的积分。在这种情况下,vpaintegral满足条件 | - | r e l t o l · | | , 在哪里是确切的积分值。touse onlyreltol并关闭Abstol, 放Abstol0

Example:1E-8

绝对误差耐性,指定为非负实数。默认值为1E-10Abstoldetermines the accuracy of the integration if 一个 b s t o l > r e l t o l · | | , 在哪里是计算出的积分。在这种情况下,vpaintegral满足条件 | - | 一个 b s t o l , 在哪里是确切的积分值。把关掉Abstol一个nd use onlyreltol, 放Abstol0

Example:1E-12

集成路径,指定为数字的向量,或符号数,表达式或函数的向量。vpaintegral沿着直线路径的顺序集成(从第一个到第二个路点,依此类推),最后从最后一个路点到上限。对于轮廓积分,将相等和上限设置为相等的上限,并使用航点来定义轮廓。

对输入的最大评估,指定为正整数或正符号整数。默认值是10^5。如果the number of evaluations ofFis greater thanmaxFunctionCalls, 然后vpaintegralthrows an error. For unlimited evaluations, setmaxFunctionCalls我nf

tips

  • Ensure that the input is integrable. If the input is not integrable, the output ofvpaintegral是不可预测的。

  • 数字Function does not affectvpaintegral。为了提高精度,请使用reltol一个ndAbstol一个rguments instead.

版本历史记录

在R2016b中引入

也可以看看

|||

话题