MATLAB中插值算法实现
%%%1.M文件
%(1).以往少的程序可以在命令行窗口进行编码,但大量的程序编排到命令行窗口,
%会有造成乱码的危险.
(2).如果将命令编成程序存储在一个文件中(M文件),依次运行文件中的命令,
则可以重复进行
%(3).M文件根据调用方式的不同可以分为两类:
Script:脚本文件/命令文件
Function:函数文件
M文件均以 .m为扩展名
(4).
(5).
(6).
%%%2.数据输入:input
>>A=input('请输入你要输入的数字:');
请输入你要输入的数字:1.2 %输入后保存到A里面
(1).A = importdata(filename)将数据从文件名所表示的文件中加载到数组 A 中
(2).num=xlsread(filename)适用于纯数值型数据
%a.xlsread 是数学软件 MATLAB 中读取 Excel 文件中数据的一个函数
%即从当前程序所在文件夹里,按照函数中的参数指定的范围,从单元格开始读取文件,返回数据。
b. num = xlsread(‘filename’,‘sheet’)选择所在的sheet,比如说’sheet1’
c.num = xlsread(‘filename’, ‘range’)所在的单元格范围,比如说range=‘A1:A8’
(3).A=readtable(filename)通过从文件中读取列向数据来创建表。
+++++申明: filename是文件名字 pathname是该文件地址
%%%3.网格线和坐标边框
(1).网格线:grid on
grid off
%figure() 函数figure主要是创建图窗窗口
figure(n)查找到n存在时,将当前窗口切换成n,不存在时创建标识为n的图窗
(2).对数坐标图:
semilogy(x1,y1,'参数1'…)%x轴为线性坐标刻度,y轴为常用对数刻度
%%%4.数据处理:
(1).插值问题:题目所给的数值参考(一堆数据)是按照规律每隔多少进行测量所得到的值:
那么问题来了:求那些在规律间隔内的数,并做出变化图
%上述问题可归结为:已知函数在某区间(域)内若干个点所处的位置,求函数在该区间其他点上的值
在x0,x1…x(n)处取值y0,y1…y(n),关于y(n)的多项式存在并且唯一(就是过这些点的方程是唯一的)
所以这个方程就是插值问题的解
%常用的插值法:Lagrange:拉格朗日多项式插值法
科学研究中,几乎所有的问题都可以用y=f(x)的方程进行表达,但在实践中,我们只知道一部分坐标的
数据,而根据这些数据我们能够求出这些数据的解析式,但无法求出这些数据(x)之外的所对应的y值。
所以多项式插值应运而生。
%假设有3个不在同一直线上的点,分别为(x1,y1)、(x2,y2)、(x3,y3),求出过这3个点的曲线方程
%假设方程为:f(x)=a0+a1*x+a2*x^x
则有f1(x1)=a0+a1*x1+a2*x2^2
f2(x2)=a0+a1*x2+a2*x2^2
f3(x3)=a0+a1*x3+a2*x2^2 %确实难解三元2次方程组
拉格朗日认为可以通过三根二次曲线相加来达到目标。那这是怎么的三根二次曲线呢?
第一根曲线f1(x1),在 x1 点处取值,f1(x1)=1,f2(x2)=f3(x3)=0,因此得到过(x1,1)(x2,0)(x3,0)
的曲线,
第二根曲线f2(x2),在 x2 点处取值,f2(x2)=1,f1(x1)=f3(x3)=0,因此得到过(x1,0)(x2,1)(x3,0)
的曲线,
第三根曲线f3(x3),在 x3 点处取值,f3(x3)=1,f2(x2)=f1(x1)=0,因此得到过(x1,0)(x2,0)(x3,1)
的曲线,
往下依次……
%所以得到,y1*f1(x1)--->从坐标角度理解:那么就得到了过(x1,y1)的曲线
%y2*f2(x2)--->过(x2,y2)的曲线
%y3*f3(x3)--->过(x3,y3)的曲线
在根据拉格朗日的说法:f(x)=y1*f1(x)+y2*f2(x)+y3*f3(x)
所以得到通式:f(x)=y(i)*fi(x)
%%拉格朗日多项式插值实现流程:
1.根据初始数据x的取值求出相应的y值
2.建立m×n的矩阵
3.计算f(x)=y(i)*fi(x)(for循环)
(2).高次拉格朗日插值的Runge(龙格)现象:
Runge(龙格)的研究,证明了多项式插值的次数不超过七时成立,超过七时,插值多项式会出现严重的
震荡现象(称为Runge现象)
以f(x)=1/(1+(25*x)^2)为例:
%演示龙格函数的插值情况
for i=3:2:11
x=linspace(-1,1,i);
y=1./(1+25*x.^2);
p=polyfit(x,y,i-1);
xx=-1:0.01:1;
yy=polyval(p,xx);
plot(xx,yy,'b');
hold on;
grid on;
end;
plot(x,1./(1+25*x.^2),'r');
(2).MATLAB中一维插值:
一维插值命令是interp1,格式为:y(i)=interp1(x,y,xi,'选用的插值方法是什么(Lagrange)等等');
%x,y:是我已知的坐标
%xi:是我待插值的坐标
%插值方法:'nearest'-最邻值插值
'linear'--线性插值
'spline'--三次样条插值
'cubic'--立方插值
二维插值命令是interp2,格式为:z(i)=interp2(x,y,z,xi,yi,'方法');
MATLAB中插值算法实现的更多相关文章
- paper 121 :matlab中imresize函数
转自:http://www.cnblogs.com/rong86/p/3558344.html matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = i ...
- matlab中imresize
matlab中函数imresize简介: 函数功能:该函数用于对图像做缩放处理. 调用格式: B = imresize(A, m) 返回的图像B的长宽是图像A的长宽的m倍,即缩放图像. m大于1, 则 ...
- MATLAB中的函数的归总
字符串操作函数 1. 函数eval可以用来执行用字符串表示的表达式 2. 函数deblank可以去掉字符串末尾的所有空格 3. 函数findstr可以用来在长 ...
- Matlab中插值函数汇总(上)
Matlab中插值函数汇总分上下两个部分,主要整合自matlabsky论坛dynamic发表于2009-2-21 21:53:26 的主题帖,以及豆丁网rickoon上传的教材第8章<插值,拟合 ...
- [转载]Matlab中插值函数汇总和使用说明
http://blog.sciencenet.cn/blog-457143-679275.html MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,' ...
- MATLAB中绘制质点轨迹动图并保存成GIF
工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...
- matlab 中 eps 的分析
eps(a)是|a|与大于|a|的最小的浮点数之间的距离,距离越小表示精度越高.默认a=1: 这里直接在matlab中输入:eps == eps(1)(true). 我们知道浮点数其实是离散的,有限的 ...
- matlab中patch函数的用法
http://blog.sina.com.cn/s/blog_707b64550100z1nz.html matlab中patch函数的用法——emily (2011-11-18 17:20:33) ...
- MATLAB中FFT的使用方法
MATLAB中FFT的使用方法 说明:以下资源来源于<数字信号处理的MATLAB实现>万永革主编 一.调用方法X=FFT(x):X=FFT(x,N):x=IFFT(X);x=IFFT(X, ...
随机推荐
- 工时资源(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 资源既然各种导入都会发生些不可描述的事,那就手工建立吧.但是问题又来了,资源还分种类的:工时资源.材料资源和成本资源. 好 ...
- Table.PromoteHeaders升降标题Table…Headers(Power Query 之 M 语言)
数据源: 任意数据源 目标: 将第一行提升为标题 操作过程: [主页](或[转换])>[将第一行用作标题] M公式: = Table.PromoteHeaders( 表, [PromoteAll ...
- MindSpore联邦学习框架解决行业级难题
内容来源:华为开发者大会2021 HMS Core 6 AI技术论坛,主题演讲<MindSpore联邦学习框架解决隐私合规下的数据孤岛问题>. 演讲嘉宾:华为MindSpore联邦学习工程 ...
- c++设计模式概述之工厂
类写的不规范,原因: 缩短篇幅,实际中请不要这样写. 欢迎指正 工厂模式,如其名,想象下现实生活中的工厂,比如Apple的组装工厂,小米产品的组装工厂,华为设备的组装工厂.对我们用户而言,不需要知道他 ...
- 【LeetCode】1405. 最长快乐字符串 Longest Happy String
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 贪心 日期 题目地址:https://leetcode ...
- java源码——计算不同图形的周长和面积
计算任意三角形,正方形,正五边形,圆形的周长和面积. 利用类的继承实现. 将计算结果进行输出. 不多说,贴码. Contants.java 常量存储类 <pre name="code& ...
- 【LeetCode】1013. Pairs of Songs With Total Durations Divisible by 60 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 【LeetCode】526. Beautiful Arrangement 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 日期 题目地址:https://leetcode.c ...
- 1289 - LCM from 1 to n
http://blog.csdn.net/acdreamers/article/details/18507767 这个是位图的链接,这篇写的挺好. 模板: 1 #include<math.h&g ...
- Java学到什么程度可以面试工作?
先说结论: 1 大多数公司,对于Java初级开发的要求是,会用Spring Boot+JPA做增删改查 2 所以零基础的Java小白,无需学太多的内容,只要掌握Spring Boot+JPA做增删改 ...