分析绘图与符号数学工具箱

fplotfamily接受符号表达式和方程作为输入,使解析绘图变得容易,而不需要显式地生成数值数据。

此示例具有以下功能

  • fplot

  • fplot3

  • fsurf

  • fcontour

  • fmesh

  • fimplicit

  • fimplicit3

交互式地绘制一个变量的函数

信谊xfplot (sin (exp (x)))

fplot ([sin (x), cos (x)谭(x)))

生成一个符号表达式的隐式图

信谊xyr = 1:10;fimplicit (x ^ 2 + y ^ 2 = = r)

参数化探索多个功能潜艇

信谊x一个表达=罪(exp (x / a))
表达=
                 
                  
                   
                    
                     
                    
                    
                     
                      (
                     
                      
                       
                        
                         
                          e
                        
                        
                         
                          
                           
                            x
                           
                            /
                           
                            一个
                          
                         
                        
                       
                      
                     
                     
                      )
                    
                   
                   
                    sin (exp (x / a))
                  
                 
fplot(潜艇(表达式,[1、2、4]))传说显示

混合符号和数字技术来开发数学模型

探索样条逼近 f ( x ) = x * e x p ( - x ) * 年代 n ( 5 * x ) - 2

信谊f (x)f(x) = x*exp(-x)*sin(5*x) -2;x = 0:1/3:3;y =双(潜艇(f, x));fplot (f, [0, 3])情节(x, y,‘* k”,“DisplayName的”,的数据点) fplot(@(x)样条曲线(xs,ys,x),[0 3],“DisplayName的”,“样条interpolant”)举行网格传说显示

探索吉伯斯现象

信谊xn = 5;约= cumsum(罪((1:2:2 * n - 1) * x) / (1:2:2 * n - 1));fplot(约“线宽”,1)

绘制计算结果

使用符号输入,我们可以执行计算并绘制结果。

信谊f (x),假设(> 0);f (x) = * x ^ 2 + ^ 2 * x + 2 *倍根号(a)
f (x) =
                 
                  
                   
                    
                     
                      
                       
                        一个
                       
                       
                       
                        
                         
                          x
                        
                        
                         
                          2
                        
                       
                      
                     
                     
                      +
                     
                      
                       
                        
                         
                          一个
                        
                        
                         
                          2
                        
                       
                       
                       
                       
                        x
                      
                     
                     
                      +
                     
                      
                       
                        2
                       
                       
                       
                        
                         
                          一个
                        
                       
                      
                     
                    
                   
                   
                    a*x^2 + a^2*x + 2*√(a)
                  
                 
x_min =求解(diff(f,x), x)
x_min =

- 一个 2 ——/ 2

x_min fplot (f (a),[0 5)包含“一个”标题" f的最小值取决于a "

假设(一个,“清楚”)

可视化级数和求和

信谊xt6 =泰勒(cos (x), x,“秩序”6)
t6 =

x 4 24 - x 2 2 + 1 x^4/24 - x^2/2 + 1

t8 =泰勒(cos (x), x,“秩序”,8)
t8 =

- x 6 720 + x 4 24 - x 2 2 + 1 x^6/720 + x^4/24 - x^2/2 + 1

fplot ([cos (x) t6 t8]) xlim ([4 4]) ylim([-1.5, 1.5])标题'6阶和8阶泰勒级数逼近cos(x)'传说显示

研究函数及其积分和导数

一些符号表达式不能转换成MATLAB函数。

信谊xf = x ^ x
f =
                 
                  
                   
                    
                     
                      
                       x
                     
                     
                      
                       x
                     
                    
                   
                   
                    x ^
                  
                 
int (f (x)
ans =

· x x d x int (x ^ x, x)

差异(f (x)
ans =
                 
                  
                   
                    
                     
                      
                       
                        x
                       
                       
                       
                        
                         
                          x
                        
                        
                         
                          
                           
                            x
                           
                            -
                           
                            1
                          
                         
                        
                       
                      
                     
                     
                      +
                     
                      
                       
                        
                         
                          x
                        
                        
                         
                          x
                        
                       
                       
                       
                       
                        
                         
                          日志
                        
                        
                         
                          (
                         
                          
                           
                            x
                          
                         
                         
                          )
                        
                       
                      
                     
                    
                   
                   
                    x*x^(x - 1) + x^x*log(x)
                  
                 
fplot([f, int(f,x), diff(f,x)],[0 2])图例显示

在没有显式数值数据的情况下生成参数曲线

曲线 ( x ( t ) , y ( t ) ) ( x ( t ) , y ( t ) , z ( t ) ) 可以用fplotfplot3(就像情节plot3数值资料):

信谊tfplot3 (sin (t) - t / 2,因为(t) t ^ 3,“——”,“线宽”,2.5)视图(45 [-45])

生成的表面 z = f ( x , y ) 没有meshgrid

信谊xyfsurf (sin (x) +罪(y)——(x ^ 2 + y ^ 2) / 20日“ShowContours”,“上”)设置(camlight“颜色”,0.5 0.5 1);集(camlight (“左”),“颜色”, [1 0.6 0.6]);集(camlight (“左”),“颜色”, [1 0.6 0.6]);集(camlight (“对”),“颜色”, [0.8 0.8 0.6]);材料闪亮的视图(-19年56)

利用解析导数生成数值流线meshgrid

信谊xyu = diff (diff (sin (x ^ 2 + y ^ 2)))
u =
                 
                  
                   
                    
                     
                      
                       
                        2
                       
                       
                       
                        
                         
                          因为
                        
                        
                         
                          (
                         
                          
                           
                            
                             
                              
                               
                                x
                              
                              
                               
                                2
                              
                             
                             
                              +
                             
                              
                               
                                y
                              
                              
                               
                                2
                              
                             
                            
                           
                          
                         
                         
                          )
                        
                       
                      
                     
                     
                      -
                     
                      
                       
                        4
                       
                       
                       
                        
                         
                          x
                        
                        
                         
                          2
                        
                       
                       
                       
                       
                        
                         
                        
                        
                         
                          (
                         
                          
                           
                            
                             
                              
                               
                                x
                              
                              
                               
                                2
                              
                             
                             
                              +
                             
                              
                               
                                y
                              
                              
                               
                                2
                              
                             
                            
                           
                          
                         
                         
                          )
                        
                       
                      
                     
                    
                   
                   
                    2*cos(x^2 + y^2) - 4*x^2*sin(x^2 + y^2)
                  
                 
v = diff (diff (cos (x ^ 2 + y ^ 2)))
v =
                 
                  
                   
                    
                     
                      -
                     
                      
                       
                        2
                       
                       
                       
                        
                         
                        
                        
                         
                          (
                         
                          
                           
                            
                             
                              
                               
                                x
                              
                              
                               
                                2
                              
                             
                             
                              +
                             
                              
                               
                                y
                              
                              
                               
                                2
                              
                             
                            
                           
                          
                         
                         
                          )
                        
                       
                      
                     
                     
                      -
                     
                      
                       
                        4
                       
                       
                       
                        
                         
                          x
                        
                        
                         
                          2
                        
                       
                       
                       
                       
                        
                         
                          因为
                        
                        
                         
                          (
                         
                          
                           
                            
                             
                              
                               
                                x
                              
                              
                               
                                2
                              
                             
                             
                              +
                             
                              
                               
                                y
                              
                              
                               
                                2
                              
                             
                            
                           
                          
                         
                         
                          )
                        
                       
                      
                     
                    
                   
                   
                    - 2*sin(x^2 + y^2) - 4*x^2*cos(x^2 + y^2)
                  
                 
[X, Y] = meshgrid(-3:.1:3,-2:.1:2);U = subs(U, [x, y], {x, y});V = subs(V, [x, y], {x, y});startx = 3:0.1:3;starty = 0(大小(startx));h =简化(X, Y, U, V, X, Y);i = 1:长度(h) 1 h (i)。颜色= [rand() rand() rand() rand()];结束

自适应可视化

就像fplot,fsurf在需要的地方更密集地计算符号表达式,以更精确地显示曲线区域和渐近区域。

fsurf(log(x) + exp(y), [-2])

创建隐式曲面

绘制隐式曲面 1 / x 2 - 1 / y 2 + 1 / z 2 = 0 。指定一个输出,使fimplicit3返回plot对象。

信谊xyzf = 1/x^2 - 1/y^2 + 1/z^2;fimplicit3 (f)

可视化多元表面

不像象征性的功能(如int,diff,解决),fsurf不允许指定变量的顺序。要设置顺序,请使用符号函数:

信谊f (t)x (u, v)y (u, v)z (u, v)f (t) =罪(t) * exp (- t ^ 2/3) + 1.5;x (u, v) = u
x (u, v) =
                 
                  
                   
                    
                     u
                   
                   
                    u
                  
                 
y (u, v) = f (u) * sin (v)
y (u, v) =

( v ) e - u 2 3. ( u ) + 3. 2 罪(v) * (exp ((- u ^ 2/3)) * sin (u) +符号(3/2))

z (u, v) = f (u) * cos (v)
z (u, v) =

因为 ( v ) e - u 2 3. ( u ) + 3. 2 因为(v) * (exp ((- u ^ 2/3)) *罪(u) +符号(3/2))

fsurf(x,y,z,[-5 5.1 0 2*pi])

使用fmesh对于3D网格图

绘制参数化网格

x = r * c o 年代 ( 年代 ) * 年代 n ( t ) y = r * 年代 n ( 年代 ) * 年代 n ( t ) z = r * c o 年代 ( t )

在哪里 r = 8 + 年代 n ( 7 * 年代 + 5 * t )

信谊年代tr = 8 + sin(7*s + 5*t);x = r * cos (s) * sin (t);y = r * sin (s) * sin (t);z = r * cos (t);fmesh(x, y, z, [0 2*pi 0 pi],“线宽”2)轴平等的

生成符号表达式或方程的等高线图

信谊xyg (x, y)g (x, y) = x ^ 3 - 4 * x - y ^ 2
g (x, y) =
                 
                  
                   
                    
                     
                      
                       
                        x
                      
                      
                       
                        3.
                      
                     
                     
                      -
                     
                      
                       
                        4
                       
                       
                       
                        x
                      
                     
                     
                      -
                     
                      
                       
                        y
                      
                      
                       
                        2
                      
                     
                    
                   
                   
                    x^3 - 4*x - y^2
                  
                 
fcontour(g,[-3 -4],“LevelList”六)标题“一些椭圆曲线”