数学建模 —— 插值与拟合(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

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python深度学习入门-从零构建CNN和RNN

文章目录 第1章 基本概念1.1. 导数1.2. 链式法则1.3. 多输入函数的导数1.4. 多输入向量函数的导数1.5. 向量函数及其导数&#xff1a; 再进一步1.6. 包含两个二维矩阵数据的计算图 第2章 基本原理2.1. 监督学习概述2.2. 监督学习模型2.3. 线性回归2.3.1. 线性回归&#xff1a; …

jupyter notebook更改位置

1.找到jupyer的配置文件 一般在c盘用户的.jupter文件夹下 2. 用记事本打开这个配置文件&#xff0c;定位到c.NotebookApp.notebook_dir /path_to_your_directory 替换你的位置 3.找到jupyer图标的位置&#xff0c;打开属性 添加要存放的位置在目标文件的末尾&#xff0c;重新…

童梦奇缘,味你而来 —— 蒙自源六一儿童节特别活动

在六月的暖阳下&#xff0c;孩子们的欢笑声如同最美妙的乐章&#xff0c;奏响了夏日的序曲。在这个充满童真与梦想的季节&#xff0c;蒙自源精心策划了一场别开生面的六一儿童节特别活动&#xff0c;邀请每一位小朋友和大朋友&#xff0c;一同踏上一段奇妙的味蕾之旅。 从5月25…

数据库(16)——DQL执行顺序

DQL的执行顺序 这是DQL的编写顺序。 而实际的执行顺序为

企业级win10电脑下同时存在Python3.11.7Python3.6.6,其中Python3.6.6是后装的【过程与踩坑复盘】

背景&#xff1a; 需要迁移原始服务器的上的Python3.6.6Flask项目到一个新服务器上&#xff0c; 新服务器上本身存在一个Python3.11.7, 所以这涉及到了一个电脑需要装多个Python版本的问题 过程&#xff1a; 1-确定新电脑版本【比如是32还是64位】 前面开发人员存留了两个…

读人工智能时代与人类未来笔记19_读后总结与感想兼导读

1. 基本信息 人工智能时代与人类未来 (美)亨利基辛格,(美)埃里克施密特,(美)丹尼尔胡滕洛赫尔 著 中信出版社,2023年6月出版 1.1. 读薄率 书籍总字数145千字&#xff0c;笔记总字数39934字。 读薄率39934145000≈27.5% 1.2. 读厚方向 千脑智能 脑机穿越 未来呼啸而来 …

golang的http客户端封装

简介 net/http 是 Go 语言标准库的一部分&#xff0c;它提供了创建 HTTP 客户端和服务器的能力。这个包通过简化与 HTTP 协议的交互&#xff0c;让开发者能够方便地构建 HTTP 请求和响应&#xff0c;以及处理路由等任务。 本文以 net/http 包作为底层&#xff0c;封装一个包含…

解决VIvado编程中遇到的bug 5

解决VIvado编程中遇到的bug 5 语言 &#xff1a;Verilg HDL EDA工具&#xff1a; Vivado、quartus2 、modelsim 解决VIvado编程中遇到的bug 5一、引言二、问题、分析及解决方法1. vivado编译时报错&#xff08;1&#xff09;错误&#xff08;2&#xff09;分析&#xff08;3&am…

HTML标签(超链接、锚、表格、表单)

HTML的标签2 超链接标签&#xff1a;锚链接&#xff1a;表格标签&#xff1a;表单&#xff1a;输入输出&#xff1a; 超链接标签&#xff1a; 超链接标签&#xff1a;a ​ 属性&#xff1a; ​ href - 链接地址 ​ target - 跳转目标&#xff08;_self在当前卡…

基于单片机的病床呼叫系统设计研究

摘要&#xff1a;随着无线技术的快速发展&#xff0c;无线应用技术已经运用到人们生产生活中的多个领域&#xff0c;运用无线技术来设计病床呼叫系统能够实现无线信号的远距离传输&#xff0c;减少材料耗费&#xff0c;使医患之间的沟通更加便捷&#xff0c;该系统运用单片机作…

VSCode界面Outline只显示类名和函数名,隐藏变量名

参考链接 https://blog.csdn.net/Zjhao666/article/details/120523879https://blog.csdn.net/Williamcsj/article/details/122401996 VSCode中界面左下角的Outline能够方便快速跳转到文件的某个类或函数&#xff0c;但默认同时显示变量&#xff0c;导致找某个函数时很不方便。…

【传知代码】多视图3D目标检测位置嵌入变换(论文复现)

前言&#xff1a;三维目标检测技术正逐渐成为计算机视觉领域的重要研究方向。特别是在自动驾驶、增强现实&#xff08;AR&#xff09;、虚拟现实&#xff08;VR&#xff09;以及机器人导航等应用中&#xff0c;对三维空间内目标的精准检测与定位显得尤为重要。然而&#xff0c;…

virtualbox虚拟机、centos7安装增强工具

文章目录 1. virtualBox语言设置2. 设置终端启动快捷键3. 添加virtualbox 增强工具4. 设置共享文件夹 1. virtualBox语言设置 virtualbox -> file -> perferences -> language ->选择对应的语言 -> OK virtualbox -> 管理 -> 全局设定 -> 语言 -> …

点赋科技:建设智能饮品高地,打造数字化产业先锋

在当今数字化时代的浪潮中&#xff0c;点赋科技以其敏锐的洞察力和卓越的创新能力&#xff0c;致力于建设智能饮品高地&#xff0c;打造数字化产业先锋。 点赋深知智能饮品机对于推动社会进步和满足人们日益增长的需求的重要性。因此&#xff0c;他们投入大量资源和精力&#x…

[AI Google] 三种新方法利用 Gemini 提高 Google Workspace 的生产力

Workspace 侧边栏中的 Gemini 现在将使用 Gemini 1.5 Pro&#xff0c;新的 Gemini for Workspace 功能即将登陆 Gmail 移动应用&#xff0c;等等。 Gemini for Google Workspace 帮助个人和企业更好地利用 Google 应用——从在 Gmail 中撰写邮件到在 Sheets 中组织项目计划。过…

echarts学习: 图表自适应

1.实现基本功能 我最近在研究如何封装echarts组件&#xff0c;几乎每个相关的文章都会给组件添加图表自适应的功能。其原理也很简单&#xff0c;就是通过侦听window的resize事件&#xff0c;当事件触发时就调用chartInstance.resize方法重置图表尺寸。 基本代码如下: // 重置…

如何快速上手Python,成为一名数据分析师

目录 写在前面 推荐图书 推荐理由 粉丝福利 写在最后 写在前面 520快乐&#xff01;喜欢Python的小伙伴有福啦&#xff0c;本期博主给大家推荐一本入门Python的热门书籍&#xff0c;快来看看吧~ 推荐图书 《Python数据分析快速上手》(王靖&#xff0c;商艳红&#xff0…

基础数学内容重构(后缀0个数)

今天也是参加了一下宁波大学的校赛&#xff0c;其中有一道题是求后缀0的个数&#xff0c;题意是让我们求一下式子的后缀0个数&#xff1a; 看上去比较复杂&#xff0c;但是通过化简我们可以知道以上式子就是求&#xff08;n 1&#xff09;&#xff01;&#xff0c;这里化简的过…

【学习笔记】Vue3(Ⅰ)

Vue3(Ⅰ) 1、 概述 1.1、概述 1.2、使用 Vite 创建工程 1.2.1 Vite 介绍 1.2.2 创建工程 1.3、项目文件结构2、 基础 2.1、setup 2.1.1 初识 setup 2.1.2 setup 的返回值 2.1.3 setup 的触发时机…

Matlab2010安装注册+激活(保姆级教程)

目录 一、软件安装 二、软件激活 三、软件测试 Matlab2010压缩包: 链接&#xff1a;https://pan.baidu.com/s/1bX4weZ0nC-4zlDLUiSKcRQ?pwdxljj 提取码&#xff1a;xljj 一、软件安装 1.解压所给压缩包&#xff0c;目录双击setup.exe打开. (如果用户名为中文则会遇到这个…