目录

一、常用的数学函数

1.函数表示的几种写法 

1.将函数变量定义为符号变量

2.使用function命令

3.使用匿名函数

 二、分段函数的表示

 三、使用函数绘制图形

1.绘制绝对值的函数图像

2.绘制取整函数的图像

3.绘制分段函数 

 4.绘制正态分布曲线

5.绘制符号函数 

6.绘制正负数的立方根 

7.如何绘制含有无穷的图

8.如何绘制隐函数 

如何设置ezplot的格式​​​​​​​

9.使用meshgrid绘制多个函数

 10.求反函数

 11.求复合函数

1.使用compose求复合函数

2.使用subs求复合函数 

 12.含有调制曲线的图像

 13.自动求解方程


一、常用的数学函数

名  称

含  义

名  称

含  义

名  称

含  义

abs

绝对值

asin

反正弦

coth

双曲余切

exp

指数

acos

反余弦

asinh

反双曲正弦

log

对数

atan

反正切

acosh

反双曲余弦

log10

10为底对数

acot

反余切

atanh

反双曲正切

log2

2为底对数

sec

正割

acoth

反双曲余切

pow2

2次幂

csc

余割

sech

双曲正割

sqrt

平方根

asec

反正割

csch

双曲余割

sin

正弦

acsc

反余割

asech

反双曲正割

cos

余弦

sinh

双曲正弦

acsch

反双曲余割

tan

正切

cosh

双曲余弦

cot

余切

tanh

双曲正切

简单举例

 

1.函数表示的几种写法 

1.将函数变量定义为符号变量

syms x
fx=sqrt(1+x^2);

2.使用function命令

function f=myfun(x)
f=(3-2.*x).^2.*x;

3.使用匿名函数

fx=@(x) (x+10)

 二、分段函数的表示

使用if-else判断能够帮助我们实现分段函数

function y= w(x)
  if x<0
      y=x+2;
  else
      y=x-3;
  end
end

 三、使用函数绘制图形

1.绘制绝对值的函数图像

#清屏
clear
#将我们的x设置为变量
syms x 
#使用匿名方法创建我们的y
y=@(x) abs(x);
#使用fplot,第一个参数为我们的方法,第二个参数为我们的自变量x的范围
fplot(y,[-5,5])
#保持我们当前的图不被重置
hold on
#设置我们的x轴标签
xlabel('x')
#设置我们的y轴标签
ylabel('y')
#设置我们的整张图的标签
title('y|x|')

 

2.绘制取整函数的图像

clear
syms x 
y=@(x) floor(x);
fplot(y,[-5,5])
hold on
xlabel('x')
ylabel('y')

3.绘制分段函数 

clear
syms x y
y1=@(x) 2*sqrt(x);
#第三个参数为我们的绘制图线的样式
fplot(y1,[0,1], '-b')
hold on
y2=@(x) 1+x;
fplot(y2,[1,5], '--og')
#设置我们的图例
legend('y=2*sqrt(x) ', 'y=1+x');
title('分段函数')
xlabel('x')
ylabel('y')
#设置我们的坐标轴的范围,第一个参数和第二个参数表示x轴的范围
#第三个参数和第四个参数表示y轴的范围
axis([0,5,0,5])

 4.绘制正态分布曲线

clear
x=-2:0.01:2;
y=(1/sqrt(2*pi))*exp(-x.^2/2);
#plot函数将我们的x,y传递进去就能够绘图
plot(x,y)
title('正态分布曲线')

5.绘制符号函数 

clear
#设置我们x轴的最值
xm=5;
#设置我们的x取遍从最小值到最大值,并且间隔为0.01
x=-xm:0.01:xm;
#sign为我们符号函数
y=sign(x);
#将我们x==0时置空,就会形成断点
y(x==0)=nan;
figure
#画图,并且设置我们的线的宽度为2
plot(x,y,'LineWidth',2)
hold on
#绘制我们0,1处和0,-1处的两个空心点
plot(0,1,'o',0,-1,'o');
#在我们的原点处点上一个点
plot(0,0,'.','MarkerSize',24)
#给标题命名
title('符号函数','FontSize',16)
#设置我们的x轴标签和y轴标签
xlabel('\itx','FontSize',16)
ylabel('\ity','FontSize',16)
#绘制网格线
grid on
axis([-xm,xm,-2,2])

6.绘制正负数的立方根 

clear
%设置x的max范围                                  
xm=5;
%设置我们的x的范围为从-xm到xm,间距为0.01                                  
x=-xm:0.01:xm;   
%用对向量中每一个元素的乘法的方式让y=x的三次方根                      
y=x.^(1/3);  
%绘图                          
figure  
%创建两行一列的图标,并且将我们下面要画的图画在第一张图表                               
subplot(2,1,1)   
%使用plot方法,并且将我们的对应的x,y值传入,并且设置我们的画的线的宽度为2                      
plot(x,y,'LineWidth',2)     
%绘制我们的网格线           
grid on   
%给我们的图表打上标题                             
title('负数不正确的开立方','FontSize',16)
%分别根我们的x,y轴打上标题
xlabel('\itx','FontSize',16)           
ylabel('\ity','FontSize',16)    
%因为我们在图1中发现我们的立方根的负数范围不正确,
%所以我们需要单独将我们的符号取出来,然后乘以我们的原来函数的绝对值       
y=sign(x).*abs(x).^(1/3);              
subplot(2,1,2)                                
plot(x,y,'LineWidth',2)               
grid on                              
title('负数正确的开立方','FontSize',16) 
xlabel('\itx','FontSize',16)          
ylabel('\ity','FontSize',16)           

7.如何绘制含有无穷的图

 如果我们直接这样绘制我们的tan(x)函数就会出现这样的情况

clear;
x=-5:0.01:5;
y=tan(x);
plot(x,y,'LineWidth',2)

使用ezplot,将我们的公式传入, 再传入我们的范围,就能够把图画出来。

clear;
syms x
y=tan(x);
y=inline(y);
ezplot(y,[-2*pi,2*pi]);

 

8.如何绘制隐函数 

ezplot还可以绘制隐函数图像 

clear;
syms x
ezplot("x^2/4+y^2/6=1");

使用axis([x轴下线,x轴上限,y轴下限,y轴上限]) 可以指定我们坐标轴的范围

axis("equal")可以让我们的坐标轴的x,y轴等距

  

如何设置ezplot的格式

将我们的ezplot之后的结果传递给一个参数,然后使用我们的set来设定我们的ezplot画的图的类型

clear;
syms x
h=ezplot("x^2/4+y^2/6=1");
set(h,'color','r','LineWidth',2);

 

9.使用meshgrid绘制多个函数

使用meshgrid能够让我们的x,y中的数实现一一对应,采用meshgrid能够让我们同时绘制多条曲线

%对数函数
clear                                  %清除变量
xm=3;                                %最大自变量
x=0.1:0.1:xm;                    %自变量向量
a=[1/exp(1),0.5:0.5:2,exp(1),10];   %底数向量
[A,X]=meshgrid(a,x);      %底数和自变量矩阵
Y=log(X)./log(A);              %对数函数矩阵
figure                                 %创建图形窗口
plot(x,Y,'LineWidth',2)       %画函数曲线族
title('对数函数曲线族','FontSize',16)  %加标题
xlabel('\itx','FontSize',16)           %加横坐标
ylabel('\ity','FontSize',16)           %加纵坐标
grid on                                %加网格
legend([repmat('\ita\rm=',length(a),1),num2str(a')],4)%复杂图例
hold on                                %保持属性
plot(x,-log(x),'*',x,log(x),'+',x,log10(x),'x')%补画自然对数和常用对数曲线

 10.求反函数

使用y=finverse(y)即可以让y变成自身的反函数 

syms x
y=x^2;
z=finverse(y);
z

 11.求复合函数

1.使用compose求复合函数

g=compose(f,g)

syms x
y=x^2;
g=sin(x);
z=compose(y,g);

 

syms x z
f=sin(x);
g=x^2;
compose(g,f)  %返回复合函数g(f(y))
compose(g,f,x,z)  %返回自变量是z

 

2.使用subs求复合函数 

syms x z
f=sin(x);
g=x^2;
subs(g,f)  %返回复合函数f(g(y))

 12.含有调制曲线的图像

在一些周期性函数前面,我们可以乘上一些函数来绘制我们的调制曲线,让我们的函数能够被约束在两条调制曲线中。在下面的代码中我们使用了e^(-x)作为我们的调制曲线

clc
clear
syms x
y=sin(pi*x)*exp(-x);
x=-5:0.01:5;
y=inline(y);
plot(x,y(x),x,exp(-x),x,-exp(-x),'LineWidth',2);

 

 13.自动求解方程

syms x a b c                      %定义符号变量
x1=-2; y1=0; x2=0;y2=1; x3=1; y3=5;      %3点的横、纵坐标
y=a*x^2+b*x+c;               %二次符号函数
s1=subs(y,x,x1)-y1                     %第1个代数方程
s2=subs(y,x,x2)-y2                     %第2个代数方程
s3=subs(y,x,x3)-y3                     %第3个代数方程
[a,b,c]=solve(s1,s2,s3)      

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐