【问题答案】
1、用int()函数求定积分,得到的值是精确值,而用integral函数求定积分,得到的值是近似值(数值解)。
2、int()函数常用来计算被积函数的不定积分和定积分,而integral函数常用来计算复杂的被积函数的定积分。
【int和integral求解对比】
例如,计算下列积分:
1)用int()函数求其定积分
>>syms x
>>I=int(x^5*exp(-x)*sin(x),0,+inf)
2)用integral()函数求其定积分
>>fun=@(x)x.^5.*exp(-x).*sin(x)
>>I=integral(fun,0,+Inf,'RelTol',1e-8,'AbsTol',1e-13)
从计算结果来看,integral函数与int函数相比有计算误差
【int函数的语法】
F = int(expr)
计算expr的不定积分。int使用由symvar(expr,1)确定的默认积分变量。如果expr是常数,那么默认的积分变量是x。
F = int(expr,var)
计算expr相对于符号标量变量var的不定积分。
F = int(expr,a,b)
计算expr从a到b的定积分。int使用由symvar(expr,1)确定的默认积分变量。如果expr是一个常数,那么默认的积分变量是x。int(expr,[a,b])等效于int(expr,a,b)。
F = int(expr,var,a,b)
计算expr相对于符号标量变量var从a到b的定积分。int(expr,var,[a,b])等价于int(expr,var,a,b)。
【integral函数的语法】
q = integral(fun,xmin,xmax)
使用全局自适应积分和默认误差容限在 xmin 至 xmax 间以数值形式为函数 fun 求积分。
q = integral(fun,xmin,xmax,Name,Value)
使用一个或多个 Name,Value 对组参数指定其他选项。例如,指定 'WayPoints',后跟实数或复数向量,为要使用的积分器指示特定点。
【本题其他函数与命令的含义】
1、syms。创建符号标量变量和函数,以及矩阵变量和函数
syms var1 ... varN
创建符号标量变量var1。。。类型为sym。用空格分隔不同的变量。此语法将清除以前对var1的所有定义。。。varN。
syms var1 ... varN [n1 ... nM]
创建符号标量变量var1…的数组。。。varN,其中每个数组的大小为n1乘-并包含自动生成的符号标量变量作为其元素。
例如,符号a[1 3]在MATLAB工作空间中创建符号数组a=[a1 a2 a3]和符号标量变量a1、a2和a3。对于多维数组,这些元素的前缀是a,后面跟着元素的索引,使用_作为分隔符,例如a1_3_2。
2、句柄函数@。
函数句柄是一种存储指向函数的关联关系的 MATLAB® 数据类型。间接调用函数使您在调用该函数时无需考虑调用位置。
函数句柄的典型用法包括:
1)将一个函数传递到另一个函数(通常称为复合函数)。例如,将函数传递到 integral 和 fzero 等积分和优化函数。
2)指定回调函数(例如,响应 UI 事件或与数据采集硬件交互的回调)。
3)构造以内联方式定义而非存储在程序文件(匿名函数)中的函数的句柄。
4)从主函数外调用局部函数。
例如,如果您有一个名为 myfunction 的函数,请按如下所示创建一个名为 f 的句柄:
f = @myfunction;
MATLAB求定积分时,int()和integral()的区别在:
1、在精度上是一样的;
2、在书写上有区别,一个代码比较多,另一个代码比较简洁;
例如:求被积函数为1./(x.^3-2*x-5)的定积分
1、用int()求:
syms x
f = 1./(x.^3-2*x-5);
Q = int(f,0,2);
Q =vpa(Q,5)
2、用integral()求:
f = @(x) 1./(x.^3-2*x-5)
Q = integral(@(x)f(x),0,2)
1、int是符号积分。
2、integral是数值积分,在R2012版本以上才支持。
3、int()适用于低版本,但高版本也可以用。
4、integral()适用于高版本