首页 > 其他分享 >数学建模——基础

数学建模——基础

时间:2022-10-27 16:03:49浏览次数:74  
标签:xi 函数 插值 基础 矩阵 建模 生成 interp1 数学


目录

​第1章 MATLAB基础知识​

​1,矩阵的表示​

​1,数值矩阵的生成​

​2,符号矩阵的生成​

​3,特殊矩阵生成​

​4,一般矩阵运算​

​5,基本图形绘制​

​6,简单图像处理​

​7,建立函数文件/.M文件​

​8,常用数值拟合​

​9,常用数据插值​


(文章主体内容来自"《MATLAB数学建模经典案例实战》#余胜威 编著#清华大学出版社",发此文目的是梳理相关知识点,记录学习过程)

第1章 MATLAB基础知识

1,矩阵的表示

矩阵与向量相同,用来描述一个问题的方程组的系数,由方程组的系数和常数构成的方阵。

矩阵包括:数值,符号,特殊矩阵等三种基本样式

1,数值矩阵的生成

MATLAB强大功能之一:直接处理向量或矩阵

实数值矩阵输入

数学建模——基础_数据

数学建模——基础_插值_02

复数矩阵输入

数学建模——基础_插值_03

2,符号矩阵的生成

1,用sym定义矩阵(实际是在定义符号表达式,符号矩阵中的元素可以是任意符号或是表达式,且长度无限制,只是将方括号置于用于创建符号表达式的单引号中)

数学建模——基础_MATLAB_04

2,用命令syms定义矩阵

数学建模——基础_插值_05

3,数值矩阵转换为符号矩阵

数学建模——基础_数据_06

一般情况下,矩阵是浮点型变量保存。针对本例,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示,或是函数形式表示

3,特殊矩阵生成

  1. 全零阵生成
  2. 单位阵生成
  3. 全1阵生成
  4. 均匀分布随机矩阵生成
  5. 正态分布随机矩阵生成
  6. 产生随机排列
  7. 产生线性等分向量
  8. 产生对数等分向量
  9. 产生以输入元素为对角线元素的矩阵
  10. 友矩阵的生成
  11. hadamard矩阵生成
  12. Hankel方阵生成
  13. Hibert矩阵生成
  14. 逆Hibert矩阵生成
  15. Magic矩阵生成
  16. pascal矩阵生成
  17. 拓普利兹矩阵生成
  18. Wilkinson特征值测试阵的生成

4,一般矩阵运算

数学建模——基础_点集_07

数学建模——基础_点集_08

数学建模——基础_点集_09

数学建模——基础_MATLAB_10

数学建模——基础_点集_11

数学建模——基础_插值_12

5,基本图形绘制

数学建模——基础_MATLAB_13

  • t:t从0开始,以π/50为一步,到4π为止,就是t的取值为0,π/50,2*π/50,3*π/50,4*π/50......4π
  • .*:点乘,非矩阵乘法的一种乘法,每个对应元素分别相乘
  • plot(t,y,t,y0,t,-y0):显示三条曲线

数学建模——基础_点集_14


数学建模——基础_MATLAB_15

 

数学建模——基础_数据_16

 

  • 在matlab的命令窗口输入:X=linspace(1,100),将产生从1到100步长为1的​​数组​​。类似于在命令窗口中输入:X=[1:100]
  • 在命令窗口中输入:X=linspace(5,100,20),将输出:X =5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
  • 注意多个数值做乘除运算时要用点乘(.*),直接用乘(*)则报错
  • .*需要A、B的行列相等,而*的必要条件则是A的列数==B的行数
  • .^是矩阵中各数值分别平方,^是矩阵自身乘以矩阵自身
  • subplot(m,n,p)或者subplot(m n p):m表示是图排成m行,n表示图排成n列,也就是整个figure中有n个图是排成一行的,一共m行,如果m=2就是表示2行图。p表示图所在的位置,p=1表示从左到右从上到下的第一个位置。
  • axis([XMIN XMAX YMIN YMAX])二维坐标系下坐标范围
  • V = axis,返回当前坐标范围参数,二维坐标 四个元素
  • plot(x,y,'linewidth',2): 线条粗细

数学建模——基础_点集_17

  • meshgrid(x,y,z):meshgrid是生成网格的函数,一般是生成二维网格矩阵数据,但这里生成的是三维网格矩阵数据。以二维为例,命令:[X,Y]=meshgrid(x,y),生成的X就是采样点的横坐标,Y是其纵坐标
  • slice(X,Y,Z,V,XI,YI,ZI) 沿着由矩阵XI、YI与ZI定义的曲面画穿过超立体图形V的切片。

数学建模——基础_数学建模_18

6,简单图像处理

数学建模——基础_点集_19

  • 素材放在图中所标记位置
  • 数学建模——基础_插值_20

  • R=obj(:,:,1)......:把图像中红、绿、蓝三色的数据分别存储到矩阵R、G和B中
  • 数学建模——基础_点集_21

7,建立函数文件/.M文件

函数文件

定义

  • 可以是MATLAB工具箱中的函数,直接被用户调用
  • 也可以是用户自己书写的,可间接调用
  • 也可添加到工作路径下,供用户调用

作用

  • 可反复调用
  • 节约代码空间
  • 使结构清晰
  • 很重要

常用的函数文件

  • function y = abc(x);
  • abc:用户定义函数
  • x:输入    y:反馈值

函数句柄

  • fhandle = @function name
  • eg.    trig_f = @sin 或 sqr = @(x)x.^2

eg. 函数句柄的创建调用

数学建模——基础_点集_22

eg.函数文件的创建和调用

  1. 新建 “函数”,并编写函数内容,保存时为函数命名(注意不要与已知函数冲突,函数文件将在路径中显示)
  2. 在命令行窗口可直接调用此函数

 

数学建模——基础_点集_23

数学建模——基础_数据_24

数学建模——基础_点集_25

8,常用数值拟合

最简单的线性最小二乘法拟合

  • 从实验数据中拟合函数关系y=f(x),标准是使   (f(xi) - yi)^2取极小值
  • MATLAB中可用函数polyfit函数对数据进行拟合。调用格式:P  =  polyfit(x , y , N)    意义:用N次多项式拟合数据点  [ xi , yi]

eg.以一次,二次,三次多项式拟合以下数据 

表1-2 数据

x

0.5

1.0

1.5

2.0

2.5

3.0

y

1.75

2.45

3.81

4.80

7.00

8.60

数学建模——基础_MATLAB_26

 

数学建模——基础_数据_27

数学建模——基础_插值_28

  • hold on:hold on 和hold off,是相对使用的前者的意思是,你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存,都看得到,后者表达的是,你在当前图的轴(坐标系)中画了一幅图,此时,状态是hold off,则再画另一幅图时,原来的图就看不到了,在轴上绘制的是新图,原图被替换了(参考自​​@荪荪​​【Matlab中hold on与hold off的用法】)

数学建模——基础_插值_29

数学建模——基础_数学建模_30

  • plot函数:单引号内的是线的类型以及颜色,如上图

9,常用数据插值

插值

  • 求函数近似值的方法。针对某个x,用已知的xi与f(xi)组合生成f(x)。
  • 最简单插值法:多项式插值法
  • MATLAB可利用提供的插值函数,或编程实现数据的插值
  • 一元插值函数interp1的语法格式

y = interp1(x , Y, xi)

由已知点集(x,Y)插值计算xi上函数值y

y = interp1(Y, xi)

相当于x=1:length(Y)的interp1(x, Y, xi)

y = interp1(x, Y, xi, method)

用指定方法计算xi对应的y

y = interp1(x, Y, xi, method, 'extrap')

超出已知点集的插值点用指定方法计算函数值

y = interp1(x, Y, xi, method, extrapval)

用指定方法计算插值,超出已知点集处函数值取extrapval

pp = interp1(x, Y, method, 'pp')

用指定方法进行插值,但结果为分段多项式

  • eg.已知x, y初始矩阵值,利用interp1的不同插值算法求xi[1 : 0.3 : 17]时各点的函数近似值
  • 数学建模——基础_数据_31

  • 数学建模——基础_MATLAB_32

数学建模——基础_数学建模_33

二维插值

  • 类似于一维插值,但插值方法只有三种:‘nearest’,'linear'(默认),‘cubic’
  • 已知数据点集必须是栅格格式,一般用meshgrid函数产生
  • interp2函数要求(X,Y)必须严格单调
  • interp2函数输入中,若已知点集(X,Y)在平面上不等间距时,函数将通过一定的变换将其转换为等间距的
  • 若输入点集已经是等间距分布的话,可以在method参数前加星号(*),eg.'*cubic'。可提高插值速度

eg.二维插值函数

数学建模——基础_MATLAB_34

数学建模——基础_点集_35

 

 

标签:xi,函数,插值,基础,矩阵,建模,生成,interp1,数学
From: https://blog.51cto.com/u_15849465/5801382

相关文章

  • PAT_甲级_1031 Hello World for U (20分) (C++)【数学推理/字符串处理】
    目录​​1,题目描述​​​​题目大意​​​​2,思路​​​​3,代码​​1,题目描述SampleInput:helloworld! SampleOutput:h!edlllowor题目大意给定一个字符串,将其所......
  • 基础数学
    集合里面的元素就看最外层即可powerofset是这个集合所有的子集. 集合的危险性没有搞懂. 可看运算规则       有序对" 二元关系 ......
  • 02#嵌入式系统基础:GPIO 对 LED 的控制
    GPIO概念GP是GeneralPurpose的缩写,直译是“用途多”的意思。I/O表示Input和Output,输入和输出的意思。结合起来就是GPIO,即通用IO。MCU有许多个引脚,STM32L431......
  • 99、cracer第4集-Linux基础——2022年10月25日16:30:14
    2022年5月30日15:56:25重要内容清除linux密码——在开机时输入命令命令清屏——ctrl+U/K/Lfind命令——find/-namere*conf1、2、磁盘分区3、密码破解4......
  • 浅谈OpenHarmony LiteOS-A内核之基础硬件——中断控制器GIC400
     一、前言OpenAtomOpenHarmony(以下简称“OpenHarmony”)采用多内核架构,支持Linux内核的标准系统、LiteOS-A的小型系统、LiteOS-M的轻量系统。其中LiteOS-A要求设备具......
  • 浅谈OpenHarmony LiteOS-A内核之基础硬件——中断控制器GIC400
    一、前言​OpenAtomOpenHarmony(以下简称“OpenHarmony”)采用多内核架构,支持Linux内核的标准系统、LiteOS-A的小型系统、LiteOS-M的轻量系统。其中LiteOS-A要求设备具备一定......
  • go基础学习指针
    /*指针有两个核心概念:类型指针:对这个指针类型的数据进行修改,传递数据使用指针,无需拷贝数据。类型指针不能进行偏移和运算。切片:由指向起始元素的原始指针,元素数量和容量......
  • k8s基础篇 pod(九)Pod生命周期
    9.1Init容器Pod里面可以有一个或者多个容器,部署应用的容器可以称为主容器,在创建Pod时候,Pod中可以有一个或多个先于主容器启动的Init容器,这个init容器就可以成为初始化容......
  • 【博学谷学习记录】超强总结,用心分享|Java基础分享-乐观锁与悲观锁
    目录一、悲观锁与乐观锁二、乐观锁的基础——CAS三、自旋锁四、synchronized锁升级:偏向锁→轻量级锁→重量级锁五、可重入锁(递归锁)六、公平锁、非公平锁七、可......
  • 计算几何基础-代码部分
    先来一个namespacegeo,存下计算几何的基本类型和基本运算//#pragmaGCCoptimize(2)#include<cstdio>#include<cmath>#include<vector>#include<algorithm>usingn......