主要内容

一体化

这个例子展示了如何使用symbol Math Toolbox™计算定积分。

定积分

证明定积分 一个 b f x d x f x 年代 n x π 2 3. π 2 是0。

信谊xint (sin (x),π/ 2,3 *π/ 2)
ans =
                 
                  
                   
                    
                     0
                   
                   
                    信谊(0)
                  
                 

极大值和极小值的定积分

最大化 F 一个 - 一个 一个 一个 x x / 一个 d x 一个 0 ,首先定义符号变量并假设 一个 0

信谊一个x假设(> = 0);

然后,定义函数最大化:

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

1 - 2 2 如果 一个 1 2 一个 一个 2 因为 1 - 一个 2 因为 一个 2 1 一个 4 - 1 如果 一个 1 分段(= = 1,信谊(1)- sin(信谊(2))/ 2,一个~ = 1 (2 * * (sin (^ 2) * cos(信谊(1))^ 2 * cos (^ 2) * sin(信谊(1))))/ (^ 4 - 1))

注意这里的特殊情况 一个 1 .为了使计算更容易,使用assumeAlso忽略这种可能性(稍后再检查) 一个 1 不是最大值):

assumeAlso (~ = 1);F = int (sin (x *) * sin (x / a), x - a, a)
F =

2 一个 一个 2 因为 1 - 一个 2 因为 一个 2 1 一个 4 - 1 (2 * A *(SIN(A ^ 2)* cos(sym(1)) - a ^ 2 * cos(a ^ 2)* sin(sym(1))))/(a ^ 4 - 1)

创造一个情节 F 检查它的形状:

fplot (F, 10 [0])

图中包含一个坐标轴。坐标轴包含一个functionline类型的对象。

使用diff求导数 F 关于 一个

Fa = diff (F)
Fa =

2 σ. 1 一个 4 - 1 + 2 一个 2 一个 因为 一个 2 因为 1 - 2 一个 因为 一个 2 1 + 2 一个 3. 一个 2 1 一个 4 - 1 - 8 一个 4 σ. 1 一个 4 - 1 2 在哪里 σ. 1 一个 2 因为 1 - 一个 2 因为 一个 2 1 (2 *(SIN(A ^ 2)* COS(sym(1)) - a ^ 2 * cos(a ^ 2)* sin(sym(1))))/(a ^ 4 - 1)+(2* a *(2 * a * cos(a ^ 2)* cos(sym(1)) - 2 * a * cos(a ^ 2)* sin(sym(1))+ 2 * a ^ 3 * sin(A ^ 2)* SIN(SYM(1))))/(a ^ 4 - 1) - (8 * a ^ 4 *(sin(a ^ 2)* cos(sym(1)) - a ^ 2 *Cos(a ^ 2)* sin(sym(1))))/(a ^ 4 - 1)^ 2

的零 F 一个 的局部极值是 F

持有fplot (Fa, 10[0])网格

图中包含一个坐标轴。坐标轴包含2个functionline类型的对象。

最大值在1到2之间。使用vpasolve找到零的近似值 F 一个 在这个时间间隔:

a_max = vpasolve (Fa, [1,2])
a_max =
                 
                  
                   
                    
                     1.5782881585233198075558845180583
                   
                   
                    vpa(“1.5782881585233198075558845180583”)
                  
                 

使用潜艇求积分的最大值:

a_max F_max =潜艇(F)
F_max =
                 
                  
                   
                    
                     
                      
                       
                        0.3673015252750416958866104169588661811770092
                       
                       
                       
                        
                         
                          因为
                        
                        
                         
                         
                          
                           
                            1
                          
                         
                         
                        
                       
                      
                     
                     
                      +
                     
                      
                       
                        1.2020566879911789986062956284113
                       
                       
                       
                        
                         
                        
                        
                         
                         
                          
                           
                            1
                          
                         
                         
                        
                       
                      
                     
                    
                   
                   
                    vpa (0.36730152527504169588661811770092) * cos(信谊(1))+ vpa(1.2020566879911789986062956284113) *罪(信谊(1))
                  
                 

结果仍然包含精确的数字 1 因为 1 .使用vpa用数值近似代替:

vpa (F_max)
ans =
                 
                  
                   
                    
                     1.2099496860938456039155811226054
                   
                   
                    vpa(“1.2099496860938456039155811226054”)
                  
                 

检查排除的情况 一个 1 不会导致更大的值:

vpa (int (sin (x) * sin (x), x, 1, 1))
ans =
                 
                  
                   
                    
                     0.54535128658715915230199006704413
                   
                   
                    vpa(“0.54535128658715915230199006704413”)
                  
                 

多个集成

高维区域的数值积分具有特殊的功能:

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

高维符号积分没有这样的特殊函数。用嵌套的一维积分代替:

信谊xyint (int (x ^ 2 y ^ 2, y, 0, 1), x, 0, 1)
ans =
                 
                  
                   
                    
                     0
                   
                   
                    信谊(0)
                  
                 

线积分

定义向量场F在3 d空间:

信谊xyzF(x,y,z) = [x^2*y*z, x*y, 2*y*z];

接下来,定义一条曲线:

信谊t用户体验(t) =罪(t);uy (t) = t ^ 2 t;是乌斯(t) = t;

的线积分F沿着曲线u被定义为 f d u f u x t u y t u z t d u 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 因为 1 4 - 因为 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.20200778585035447453044423341349”)