• MATLAB【函数和图像】


    目录

    一、常用的数学函数

    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.将函数变量定义为符号变量

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

    2.使用function命令

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

    3.使用匿名函数

    fx=@(x) (x+10)

     二、分段函数的表示

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

    1. function y= w(x)
    2. if x<0
    3. y=x+2;
    4. else
    5. y=x-3;
    6. end
    7. end

     三、使用函数绘制图形

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

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

     

    2.绘制取整函数的图像

    1. clear
    2. syms x
    3. y=@(x) floor(x);
    4. fplot(y,[-5,5])
    5. hold on
    6. xlabel('x')
    7. ylabel('y')

    3.绘制分段函数 

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

     4.绘制正态分布曲线

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

    5.绘制符号函数 

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

    6.绘制正负数的立方根 

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

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

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

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

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

    1. clear;
    2. syms x
    3. y=tan(x);
    4. y=inline(y);
    5. ezplot(y,[-2*pi,2*pi]);

     

    8.如何绘制隐函数 

    ezplot还可以绘制隐函数图像 

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

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

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

      

    如何设置ezplot的格式

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

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

     

    9.使用meshgrid绘制多个函数

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

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

     10.求反函数

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

    1. syms x
    2. y=x^2;
    3. z=finverse(y);
    4. z

     11.求复合函数

    1.使用compose求复合函数

    g=compose(f,g)

    1. syms x
    2. y=x^2;
    3. g=sin(x);
    4. z=compose(y,g);

     

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

     

    2.使用subs求复合函数 

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

     12.含有调制曲线的图像

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

    1. clc
    2. clear
    3. syms x
    4. y=sin(pi*x)*exp(-x);
    5. x=-5:0.01:5;
    6. y=inline(y);
    7. plot(x,y(x),x,exp(-x),x,-exp(-x),'LineWidth',2);

     

     13.自动求解方程

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

  • 相关阅读:
    从零开始学Graph Database:什么是图
    js基础笔记学习254事件的捕获2
    【pytorch 中 torch.max 和 torch.argmax 的区别】
    公司电脑强制休眠的3种解决方案
    MyBatis-Plus排除不必要的字段
    activiti会签
    自由程序员想接私活?那你还不得知道这几个接单平台!最后一个就是宝藏!!
    win10自带SSH免密登录Linux
    LeetCode 287. 寻找重复数(java实现)
    编程基础 —— 链表
  • 原文地址:https://blog.csdn.net/weixin_62684026/article/details/125491915