Liner(分段线性插值)
来源:互联网 发布:java web服务器开发 编辑:程序博客网 时间:2024/06/07 22:02
第一次写微博,记录自己的学习历程~~~~欢迎大家一起探讨~~~~
分段线性插值故名思议就是说把给定样本点的区间分成多个不同区间,记为[xi,xi+1],在每个区间上的一次线性方程为:
关于其证明:
分段线性插值在速度和误差取得了很好的平衡,插值函数具有连续性,但是由于在已知点的斜率是不变的,所以插值结果不光滑。
第一次用matlab写代码,有点手生。
liner.m文件:
function yy = liner(x,y,xx)%x是已知数据点的x值%y是已知数据点的y值%是待插入点的横坐标值%假设输入的样本点的x值是依次增大的syms t;if(length(x)==length(y)) n=length(x);else disp('x和y维数不相等!'); return;endfor i=1:n-1 % disp(['区间为',num2str(x(i)),'-',num2str(x(i+1))]); yy(i)=((t-x(i+1))/(x(i)-x(i+1)))*y(i)+((t-x(i))/(x(i+1)-x(i)))*y(i+1);endif(nargin==3) nn=length(xx);for i=1:nn for j=1:n-1 if(xx(i)>x(j)&xx(i)<=x(j+1)) yynum(i)=subs(yy(j),'t',xx(i)); %计算插值点的函数值.subs是替换函数,把x0用t替换 end endend yy=yynum;else yy=collect(yy); %将插值多项式展开 yy=vpa(yy,6); %将插值多项式的系数化成6位精度的小数endend
linerInsert.m文件:
x=0:2*pi;y=sin(x);xx=0:0.2:6;yy=liner(x,y,xx);plot(x,y,'o:',xx,yy,'+r')
可以看到插值结果:
0 0
- Liner(分段线性插值)
- 分段线性插值
- 分段线性插值
- C# 分段线性插值函数
- 分段线性插值 C#代码
- matlab利用分段线性插值改变采样频率
- 数值分析之 拉格朗日插值、牛顿插值、分段线性插值实现
- 线性插值
- 线性插值
- 线性插值
- [Perl]One-liner
- [Perl]One-Liner
- microstation level2 liner pattern
- 线性插值方法
- 线性插值算法
- 线性插值原理
- Matlab线性插值
- 线性插值算法
- 数据结构——有序线性表的的插入与删除
- iOS sqlite 数据库加密
- A problem of sorting----(BestCoder Round #54 (div.2))
- react-native试玩(33)-状态栏API
- CSS 最核心的几个概念
- Liner(分段线性插值)
- Java 利用 HttpURLConnection 读取页面 返回字节流(生成静态页面)
- android开发记录
- BeanFactory接口包含基本方法
- 枚举类型(C#)
- python:open/文件操作
- 四种常见的 POST 提交数据方式
- 第九章 内存管理
- 对象赋值为null时 内存分配情况,以及什么时候使用效率高