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 ...
随机推荐
- DiskFileUpload类别
1.2.2 DiskFileUpload类 DiskFileUpload类是Apache文件上传组件的核心类,应用程序开发者通过这个类来与Apache文件上传组件进行交互.以下介绍DiskFileUp ...
- 使用Intel HAXM 加速你的Android模拟器
Android 模拟器一直以运行速度慢著称, 本文介绍使用 Intel HAXM 技术为 Android 模拟器加速, 使模拟器运行度媲美真机, 彻底解决模拟器运行慢的问题. Intel HAXM ( ...
- CopyOnWriteArrayList源代码阅读器
java.util.concurrent在相应的并发集合的包中定义的通用集合类,为了有效地处理并发场景.间CopyOnWriteArrayList它是合适ArrayList.顾名思义CopyOnWri ...
- PHP情人:p十几天来学习hp第一天
我这里是暂时的 Apache web server 和 MY SQL 如WEB,在php-4.3.3下的环境做的程序.当然要简单的构建和訪问查看数据库 PHPMYADMIN 不可少. 以下简介一下P ...
- java提高篇(十)-----强制类型转换
在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需 ...
- iOS 辛格尔顿
单例模式: 为什么使用单例,单例模式的用途是什么?以下我们举一个样例来诠释一下 举个大家都熟知的样例--Windows任务管理器,如图,我们能够做一个这种尝试,在Windows的"任务栏&q ...
- 【UML】概念、关联、画画(一)
最近画UML画画,于UML观看视频后还没有学会.它是的结果UML九图是不是太懂,我想加深绘制过程的理解,我一个新的水平. 现在我觉得是时候..地介绍一下UML.了解一下它的基本内容.达到深入浅出的效果 ...
- 【C语言探索之旅】 第三部分第二课:SDL开发游戏之创建窗口和画布
内容简介 1.第三部分第二课: SDL开发游戏之创建窗口和画布 2.第三部分第三课预告: SDL开发游戏之显示图像 第三部分第二课:SDL开发游戏之创建窗口和画布 在上一课中,我们对SDL这个开源库做 ...
- 求Sn=a+aa+aaa+…+aa…aaa(有n个a)…
时间限制: 1 Sec 内存限制: 128 MB 提交: 352 解决: 174 [提交][状态][讨论版] 题目描述 求Sn=a+aa+aaa+-+aa-aaa(有n个a)之值,其中a是一个数字 ...
- RH033读书笔记(13)-Lab 14 Network Clients
Goal: Practice using a variety of tools to transfer files between your system and a remote system. S ...