集成

此示例显示如何使用符号数学工具箱™计算确定的积分。

确定积分

表明明确的积分 一种 B. F X D. X 为了 F X = S. 一世 N X [ π 2 3. π 2 ] 是0。

Syms.Xint(sin(x),pi / 2,3 * pi / 2)
ans =.
                 
                  
                   
                    
                     0.
                   
                   
                    SYM(0)
                  
                 

Maxima和Minima的明确积分

最大化 F 一种 = - 一种 一种 一种 X X / 一种 D. X 为了 一种 0. 首先,定义符号变量并假设 一种 0.

Syms.一种X假设(a> = 0);

然后,定义最大化的函数:

f = int(sin(a * x)* sin(x / a),x,-a,a)
f =

{ 1 - 2 2 如果 一种 = 1 2 一种 一种 2 COS. 1 - 一种 2 COS. 一种 2 1 一种 4. - 1 如果 一种 1 分段(a == 1,sym(1) - sin(sym(2))/ 2,a〜= 1,(2 * a *(sin(a ^ 2)* cos(sym(1)) - a ^2 * cos(a ^ 2)* sin(sym(1))))/(a ^ 4 - 1))

注意这里的特例 一种 = 1 。使计算更容易,使用假定忽略这种可能性(并稍后检查) 一种 = 1 不是最大值):

假定(a = 1);f = int(sin(a * x)* sin(x / a),x,-a,a)
f =

2 一种 一种 2 COS. 1 - 一种 2 COS. 一种 2 1 一种 4. - 1 (2 * * (sin (^ 2) * cos(信谊(1))^ 2 * cos (^ 2) * sin(信谊(1))))/ (^ 4 - 1)

创建一个 F 检查其形状:

fplot(f,[0 10])

找到衍生物 F 关于 一种

Fa = Diff(F,A)
FA =

2 σ. 1 一种 4. - 1 + 2 一种 2 一种 COS. 一种 2 COS. 1 - 2 一种 COS. 一种 2 1 + 2 一种 3. 一种 2 1 一种 4. - 1 - 8. 一种 4. σ. 1 一种 4. - 1 2 在哪里 σ. 1 = 一种 2 COS. 1 - 一种 2 COS. 一种 2 1 (2 * (sin (^ 2) * cos(信谊(1))^ 2 * cos (^ 2) * sin(信谊(1))))/ (^ 4 - 1)+ (2 * * (2 * * cos (^ 2) * cos(信谊(1))- 2 * * cos (^ 2) * sin(信谊(1))+ 2 * 3 ^ *罪罪(^ 2)*(信谊(1))))/ (^ 4 - 1)- (8 * 4 ^ * (sin (^ 2) * cos(信谊(1))^ 2 * cos (^ 2) * sin(信谊(1))))/ (^ 4 - 1)^ 2

零的零 F 一种 是当地的极值 F

抓住Fplot(FA,[0 10])网格

最大值在1到2.使用之间vpasolve.求的零点的近似值 F 一种 在这个间隔:

a_max = vpasolve(fa,a,[1,2])
a_max =
                 
                  
                   
                    
                     1.57828815852331980755588451855888451805833.
                   
                   
                    VPA('1.5782885523319807558845180583')
                  
                 

subs要获得积分的最大值:

f_max = subs(f,a,a_max)
f_max =
                 
                  
                   
                    
                     
                      
                       
                        0.36730152527504169588661811770092
                       
                       
                       
                        
                         
                          COS.
                        
                        
                         
                         
                          
                           
                            1
                          
                         
                         
                        
                       
                      
                     
                     
                      +
                     
                      
                       
                        1.2020566879911789986062956284113
                       
                       
                       
                        
                         
                        
                        
                         
                         
                          
                           
                            1
                          
                         
                         
                        
                       
                      
                     
                    
                   
                   
                    VPA('0.367301525275041695886181416958861811770092')* cos(sym(1))+ VPA('1.20205668799117899860629178411113')* sin(sym(1))
                  
                 

结果仍然包含精确的数字 1 COS. 1 。用VPA.要通过数值近似替换这些:

VPA(f_max)
ans =.
                 
                  
                   
                    
                     1.2099496860938456039155811226054
                   
                   
                    VPA('1.20994968609384560391558112266054')
                  
                 

检查排除案例 一种 = 1 不会导致更大的值:

VPA(int(sin(x)* sin(x),x,-1,1)))
ans =.
                 
                  
                   
                    
                     0.54535128658715915230199006704413.
                   
                   
                    VPA('0.545351286587159152301990067044413')
                  
                 

多集成

高尺寸区域的数值集成具有特殊功能:

积分2(@(x,y)x。^ 2-y。^ 2,0,1,0,1)
ans = 4.0127e-19

没有这样的特殊功能,可以进行高维符号集成。使用嵌套的一维积分(而不是:

Syms.Xyint(int(x ^ 2-y ^ 2,y,0,1),x,0,1)
ans =.
                 
                  
                   
                    
                     0.
                   
                   
                    SYM(0)
                  
                 

线路积分

定义矢量字段F在3D空间中:

Syms.XyZ.f(x,y,z)= [x ^ 2 * y * z,x * y,2 * y * z];

接下来,定义曲线:

Syms.T.UX(t)= sin(t);UY(t)= t ^ 2-t;UZ(t)= t;

线路积分F沿着曲线被定义为 F D. = F X T. y T. Z. T. D. D. T. D. T. ,在那里 在右侧表示标量产品。

使用此定义计算积分的线路 T. [ 0. 1 ]

f_int = int(f(ux,uy,uz)* diff([ux; uy; uy; uz],t),t,0,1)
f_int =.

19. COS. 1 4. - COS. 3. 108 - 12. 1 + 3. 27. + 395. 54. (SYM(19)* COS(SYM(1)))/ 4 - COS(SYM(3))/ 108 - SYM(12)* SIN(SYM(1))+ SIN(SYM(3))/ 27 +SYM(395/54)

得到这个精确结果的数值近似:

VPA(F_INT)
ans =.
                 
                  
                   
                    
                     
                      -
                     
                      0.20200778585035447453044423341349
                    
                   
                   
                    -VPA('0.202007785503544745304423341349')