MATLAB 的函数计算与作图

  • 基本初等函数的输入
  • 系统运算与操作函数的输入
  • 函数值的计算
    • 1. 数值计算方式
    • 2. 符号计算方式
      • 2.1 函数:sym
      • 2.2 函数:syms
  • 函数的作图
    • 1. 一般函数 y=f(x) 的作图(二维)
      • 作图基本形式
      • 作多重线
      • 作图的线型和颜色
      • 作图的网格和标记、图例、字号

基本初等函数的输入

MATLAB 中,函数输入的总体原则是 将变量整体用括号括起来

c o s 2 x 3 cos2x^3 cos2x3MATLAB 输入为 c o s ( 2 ∗ ( x 3 ) ) cos(2*(x^3)) cos(2(x3)) x 3 x^3 x3 本来不需要用括号括起来,但括起来后,运算次序更加清晰。

在这里插入图片描述

系统运算与操作函数的输入

MATLAB 中,通常以由基本初等函数扩展的数学函数作为处理的对象。

此外,MATLAB 系统还设计了具有运算和操作性质方面的函数,它们常作为处理的工具。这类函数常见的有以下几种:

  • 绝对值函数 ∣ x ∣ |x| x a b s ( x ) abs(x) abs(x)
  • 符号函数 s i g n x signx signx s i g n ( x ) sign(x) sign(x)
  • 求和函数: s u m sum sum
  • 求积函数: p r o d prod prod
  • 求最大值: m a x max max
  • 求最小值: m i n min min

函数值的计算

  • 在数学运算中,运算的结果如果是一个 数值,可以称这类运算为 数值运算
  • 如果运算结果为 表达式,在 MATLAB 中称为 符号运算,符号计算是对 未赋值的符号对象 (可以是常数、变量、表达式)进行运算和处理。

在符号运算中是以表达式形式呈现结果的,而在数值运算中是以数值表示结果的。

1. 数值计算方式

>>x=%输入 x 的数值(不能为字母)
>>y=%输入 y 的表达式(表达式中除 x 外不能有其他字母)

【例题1】设 y = 3 x 2 − 2 3 x + 2 x 3 − 4 e 2 x y=3x^2- \frac{2}{3^x}+\frac{2^x}{3}-4e^{2x} y=3x23x2+32x4e2x,用 MATLAB 计算 y ( 1 ) y(1) y(1) 的值。

MATLAB 程序如下:

在这里插入图片描述
【例题2】设 y = { x 2 + 1 , x < 0 2 x − 1 , 0 < x ≤ 10 2 x + 3 , x > 10 y = \begin{cases} x^2 + 1, & x < 0 \\ 2^x - 1, & 0<x \leq 10 \\ 2x+3, & x > 10 \end{cases} y= x2+1,2x1,2x+3,x<00<x10x>10MATLAB 计算 y ( 5 ) y(5) y(5) 的值。

MATLAB 程序如下:

在这里插入图片描述

【注意】elseif 中的 elseif 之间不能空格,否则要用两个 end

在这里插入图片描述

2. 符号计算方式

建立符号变量的方法有两种,通常

  • sym 建立单个符号对象
  • syms 同时定义多个符号对象

2.1 函数:sym

功能:用来建立 单个 符号对象。

a = sym('a');     %定义符号变量 a,下同
b = sym('b')
c = sym('c')
d = sym('d')      %至此定义了 4 个符号变量

在这里插入图片描述

在这里插入图片描述

由以上例子可以看出:

  • 符号计算 的结果是一个 表达式
  • 数值计算 的结果是一个 数值

2.2 函数:syms

功能:定义 多个 符号对象。

syms x y z    %同时定义 x,y,z 为符号变量
>>syms x 其他字母 %定义 x 和其他字母为符号
>>y=f(x); %输入 y 的表达式
>>subs(y,x,a) %计算 x=a 时 y 的值

【注意】

  • 如果要计算在 多个点 x = a 1 , … , x = a n x=a_1,…,x=a_n x=a1x=an y y y 的值,则可用 [ a 1 , a 2 , … , a n ] [a_1,a_2,…,a_n] [a1a2an] 替换 a a a,即 s u b s ( y , x , a ) subs(y,x,a) subs(y,x,a) 改为 s u b s ( y , x , [ a 1 , a 2 , . . . , a n ] ) subs(y,x,[a_1,a_2,...,a_n]) subs(y,x,[a1,a2,...,an])
  • 如果结果 “ans=” 是以 符号形式 给出时,输入 d o u b l e ( a n s ) double(ans) double(ans) 即可得到 数值型结果

【例题1】设 y = 3 l n x 2 − l o g 2 x ⋅ l o g 10 ( 3 x ) + 1 2 l o g 3 ( 4 x ) y=3lnx^2-log_2x · log_{10}(\frac{3}{x})+\frac{1}{2}log_3(4x) y=3lnx2log2xlog10(x3)+21log3(4x) ,用 MATLAB 计算 y ( 1 ) y(1) y(1) y ( 2 ) y(2) y(2) 的值。

MATLAB 程序如下:

在这里插入图片描述

试验 l o g 2 x log_2x log2x l o g 10 x log_{10}x log10x 不用换底公式,得到的结果同上。

在这里插入图片描述

【例题2】设 y = x 2 − 2 a x y=x^2-2ax y=x22ax,用 MATLAB 计算 y ( a ) y(a) y(a) y ( b ) y(b) y(b) 的值。

MATLAB 程序如下:

在这里插入图片描述

【注意】用 符号计算方法 时,相关式子中的所有字母都要先定义为符号,其运算结果依然是一个 符号表达式

函数的作图

MATLAB 有很强的图形功能,可以方便地实现 数据的视觉化。下面着重介绍二维图形的画法。

1. 一般函数 y=f(x) 的作图(二维)

作图基本形式

二维图形的绘制是 MATLAB 语言图形处理的基础,MATLAB 最常用的画二维图形的命令是 plotMATLAB 命令格式:


>>x=a:c:b  %输出 x 的范围[a,b],步长为 c
>>y=f(x); %输出 y 的表达式
>>plot(x,y) %画出函数的图像

plot - 二维线图
MATLAB 函数 创建 Y 中数据对 X 中对应值的二维线图。 要绘制由线段连接的一组坐标,请将 XY 指定为相同长度的向量。
要在同一组坐标区上绘制多组坐标,请将 XY 中的至少一个指定为矩阵。

向量和矩阵数据plot(X,Y)plot(X,Y,LineSpec)plot(X1,Y1,...,Xn,Yn)plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn)plot(Y)plot(Y,LineSpec)

【例子】

在这里插入图片描述

生成的图形如下图所示,是 [ 0 , 2 π ] [0, 2π] [0,2π] 上 30 个点连成的光滑的正弦曲线。

在这里插入图片描述

关于 linspace 的说明文档如下:

在这里插入图片描述

作多重线

同一个画面上可以画许多条曲线,只需多给出几个数组,MATLAB 命令程序格式:

>>x=a:c:b
>>y1=f(x); y2=g(x);
>>plot(x, y1, x, y2) %在同一平面画出两个函数的图像

【例子】

在这里插入图片描述

则可以画出下图:

在这里插入图片描述

【注意】

  • 也可用 hold on 语句,达到作多重图的效果,MATLAB 命令格式:
>>plot(表达式 1, [a,b])
>>hold on
>>plot(表达式 2, [a,b])
  • 如果要在一个画布上作 k 个小图,则可用 subplot(m, n, k)MATLAB 命令格式:
 >>subplot(m, n, k);>>fplot(表达式 1, [a, b])

即表达式 1 所表示的曲线画在 mn 列第 k 个位置上(从左至右,再从上至下计数)。

作图的线型和颜色

为了适应各种绘图需要,MATLAB 提供了用于控制线色、数据点和线型的 3 组基本参数。它的使用格式如下:plot(x, y, color_point_linestyle)

在这里插入图片描述

作图的网格和标记、图例、字号

在一个图形上可以加网格、标题、x 轴标记、y 轴标记,用下列命令完成这些工作。

x=linspace(0, 2*pi, 30); y=sin(x); z=cos(x);
plot(x, y, x, z)
grid %网格
xlabel('横坐标 X') %横坐标标签
ylabel('纵坐标 Y 和 Z') %纵坐标标签
title('Sine 和 Cosine 图像') %标题

【注意】 shift + Enter 换行且不执行。

在这里插入图片描述

效果如下图:

在这里插入图片描述

【添加图例】

legend:按绘图顺序添加图例。

x=linspace(0, 2*pi, 30); y=sin(x); z=cos(x);
plot(x, y, x, z)
grid %网格
xlabel('横坐标 X') %横坐标标签
ylabel('纵坐标 Y 和 Z') %纵坐标标签
title('Sine 和 Cosine 图像') %标题% 按绘图顺序添加图例
legend('y = sin(x)','y = cos(x)')

在这里插入图片描述

【限制画布】

如果限制画布,则需在输入 plot 语句前输入 >>axis([a, b, c, d]),这个命令是将图形限制在 [ a , b ] × [ c , d ] [a,b]×[c,d] [ab]×[cd] 上,其中 a a a b b b c c c d d d 必须是数值。

'FontSize' 字号属性】

x=linspace(0, 2*pi, 30); y=sin(x); z=cos(x);
plot(x, y, x, z)
grid %网格
xlabel('横坐标 X','FontSize',15) %横坐标标签
ylabel('纵坐标 Y 和 Z','FontSize',15) %纵坐标标签
title('Sine 和 Cosine 图像','FontSize',20) %标题
legend('y = sin(x)','y = cos(x)')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/20275.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在SQL Server中实现Ungroup操作

概要 我们经常在SQL Server中使用group by语句配合聚合函数&#xff0c;对已有的数据进行分组统计。本文主要介绍一种分组的逆向操作&#xff0c;通过一个递归公式&#xff0c;实现ungroup操作。 代码和实现 我们看一个例子&#xff0c;输入数据如下&#xff0c;我们有一张产…

【新版系统架构】第十七章-通信系统架构设计理论与实践

软考-系统架构设计师知识点提炼-系统架构设计师教程&#xff08;第2版&#xff09; 第一章-绪论第二章-计算机系统基础知识&#xff08;一&#xff09;第二章-计算机系统基础知识&#xff08;二&#xff09;第三章-信息系统基础知识第四章-信息安全技术基础知识第五章-软件工程…

【webrtc】ProcessThreadAttached

RegisterModule 调用所在的线程指针传递给ProcessThreadAttached ProcessThreadAttached 调用不是在worker thread 而是在 registers/deregister 这个module或者 start stop 这个module的时候 ** ** pacedsender是一个moudle -实现了

用Arthas快速定位线上JVM问题!

Arthas分析FullGC问题定位 对于FullGC那一定不会陌生,一般来说会采用横切FullGC前置拦截(-XX:+HeapDumpBeforeFullGC)和后置拦截(-XX:+HeapDumpAfterFullGC),导出FullGC发生前后的heap dump文件,以便于我们进行FullGC原因的分析和定位。 推测分析问题之FullGC的频率过高…

Kubernetes基础知识点

k8s可以看做是一个集群操作系统&#xff0c;能够对容器进行调度和编排。 Kubernetes中的基本对象 pod 是k8s中的最小单位&#xff0c;一个pod封装一个或者多个容器&#xff0c;存储资源。 deployment 是对pod的服务化封装&#xff0c;可以包含一个或多个pod statefulset 为…

【面试题34】什么是MVC,为什么要使用它

文章目录 一、前言二、MVC介绍2.1 模型&#xff08;Model&#xff09;2.2 视图&#xff08;View&#xff09;2.3 控制器&#xff08;Controller&#xff09; 三、MVC模式的优点四、总结 一、前言 本文已收录于PHP全栈系列专栏&#xff1a;PHP面试专区。 计划将全覆盖PHP开发领域…

opencv4.7.0编译opencv-contrib-4.7.0以及CUDA

0、引言 最近工作中需要用到使用CUDA加速后的opencv进行传统算法的开发&#xff0c;在编程之前&#xff0c;需要先解决环境编译和lib库问题&#xff0c;本文就是记录自己编译opencv-4.7.0的全过程。 1、CUDA下载和安装 可参考我之前的博客WIN10安装配置TensorRT详解中的前几…

我爱学QT-QT信号和槽

1.给控件改名字 为了分析代码方便&#xff0c;我们要给控件改名字。要通俗易懂。 2.信号和槽 信号&#xff1a;信号就是指控件发出的特定的信号。 比如按钮的信号 槽&#xff1a;槽就是槽函数的意思&#xff0c;我们可以把槽函数绑定在某一个控件的信号上。 3.怎么关联信号…

【无公网IP端口映射】远程访问本地jupyter notebook服务

文章目录 前言1. Python环境安装2. Jupyter 安装3. 启动Jupyter Notebook4. 远程访问4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5. 固定公网地址 前言 Jupyter Notebook&#xff0c;它是一个交互式的数据科学和计算环境&#xff0c;支持多种编程语言&#xff0c;如…

学无止境·MySQL⑦(索引和视图)

索引和视图练习 索引练习1、建立一个utf8编码的数据库test12、建立商品表goods和栏目表category3、删除 goods 表中的 goods_desc 字段及货号字段,并增加 click_count 字段4、在 goods_name 列上加唯一性索引&#xff08;用alter table方式&#xff09;5、在 shop_price 列上加…

云之道知识付费V2小程序V3.1.1独立平台版安装使用教程

据播播资源了解&#xff0c;云之道知识付费小程序是一款专注于知识付费的小程序源码&#xff0c;为内容创业者、自媒体和教育培训机构提供全方位的互联网解决方案。 由播播资源小编全套安装云之道知识付费V2独立版系统&#xff0c;系统支持无限多开&#xff0c;相比上几版出现…

Tenable Nessus 10.5.3 (Unix, Linux, Windows) - #1 漏洞评估解决方案

Tenable Nessus 10.5.3 (Unix, Linux, Windows) - #1 漏洞评估解决方案 发布 Nessus 试用版自动化安装程序&#xff0c;支持 macOS Ventura、RHEL 9 和 Ubuntu 22.04 请访问原文链接&#xff1a;https://sysin.org/blog/nessus-10/&#xff0c;查看最新版。原创作品&#xff…