首页 > 其他分享 >数学建模--MATLAB基本使用

数学建模--MATLAB基本使用

时间:2024-03-18 18:59:16浏览次数:22  
标签:这个 里面 函数 -- 建模 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);

标签:这个,里面,函数,--,建模,MATLAB,我们,运算
From: https://blog.csdn.net/binhyun/article/details/136763218

相关文章

  • jQuery+CSS3自动轮播焦点图特效源码
    jQuery+CSS3自动轮播焦点图特效源码,源码由HTML+CSS+JS组成,双击html文件可以本地运行效果,也可以上传到服务器里面下载地址jQuery+CSS3自动轮播焦点图特效源码......
  • 新人基础笔记css的文本属性及字体样式
    css的字体属性 1.字体系列CSS使用font-family属性定义文本的字体系列。语法:p{font-family:“微软雅黑”;}div{font-family:Arial,“MicrosoftYahei”,"微软雅黑";}各种字体之间必须使用英文状态下的逗号隔开一般情况下,如果有空格隔开的多个单词组成的字体,加引号......
  • CSS样式表和调试工具及语法及符合选择器
    注:CSS样式表,chrome调试工具,Emmet语法,css符合选择器一.样式表按照CSS样式书写的位置(或者引入的方式),CSS样式表可以分为三大类:1.行内样式表(行内式)行内样式表(内联样式表)是在元素标签内部的style属性中设定CSS样式。适合于修改简单样式。语法:<divstyle="color......
  • 什么是HTTP? HTTP 和 HTTPS 的区别?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、HTTPHTTP (HyperTextTransferProtocol),即超文本运输协议,是实现网络通信的一种规范在计算机和网络世界有,存在不同的协议,如广播协议、寻址协议、路由协议等等......而HTTP是一个传输协议,即将数据由A传到B或......
  • Kotlin 协程基础使用学习
    原文:Kotlin协程基础使用学习-Stars-One的杂货小窝本篇阅读可能需要以下知识,否则可能阅读会有些困难客户端开发基础(Android开发或JavaFx开发)Java多线程基础kotlin基础本文尽量以使用为主,以代码为辅讲解,不提及过深协程底层代码逻辑,仅做一个基础入门来快速上手学习......
  • 从海外开发者大会的亲身体悟聊起,谈谈 AI 与开发者关系的重构 | 编码人声
      本期「编码人声」节目中,我们聚焦于「AI与开发者关系的重构」这一主题,从嘉宾参加海外开发者大会的亲身体验开始分享,聊一聊AI技术如何影响开发者社区和生态,以及开发者如何在这一变革中找到新的位置。 我们邀请了开发者社区与技术大会的负责人、开发者生态的从业者、以......
  • Gym 101981-I Magic Potion 题解
    传送门题意:有\(n\)个勇者和\(m\)个怪物,第\(i\)个勇者有一个可杀怪物集合\(M_i\),每个勇者只能杀各自\(M_i\)中的一个怪物。但是你有\(k\)瓶魔药,每一瓶都可以让一个勇者多杀一个\(M_i\)中的怪物。但是每个勇者只能吃一瓶药。问最多能杀多少个。考虑让勇者和怪物匹......
  • My97DatePicker日期插件WdatePicker.js的使用方法
    原文链接:https://blog.csdn.net/honghailiang888/article/details/51384929一、先来最简单的配置方法:(1)下载WdatePicker.js(包括lang和skin文件夹)。(2)在html页面中导入WdatePicker.js。//同时引入了WdatePicker.css文件(3)在输入框input元素上加入class="Wdate"onFocus="WdatePic......
  • POJ3057 Evacuation 题解
    传送门题意:给定一张字符地图,#代表墙,.代表空地,D代表门。初始每个空地都有一个人。每个人可以在一秒内向上下左右移动一格。一个空地可以站任意多人。一个人走到门视作逃生成功。但是门很窄,一个时刻内只能有一个人进门。问所有人逃生的最短时间。\(n\le12\)。注意到门一个......
  • 一文搞懂LVS负载均衡工作原理
    LVS(LinuxVirtualServer)是企业中常用的负载均衡方案,是一种基于Linux虚拟服务器,也是Linux标准内核的一部分。它能够实现高性能、高可用的服务器集群,具有良好可靠性、可扩展性和可操作性。说白了: LVS就是在计算机网络中,利用Linux虚拟服务器的作为一种媒介,实现请求的负载均衡策......