数学建模 —— 插值与拟合(1)

一、matlab画图

1.1 plot(二维图形)

plot(x) —— 缺省自变量绘图格式

plot(x,y) —— 基本格式,以y(x)的函数关系作出直角坐标图,如果y为n×m的矩阵,则以x为自变量,作出m条曲线

plot(x1,y1,x2,y2,…,xn,yn) —— 多条曲线绘图格式

plot(x1,y1,选项1,x2,y2, 选项2,…,xn,yn,选项n)——含选项的绘图格式

颜色参数

颜色

线型参数

线型

标记符号

标记

b

-

实线

.

圆点

g

绿

:

点线

o

圆圈

r

-.

点划线

+

加号

c

--

虚线

*

星号

m

品红

x

叉号

y

'square ' 或 s

方块

k

'diamond' 或 d

菱形

w

^

朝上三角符号

v

朝下三角符号

<

朝左三角符号

>

朝右三角符号

p

五角星

h

六角星

图形标注函数的调用格式:    

title(图形名称)    

xlabel(x轴说明)    

ylabel(y轴说明)    

text(x,y,图形说明)    在x,y坐标处添加文字说明    

legend(图例1,图例2,…)

图形窗口的分割:

subplot(m,n,p)     将一个绘图窗口分割成 m*n 个子区域,并按行从左至右 ,由上至下 依次编号 。     p 表示第 p 个绘图子区域。

函数

二维图的形状

备注

bar(x,y)

条形图

x是横坐标,y是纵坐标

fplot(y,[a b])

精确绘图

y代表某个函数,[a b]表示需要精确绘图的范围

polar(θ,r)

极坐标图

θ是角度,代表以θ为变量的函数

stairs(x,y)

阶梯图

x是横坐标,y是纵坐标

stem(x,y)

针状图

x是横坐标,y是纵坐标

fill(x,y,’b’)

填充图

x是横坐标,y是纵坐标, ‘b’代表颜色

scatter(x,y,s,c)

散点图

s是圆圈标记点的面积,c是标记点颜色

pie(x)

饼图

x为向量

1.2 三维曲线

plot3(x1,y1,z1,‘选项1’, x2,y2,z2,‘选项2', …)    

x,y,z是长度相同的向量:一条曲线    

x,y,z是维数相同的矩阵:多条曲线

三维曲面z=f(x,y) 绘制的一般步骤:  

步骤一:确定向量x,y  

步骤二:使用meshgrid生成网格矩阵  

步骤三:计算函数z=f(x,y) 在各网格点上的值  

步骤四:使用mesh等命令生成三维网格曲面图、使用surf等命令生成三维表面着色曲面图。

meshgrid    

[X,Y]= meshgrid(x,y)    x, y 为给定的向量,X, Y 是网格划分后得到的网格矩阵

mesh(X,Y,Z,C)     X,Y:网格坐标矩阵,     Z :网格点上的高度矩阵。    矩阵 C :确定不同高度下的颜色范围,    省略时 C=Z,即颜色的设定正比于图形的高度

mesh(Z)     x, y 省略时,Z矩阵的列下标当做x轴坐标, Z矩阵的行下标当做y轴坐标  

meshc     调用方式与 mesh 相同,在 mesh 基础上增加等高线

meshz     调用方式与 mesh 相同,在 mesh 基础上增加底座

1.3 三维着色曲面图

surf, surfc, surfl  

surf(X,Y,Z,C)      绘制由矩阵 X,Y,Z 所确定的着色的三维表面图,参数含义同 mesh。  

surfc    调用方式与 surf 相同,在 surf 基础上增加等高线  

surfl    调用方式与 surf 相同,在 surf 基础上增加光照效果

二、插值

        可在给定基准数据的情况下,估计出肌醇数据之间的其他点的函数值

(1)一维插值:拉格朗日、临近点、线性、三次样条、分段三次插值

(2)二维插值

2.1 一维插值

2.1.1 拉格朗日插值

P_n (x)=∑_(i=0)^n (L_i (x)⋅y_i )

L_i (x)=((x-x_0)(x-x_1)⋯(x-x_(i-1))(x-x_(i+1))⋯(x-x_n))   /  ((x_i-x_0)(x_i-x_1)⋯(x_i-x_(i-1))(x_i-x_(i+1))⋯(x_i-x_n))

称为拉格朗日插值基函数

function y=lagrange(x0,y0,x) 
n=length(x0);m=length(x); 
for i=1:m 
z=x(i); 
s=0.0; 
for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; 
end 
y(i)=s; 
end

2.1.2 临近点插值

        用插值点最近的已知函数值代替该点

2.1.3 分段线性插值

        用已知的函数点连接成直线段,作为插值函数

2.1.4 三次样条插值

        将已知的每两个函数点之间用一个三次函数来插值,要求整个函数有2阶光滑性,即一阶导数以及二阶导数连续。

2.1.5 三次多项式插值

        将已知的每两个函数点之间用一个三次函数来插值,要求整个函数有一阶光滑性,且对极小点保持逼近。

 2.1.5 matlab代码实现

        yi = interp1(x, y, xi, 'method')

x, y :插值节点,xi:被插值点,method:插值方法;(要求x单调,xi不超过x)

method:'nearest':最邻近插值

                'linear':线性插值

                'spline':三次样条插值

                'pchip':立方插值

                缺省时:分段线性插值

2.2 二维插值

2.2.1 二维网格插值

   z = interp2 (x0, y0, z0, x, y, 'method')

x0, y0 ,z0:插值节点;x, y:被插值点;method:插值方法要求x0,y0单调;xy可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。

method:'nearest':最邻近插值

                'linear':双线性插值(默认)

                'cubic':双三次插值

                'spline':三次样条插值

2.2.2 二维离散点插值

 z = griddata(x0, y0, z0, x, y, 'method')

x0, y0 ,z0:插值节点;x, y:被插值点;method:插值方法要求x0,y0单调;xy可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。

method:'nearest':最邻近插值

                '(bi)linear':(双)线性插值(默认)

                '(bi)cubic':(双)三次插值

三、拟合

        在给定的基准数据下,寻求近似的函数(或者待定的参数)能较好的反映数据变化的规律

        (注:不要求通过已经的数据点)

3.1 多项式拟合

        利用最小二乘法确定n次多项式的系数

matlab实现:

1.f(x)=a1xm+ …+amx+am+1

        a=polyfit(x,y,m)

a=[a1, ... , am+1](数组):输出拟合多项式系数的集合

x, y:输入同长度的数组x,y

m:拟合多项式次数

2.多项式在x处的值y可用以下命令计算:

            y=polyvalax

3.2 超定方程组

        方程个数大于未知量个数的方程组

        超定方程一般是不存在解的矛盾方程组

如果有向量a使得∑_(i=1)^n(r_i1 a_1+r_i2 a_2+⋯+r_im a_m-y_i )^2,则称a为超定方程的最小二乘解

3.3 matlab作非线性最小二乘拟合

    Matlab的提供了两个求非线性最小二乘拟合的函数:lsqcurvefitlsqnonlin。两个命令都要先建立M-文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参考例题.

3.3.1 lsqcurvefit

        F(x,xdata)=(Fxxdata1),Fxxdatan))T

使得∑_(i=1)^n  (F(x,xdata_i)-ydata_i)^2   最小

3.3.2 lsqnonlin

lsqnonlin用以求含参量x(向量)的向量值函数

     f(x)=(f1(x),f2(x),,fn(x))T   中的参量x,使得

 f^T (x)f(x)=f_1 (x)^2+f_2 (x)^2+⋯+f_n (x)^2

      最小。

      其中 fix=fxxdataiydatai

                          =F(x,xdatai)-ydatai

 

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

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

相关文章

【MySQL数据库】索引与事务

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【MySQL】探秘&#xff1a;数据库世界的瑞士军刀 目录 &#x1f5f3;️一.索引 &#x1f4ee;1.工作原理 &#x1f4ec;2.类型 &#x1f4ed;3.作用 &#x1f4ea;4.优缺点 &#x1f4eb;5.使用…

Git远程操作

下面演示在gitee上创建远程仓库 创建远程仓库 上面的.gitignore是为了在上传时过滤掉不重要的文件&#xff0c;分支模型选单分支模型就够用了&#xff0c;或者选生产/开发模型。 当然&#xff0c;如果创建仓库的时候没有添加.gitignore文件&#xff0c;可以在本地仓库创建.gi…

Nvidia Jetson/Orin +FPGA+AI大算力边缘计算盒子:美团小袋自动配送车

大型电商公司美团已选用NVIDIA Jetson AGX Xavier 平台&#xff0c;作为无人配送机器人核心AI算力。 美团点评是全球大型的按需食品配送公司&#xff0c;结合了Uber Eats、Yelp和Groupon的商业模式&#xff0c;与超过40万家本地企业开展合作。他们推出了小袋自动配送车&#…

【OpenHarmony】TypeScript 语法 ③ ( 条件语句 | if else 语句 | switch case 语句 )

文章目录 一、条件语句1、if else 语句2、switch case 语句 参考文档 : <HarmonyOS第一课>ArkTS开发语言介绍 一、条件语句 1、if else 语句 TypeScript 中的 if 语句 / if else 语句 用法 , 与 JavaScript 语言中的 if 语句 / if else 语句 语法 基本相同 ; if else 语…

QT 信号和槽教程,窗体和控件对象之间的沟通一般都使用信号和槽

Qt的信号和槽&#xff08;Signals and Slots&#xff09;机制是一种强大的对象间通信方式&#xff0c;它允许对象在完全解耦的情况下相互通信。以下是关于Qt信号和槽的简明教程&#xff1a; 基本概念 信号&#xff08;Signal&#xff09;&#xff1a;信号是由Qt对象发出的通知…

Docker 快速更改容器的重启策略(Restart Policies)以及重启策略详解

目录 1. 使用 docker update 命令2. 在启动容器时指定重启策略3. 在 Docker Compose 文件中指定重启策略4. 总结 官方文档&#xff1a;Start containers automatically 1. 使用 docker update 命令 Docker 提供了 docker update 命令&#xff0c;可以在容器运行时更改其重启策…

Elasticsearch:基于多个 kNN 字段对文档进行评分

作者&#xff1a;来自 Elastic Madhusudhan Konda 通过具有多个 kNN 字段的最接近的文档对文档进行评分 Elasticsearch 不仅仅是一个词法&#xff08;文本&#xff09;搜索引擎。 Elasticsearch 是多功能搜索引擎&#xff0c;除了传统的文本匹配之外&#xff0c;还支持 k 最近…

华为设备配置静态路由和默认路由

华为设备配置静态路由和默认路由 理论部分知识&#xff1a; 路由分为两个大类&#xff1a;静态路由-----动态路由 静态路由&#xff1a;手工指定&#xff0c;适用于小规模的网络应用场景&#xff0c;如果网络规模变大&#xff0c;这样的方式非常不适合而且容易出错。 语法&…

【JavaEE进阶】——Mybatis操作数据库(使用注解和XML方式)

目录 &#x1f6a9;三层架构 &#x1f388;JDBC操作回顾 &#x1f6a9;什么是MyBatis &#x1f6a9;MyBatis⼊⻔ &#x1f388;准备工作 &#x1f4dd;创建⼯程 &#x1f4dd;数据准备 &#x1f388;配置数据库连接字符串 &#x1f388;写持久层代码 &#x1f388;单…

STM32作业设计

目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…

PyQt5创建与MySQL数据库集成的应用程序

最近&#xff0c;对之前的mysql管理系统进行了更新升级&#xff0c;制作了一版关于车牌的管理系统&#xff01; &#xff08;1&#xff09;实现了对车牌和用户基本信息的增删改查的功能 &#xff01; &#xff08;2&#xff09;加入了对数据库的刷新和状态显示功能 &#xff…

没有知网资源如何快速下载知网论文

今天有位同学求助一篇知网论文&#xff0c;“球磨-点击化学反应&#xff1a;无溶剂绿色反应方式”&#xff0c;其实下载知网论文是一件非常简单的事情&#xff0c;下面小编就把如何在家轻松查找下载知网论文的方法给大家演示一遍。 一、首先你需要获取知网使用权限&#xff0c…

css特殊效果和页面布局

特殊效果 圆角边框&#xff1a;div{border-radius: 20px 10px 50px 30px;} 四个属性值按顺时针排列&#xff0c;左上的1/4圆半径为20px&#xff0c;右上10&#xff0c;右下50&#xff0c;左下30。 div{border-radius: 20px;} 四角都为20px。 div{border-radius: 20px 10…

Maven配置

Maven – Download Apache Maven https://maven.apache.org/install.html 得下载有 bin的

MongoDB~俩大特点管道聚合和数据压缩(snappy)

场景 在MySQL中&#xff0c;通常会涉及多个表的一些操作&#xff0c;MongoDB也类似&#xff0c;有时需要将多个文档甚至是多个集合汇总到一起计算分析&#xff08;比如求和、取最大值&#xff09;并返回计算后的结果&#xff0c;这个过程被称为 聚合操作 。 根据官方文档介绍&…

Facebook开户 | Facebook二不限户

Facebook二不限户的正确使用方法 Facebook 二不限是指 Facebook 国内二不限户&#xff0c;是通过代理开出来的一种特殊账户&#xff0c;️需要广告主准备主页。 其特点是&#xff1a;限主页、不限域名、额度没解限&#xff0c;解限后则不限额度。 相比于三不限户&#xff0c;…

Notepad++不显示CRLF的方法

View -> Show Symbol -> 去掉勾选 Show All Characters

threejs 场景构建技巧与优化策略探讨

threejs 场景构建技巧与优化策略探讨 一、引言 在使用 Three.js 进行三维场景开发时&#xff0c;艾斯视觉作为行业ui设计与前端开发服务商很高兴能在这里与你共同探讨&#xff1a;如何高效地构建场景并实现良好的性能表现是至关重要的。本文将深入探讨一些场景构建的技巧以及…

LabVIEW在高校电力电子实验中的应用

概述&#xff1a;本文介绍了如何利用LabVIEW优化高校电力电子实验&#xff0c;通过图形化编程实现参数调节、实时数据监控与存储&#xff0c;并与Simulink联动&#xff0c;提高实验效率和数据处理能力。 需求背景高校实验室在进行电机拖动和电力电子实验时&#xff0c;通常使用…

Nodejs-- 网络编程

网络编程 构建tcp服务 TCP tcp全名为传输控制协议。再osi模型中属于传输层协议。 tcp是面向连接的协议&#xff0c;在传输之前需要形成三次握手形成会话 只有会话形成了&#xff0c;服务端和客户端才能想发送数据&#xff0c;在创建会话的过程中&#xff0c;服务端和客户…