数学建模--MATLAB基本使用

1.线性方程组

这个是一个线性方程组(属于线性代数的范畴),Ax=b类型的方程,如果使用MATLAB进行求解,就需要分别表示A矩阵(线性方程组未知数前面的系数),b矩阵(表示等式右边的结果),inv是这个软件里面的一个函数,用来进行求解A的逆矩阵,因为Ax=b,那么x=A-1次方乘上b

另外,我们也可以使用这个A\b来进行求解,这个里面需要注意是A\b,而不是我们熟悉的A/b,他们所代表的含义是不一样的,我们在脚本里面敲代码的时候,需要在前面的2行加上结尾处的引号,最后一行不用加引号,否则我们在命令行窗口里面无法看到最后的输出结果;

2.二维图形的绘制

二维图形的绘制要是用这个plot函数,我们通过这个例子来认识一下函数的使用方法,以sin1/x为例吧:

(1)这个地方我们只绘制了-1~1范围里面的函数图像,这样便于观察函数的效果,学过高等数学的同学们对于这个函数就非常的熟悉,因为他是特例,这个函数是有界限的,但没有极限存在;

(2)下面我们来聊一聊这个里面每一行代码的作用,首先,第一行是生成行向量,我们可以简单地理解为,通过这一行,我们要告诉MATLAB我们要绘制图像的定义域是-1~1之间的,100000是在这个-1~1这个区间里面生成100000个采样点,

(3)这个里面使用了点运算符,只要是涉及到矩阵里面的元素运算,我们在大部分的情况下都要是用这个运算符,后续还会涉及到,这个运算符在矩阵的运算里面很常见,我们都知道,对于两个矩阵的乘法运算,他们并不是对应位置的元素相乘,但是如果我们使用点乘运算符,就可以让矩阵里面对应位置的元素进行相乘的运算;

**************************************************************************************************************

接下来我们举一个在一个坐标平面里面绘制2个图形的例子

我们在一个坐标平面里面绘制y=e^x*cos和y=10*e^-0.5x*sin(2pi x)的函数图像(0~pi/2区间里面)

这个里面的plot中的单引号里面表示的是一些标记符号;

b是蓝色,-表示实线;合在一起就是蓝色实线;

k表示黑色,:表示虚线;合在一起就是黑色虚线;

下面是效果图:

3.空间曲线的绘制

绘制空间曲线x^2+y^2+z^2=16,x+y=0(这2个方程是在一个括号里面进行联立的)

首先要转化成为参数方程,也就是x=2根号2sint;y=-2根号2cost;z=4cost;

下面是是否添加grid on的区别,读者可以自行感受:

这个是没有grid on的,可见就没有曲线的格子;

这个是添加了grid on的,差别就显而易见了;

4.函数极限实验

(1)符号运算,matlab使用sym创建符号对象,一次只能够创建一个符号对象,我们也可以使用syms一次性创建多个符号对象;

(2)极限运算

MATLAB提供limit函数求极限

limit(f,x,a)表示求f(x)在a点处的极限值;

limit(f,x,a,'right')是求这点处的右极限,如果我们把right换成left就是求左极限;

当然,也可以进行求解多元函数的极限:这个时候就需要嵌套limit;

z=limit(limit(f,x,x0),y,y0)就是求在x0,y0处的极限值;

f1里面就是我们要求的函数的表达式,在x趋近于1的极限值;

我们都知道sin(1/x)的极限是不存在的,所以程序的输出结果就是NaN;

5.MATLAB求导运算

MATLAB里面可以调用diff函数求函数的导函数;

例如diff(f,x,5)就是求符号函数f在x这个点处的5阶导数;

接下来我们使用MATLAB求一下y=x^2*exp(-x)的3阶导数;

6.MATLAB实现函数的泰勒幂级数展开

taylor里面就是我们要展开的函数表达式;

6.MATLAB积分实验

我们使用int(s,x)就是表示对s表达式里面的x进行积分;

顺便提一句:无论是积分求解还是极限的求解,我们都是使用inf代表无穷;

下面是例子:

(需要了解的是这个不定积分的求解是没有常数项的(实际上数学里面的求解是由常数的))

当然,MATLAB也是可以计算定积分的:

对于积分的上下限,我们在int(s,x,a,b)里面添加2个参数,a是积分下限,b是积分的上限

7.MATLAB实现微分方程

Dny表示y的n阶导,D2y就是2阶导;我们可以调用dsolve函数实现常微分方程的求解;

这个板块不同的版本软件的代码语言有所差别,这个是以我的2023为例

(1)我们去求dy/dx+y/x=sinx/x的通解:

diff就是求导数的运算;

(2)求解dy/dx+y=y^2*exp(-x)满足条件y(0)=-2的特解:

提前说明一下,笔者使用的是旧版本的教材,但是用的是新版MATLAB,2023里面可能会因为不支持原来的某些符号而报警告,但是我们依然是能够得到结果的;

D2y表示的是2阶导,D3y表示的是3阶导,以此类推;

(3)y''-6y'+13y=0的通解;

8.空间曲面(马鞍面&&双曲抛物面)

(1)同样是马鞍面,也叫做双曲抛物面,我们可以使用不同的函数进行绘制,不同的函数的展示的效果是不一样的,我们上面的是使用mesh函数绘制,这个函数主要是连接成网格点,下面的这个有颜色的马鞍面是用这个surf进行绘制的,代码的其他部分不变,只需要把第4行的函数的名字改变一下就可以了,通过这个案例我们也可以发现这两者之间的差别,前者线条有颜色,线条之间的补面没有颜色的填充,后者的曲面图线条是黑色的,之间使用颜色进行了填充;

(2)MATLAB为我们提供了grid函数决定是否显示分格线,他的调用格式为

grid od:显示分格子线

grid off:不显示分格子线

(3)相信你一定注意到了这个里面的点运算,点运算是MATLAB里面很有特色的一种运算,我们都知道,矩阵在进行乘法操作的时候,并不是对应的元素进行相乘,但是如果我们对于矩阵里面的元素使用点乘运算,就可以实现对应位置的元素相乘,在绘图里面这个运算有十分广泛的运用;

(4)这个里面的meshgrid也是一个函数,这个函数的功能就是生成网格数据,当X轴和Y轴的数据点个数相等的时候,我们就可以使用[x,y]=meshgrid(x,y);

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

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

相关文章

Linux应用编程 - sysfs方式操作GPIO

简介: 应用层想要对底层硬件进行操控,通常可以通过两种方式 /dev/目录下的设备文件(设备节点)​​​​​​​/sys/目录下设备的属性文件 通常情况下,简单地设备会使用 sysfs 方式操控&#x…

大数据-基础架构设施演进的过程

一、第一阶段-Hadoop 以Hadoop为代表的离线数据处理基础设施 1.1、围绕HDFS和MR,产生了一系列的组件 面向在线KV操作的HBase面向SQL的Hive面向工作流的PIG 1.2、随着对批处理性能要求越来越高,产生了Tez、Spark、Flink等计算引擎。RM模型也逐步进化成…

发现数据之美:探索数据可视化的艺术与技术

摘要: 数据可视化是将抽象的数据转化为图形化表达的过程,它不仅可以让数据更加直观易懂,还能够揭示数据背后的模式、趋势和关联关系。本文将深入探讨数据可视化的重要性,并通过详细的实例演示如何运用常见的数据可视化工具和库,如Matplotlib、Seaborn和Plotly,为读者呈现…

SpringAI——Java生态接入LLM

最近,Spring官网发布了SpringAI,可点此查看https://spring.io/blog/2024/03/12/spring-ai-0-8-1-released,对于SpringAI的介绍,可看官方文档:https://spring.io/projects/spring-ai#overview。 本文将使用SpringAI配合…

字符函数以及字符串函数

1.strlen的使用和模拟实现 • 字符串以 \0 作为结束标志,strlen函数返回的是在字符串中 \0 前⾯出现的字符个数(不包 含 \0 )。 • 参数指向的字符串必须要以 \0 结束。 • 注意函数的返回值为size_t,是⽆符号的( 易错 &#xff…

VSCode 远程调试C++程序打开/dev/tty设备失败的问题记录

概述 因为需要协助同事调试rtklib中的rtkrcv程序,一直调试程序都是用了vscode,这次也不例外,但是在调试过程中,发现程序在打开当前终端(/dev/tty)的时候,总是打开失败,返回的错误原因是“No such device o…

Python之requests实现github模拟登录

文章目录 github 模拟登录前言模拟登录流程抓包操作查看登录表单的内容登录操作 模拟登录操作在 main函数的调用获得 auth_token调用/session接口登录处理检测登录是否成功 总结: github 模拟登录 前言 前面学习了requests模块的基础学习后,接下来做一个…

Pytorch学习 day14(模型的验证步骤)

如何利用已经训练好的模型,验证它的结果,步骤如下: 步骤一:加载测试输入并更改为合适尺寸 保存图片到指定文件夹下,注意是否为同级目录注意:返回上一级目录为“…/xxx"有时,我们自己的输…

前端React篇之React的生命周期有哪些?

目录 React的生命周期有哪些?挂载阶段(Mounting)更新阶段(Updating)卸载阶段(Unmounting)错误处理阶段(Error Handling) React常见的生命周期React主要生命周期 React的生…

每日一练:LeeCode-14、最长公共前缀【字符串+最值判定】

编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flower","flow","flight"] 输出:"fl"示例 2: …

27-Java MVC 模式

Java空对象模式 实现范例 MVC模式代表 Model-View-Controller(模型-视图-控制器) 模式MVC模式用于应用程序的分层开发 Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO 它也可以带有逻辑,在数据变化时更新控制…

渔业安全生产综合管理指挥系统-航迹数据优化方案

文章目录 引言I 轨迹数据模型II 轨迹信息索引III 数据同步方案3.1 多服务器多表同步3.2 增量数据同步3.3 执行IV 配置ESV 团队建设5.1 前端(web GIS)5.2 后端(Java)see also引言 背景: 目前系统查询轨迹数据比较慢的原因是没有进行读写分离,轨迹数据的查询和写入都是SQL…

Linux查看mysql安装目录

在Linux系统中,MySQL的安装目录通常位于/usr/local/mysql或/opt/mysql目录下。这些目录是MySQL在Linux系统中默认的安装目录,用户可以在这些目录下找到MySQL的所有文件和配置信息。 要查看MySQL的安装目录,可以使用以下命令: wh…

踏上机器学习的征程:探索基础概念与学习模式

摘要: 机器学习是当今科技领域最具前沿和应用价值的技术之一,它正在改变我们对数据的理解和利用方式。本文将引导读者深入了解机器学习的基本概念,包括监督学习、无监督学习和半监督学习等,并通过生动的例子解释这些概念,帮助读者迈出学习机器学习的第一步。 导言: 随着…

Ubuntu 如何安装 Beyond Compare?

Ubuntu20.04安装Beyond Compare 4.3.7 一、官网下载方式一:方法二:使用 .deb 包安装 二、安装相关依赖和bcompare三、破解常见错误解决方法 ) 文件比较工具Beyond Compare是一套由Scooter Software推出的文件比较工具。主要用途是对比两个文件夹或者文件…

AST解web控制流平坦化

此代码可以解决大部分 while if else 控制流平坦化原理: 先将 if 语句转为 switch 语句,再将 switch 分支合并,最后删除已合并的分支(具体看代码) 实现效果图 首先安装依赖: npm install babel/parser npm…

指针基础 - golang版

文章目录 1、指针2、基础语法2.1 定义指针2.2 取地址操作符 &2.3 解引用操作符 * 3、实战用法3.1 指针作为函数参数3.2 指针和结构体3.3 指针和接收者 1、指针 变量是存储值的地方;指针的值是一个变量的地址;不是所有的值都有地址,但是所…

【K8s】如何使用Kubernetes Ingress: Contour

使用Kubernetes Ingress: Contour 目录 使用Kubernetes Ingress: Contour没有 Ingress 控制器的情况Ingress 控制器的优势部署 Contour看到 Contour 在运行中总结推荐超级课程: Docker快速入门到精通Kubernetes入门到大师通关课AWS云服务快速入门实战在处理Kubernetes时会遇到…

Java后端八股-------并发编程

图中的 synchronized方法如果没有锁,那么可能会有超卖,数据错误等情况。 加锁之后会按顺序售卖。 synchronized的底层是monitor。 线程没有竞争关系的时候,引入了轻量级锁,当需要处理竞争关系的时候一定要用到重量级锁(线程的…

数据挖掘与大数据的结合

随着大数据技术的不断发展和普及,数据挖掘在大数据环境下的应用也变得更加广泛和深入。以下将探讨大数据技术对数据挖掘的影响,以及如何利用大数据技术处理海量数据并进行有效的数据挖掘,同时分析大数据环境下的数据挖掘挑战和解决方案。 1.…