Matlab曲面拟合和插值
插值和拟合都是数据优化的一种方法,当实验数据不够多时常常须要用到这样的方法来绘图。
在matlab中都有特定的函数来完毕这些功能。
这两种方法的确别在于:
当測量值是准确的,没有误差时,一般用插值;
当測量值与真实值有误差时。一般用数据拟合。
插值:
对于一维曲线的插值,一般用到的函数yi=interp1(X,Y,xi,method) 。当中method包含nearst,linear,spline。cubic。
对于二维曲面的插值,一般用到的函数zi=interp2(X,Y,Z,xi,yi,method)。当中method也和上面一样,经常使用的是cubic。
拟合:
对于一维曲线的拟合,一般用到的函数p=polyfit(x,y,n)和yi=polyval(p,xi)。这个是最经常使用的最小二乘法的拟合方法。
对于二维曲面的拟合,有非常多方法能够实现。可是我这里自己用的是Spline Toolbox里面的函数功能。详细用法能够看后面的样例。
对于一维曲线的插值和拟合相对照较简单。这里就不多说了。对于二维曲面的插值和拟合还是比較有意思的。
总结归纳一下给出实例和解说。
%第一给样例
clc;clear;clf;
%原始数据的定义
x=[1:1:12];
y=[1:1:5];
%z是一个5乘12的矩阵。
z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;
0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;
0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;
0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;
0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];
%直接用原始数据绘图例如以下:
%surf三维表面图
surf(x,y,z);
title('Original data Plot');
xlabel('X'), ylabel('Y'), zlabel('Z'),
%对X,Y,Z轴范围的控制
axis([0 15 0 6 0.2 0.55]);

%第二给样例
clc;clear;clf;
%原始数据的定义
x=[1:1:12];
y=[1:1:5];
%z是一个5乘12的矩阵。
z=[0.2 0.24 0.25 0.26 0.25 0.25 0.25 0.26 0.26 0.29 0.25 0.29;
0.27 0.31 0.3 0.3 0.26 0.28 0.29 0.26 0.26 0.26 0.26 0.29;
0.41 0.41 0.37 0.37 0.38 0.35 0.34 0.35 0.35 0.34 0.35 0.35;
0.41 0.42 0.42 0.41 0.4 0.39 0.39 0.38 0.36 0.36 0.36 0.36;
0.3 0.36 0.4 0.43 0.45 0.45 0.51 0.42 0.4 0.37 0.37 0.37];
%先考虑插值,须要用到的函数interp2
x1=1:0.2:12;
y1=1:0.2:5;
[x2,y2]=meshgrid(x1,y1);
t11=interp2(x,y,z,x2,y2,'cubic');
surf(x1,y1,t11);
title('After Fit data Plot');
xlabel('X'), ylabel('Y'), zlabel('Z'),
%对X,Y,Z轴范围的控制
axis([0 15 0 6 0.2 0.55]);

%第三个样例
x = rand(100,1)*16 - 8;
y = rand(100,1)*16 - 8;
r = sqrt(x.^2 + y.^2) + eps;
z = sin(r)./r;
xlin = linspace(min(x),max(x),33);
ylin = linspace(min(y),max(y),33);
[X,Y] = meshgrid(xlin,ylin);
Z = griddata(x,y,z,X,Y,'cubic');
mesh(X,Y,Z) %interpolated
axis tight; hold on
plot3(x,y,z,'.','MarkerSize',15) %nonuniform

Matlab曲面拟合和插值的更多相关文章
- Matlab随笔之插值与拟合(上)
原文:Matlab随笔之插值与拟合(上) 1.拉格朗日插值 新建如下函数: function y=lagrange(x0,y0,x) %拉格朗日插值函数 %n 个节点数据以数组 x0, y0 输入(注 ...
- Matlab随笔之插值与拟合(下)
原文:Matlab随笔之插值与拟合(下) 1.二维插值之插值节点为网格节点 已知m x n个节点:(xi,yj,zij)(i=1…m,j=1…n),且xi,yi递增.求(x,y)处的插值z. Matl ...
- matlab二维插值--interp2与griddata
二者均是常用的二维插值方法,两者的区别是, interp2的插值数据必须是矩形域(X,Y必须分别是单调向量),即已知数据点(x,y)组成规则的矩阵,或称之为栅格,可使用meshgid生成. gridd ...
- CPP,MATLAB实现牛顿插值
牛顿插值法的原理,在维基百科上不太全面,具体可以参考这篇文章.同样贴出,楼主作为初学者认为好理解的代码. function p=Newton1(x1,y,x2) %p为多项式估计出的插值 syms x ...
- 【matlab】 拉格朗日插值
第一个函数 "lagrange1.m" 输入:X Y 与点x0 输出:插值函数对应函数值 y0 function y = lagrange1(X,Y,x0) n = length ...
- MATLAB拟合和插值
定义 插值和拟合: 曲线拟合是指您拥有散点数据集并找到最适合数据一般形状的线(或曲线). 插值是指您有两个数据点并想知道两者之间的值是什么.中间的一半是他们的平均值,但如果你只想知道两者之间的四分之一 ...
- MATLAB二维插值和三维插值
插值问题描述:已知一个函数上的若干点,但函数具体表达式未知,现在要利用已知的若干点求在其他点处的函数值,这个过程就是插值的过程. 1.一维插值 一维插值就是给出y=f(x)上的点(x1,y1),(x2 ...
- matlab学习——05插值和拟合(黄河小浪底调水调沙问题)
05插值和拟合 黄河小浪底调水调沙问题 data3.txt 1800 1900 2100 2200 2300 2400 2500 2600 2650 2700 2720 2650 32 60 75 8 ...
- matlab学习——05插值和拟合(一维二维插值,拟合)
05插值和拟合 1.一维插值 (1) 机床加工零件,试用分段线性和三次样条两种插值方法计算.并求x=0处的曲线斜率和13<=x<=15范围内y的最小值. x0=[0 3 5 7 9 11 ...
随机推荐
- VMware装ubuntu 进不去图形界面, 卡在Installing VMware Tools
1.按Ctrl +C结束,进入命令行 2.ubuntu login:_ 依次输入: 1)你的用户名:输入自己的! 2)你的密码:输入自己的! 3)获取root权限:sudo su 输密码 4)/etc ...
- HDU 1069 Monkey and Banana(DP 长方体堆放问题)
Monkey and Banana Problem Description A group of researchers are designing an experiment to test the ...
- Oracle性能优化顺序表名称来选择最有效的学习笔记
选择最有效的顺序表名(只有有效的基于规则的优化) ORACLE分析器按照订单处理从右到左FROM在FROM子句中的表名,故FROM写在最后的表(基础表 driving table)将被最先处理. 在 ...
- perl操作sqlserver实现BCP
#!C:\Perl64\bin #由BCP备份和恢复SQLSERVER指定表 use 5.014; #加载用户和password型材 my $username ; my $passwd; ##得到us ...
- 利用Eclipse中的Maven构建Web项目(三)
利用Eclipse中的Maven构建Web项目 1.将Maven Project转换成动态Web项目,鼠标右键项目,输入"Project Facets" 2.依据Dynamic W ...
- Java他们其中一个IO(一)
1.I/O 操作的目标 其中从数据源读取数据,和写数据到的目标位置数据. 2.IO 的分类方法 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTc ...
- ZOJ3819 ACM-ICPC 2014 亚洲区域赛的比赛现场牡丹江司A称号 Average Score 注册标题
Average Score Time Limit: 2 Seconds Memory Limit: 131072 KB Bob is a freshman in Marjar Univers ...
- QrcodeWithLogo
package com.qrcode; import java.awt.Color; import java.awt.Graphics2D; import java.awt.Image; import ...
- MyReport报表引擎2.0.0.0新功能
Web报表引擎:Web上的良好的打印解决方式,WinForm的打印预览体现,报表自己主动化,支持直接打印,页小计,统计,转成金额大写,一维码显示等功能,满足中国式报表的常见功能需求.Web报表编辑器: ...
- [WF4.0 现实] WF4.0 Receive && Send
写这篇博客的目的正是由于这个receive和send使用一直很困惑,有应用程序的多个实例,但整体感觉很模糊认识.每一次遇到,再要弄清楚.如今将这send和receive结合我们之前做的实例(未使用WC ...