庞大资源库的计算机教程网站!
设为首页
加入收藏
总编信箱
投稿或申请专栏请先 [登 陆]
首页 操作系统 程序设计 图形图像 媒体动画 机械电子 WEB开发 数 据 库 办公系列 路由技术 网络原理 网络应用
认证考试 安全技术
首页>机械电子>MATLAB>Matlab基础>正文
资料搜索
Google搜索
Google
返回上级列表

推荐文章

快速保存网页中所有图片的方法
Windows中让光驱巧妙“隐身”技
防范非法用户入侵Win 2000/XP系
两款比较典型的ASP木马防范方法
有关表格边框的css语法整理
Windows XP中可以被禁用的服务
SQL Server导出导入数据方法
Javascript所有对象的属性的获
网页(HTML)中的特殊字符
与篮球共舞,尽显模式本色
QQ病毒的手工清除方法
Photoshop为极品美女打造性感睫
天衣无缝:IIS与PHP水火也相容
SQL Server存储过程编写和优化

多项式与插值

 作者:本站收集   日期:2005-3-22
字号选择〖 〗/ 双击滚屏 单击停止   

多项式

多项式的表达

MatLab中用按降幂排列的多项式系数组成的行向量表示多项式,如:
p(x)=x^3-2x-5被表示为:

p = [1 0 –2 –5];

多项式的根

r = roots(p)
r =
   2.0946   
   –1.0473 + 1.1359i
  –1.0473  – 1.1359i

根被储存为列向量
若要由方程的根构造多项式,则

p2 = poly(r)
p2 =
  1 8.8818e-16   –2    –5

多项式估计

可以用多项式估计出多项式在某一点的值:

polyval(p,5)
ans =
   110

同样也可以估计矩阵多项式的值p(X) = X^3 – 2X – 5I,

X = [2 4 5; –1 0 3; 7 1 5];
Y = polyvalm(p,X)
Y =
  377 179 439
  111 81 136
  490 253 639

卷积

多项式相乘是一个卷积的过程,conv()

a = [1 2 3];
b = [4 5 6];
c = conv(a,b)
c =
   4  13  28  27  18

多项式相除是其逆过程,用deconv():

[q,r] = deconv(c,a)
q =
  4   5   6
r =
  0   0   0   0   0

多项式曲线逼近

polyfit(x,y,n)能用多项式逼近由x,y向量提供的数据,n是其阶数,如:

x = [1 2 3 4 5];
y = [5.5 43.1 128 290.7 498.4];
p = polyfit(x,y,3)
p =
   –0.1917   31.5821   –60.3262   35.3400

将图画出

x2 = 1:.1:5;
y2 = polyval(p,x2);
plot(x,y,’o’,x2,y2)
grid on

分式多项式分解

residue()可将分式多项式分解如下:

对于下式

分解为:

b = [–4 8];
a = [1 6 8];
[r,p,k] = residue(b,a)
r =
   –12   8
p =
   –4   –2
k =
   []

重载此函数可以完成分式多项式相加:

[b2,a2] = residue(r,p,k)
b2 =
   –4   8
a2 =
   1    6   8

插值

插值是在已知的数据列中,估计别点的函数值.

一维插值

一维插值在MatLab中有两种方法:
@ 多项式插值
@ 建立在FFT上的插值

多项式插值

yi = interp1(x,y,xi,method)
x是坐标向量,y是数据向量,xi是待估计点向量,method是插值方法,
method有四种:
  1.nearest 寻找最近数据点,由其得出函数值;
  2.linear 线性插值(该函数的默认方法);
  3.spline 样条插值,数据点处光滑--左导等于右导;
  4.cubic 三次插值

以上四种方法得出的数据值一个比一个精确,而所需内存及计算时间也一个比一个要大要长.

建立在FFT上的插值

这种方法利用了快速傅立叶变换

y = interpft(x,n),其中,x含有周期性的函数值.

二维插值

ZI = interp2(X,Y,Z,XI,YI,method)
method有三种:
  1.nearest 寻找最近数据点,由其得出函数值;
  2.linear 二维线性插值
  3.cubic 二维三次插值

下面来看看二维插值的例子:

先创造数据点:

[x,y] = meshgrid(–3:1:3);
z = peaks(x,y);
surf(x,y,z)

再比较一下不同的插值

[xi,yi] = meshgrid(–3:0.25:3);
zi1 = interp2(x,y,z,xi,yi,'nearest');
zi2 = interp2(x,y,z,xi,yi,'bilinear');
zi3 = interp2(x,y,z,xi,yi,'bicubic');



三维及多维插值

列出函数,其余从略

VI = interp3(X,Y,Z,V,XI,YI,ZI,method)
VI = interpn(X1,X2,X3...,V,Y1,Y2,Y3,...,method)

上一篇:常微分方程    下一篇:MATLAB 程式设计与应用  
[发送给好友]  [关闭窗口]  [返回顶部]   转载请注明来源:www.it00.com   
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑: 原点 投稿作者: 本站收集
信息来源: 网络 录入时间: 2005-3-22
关于我们 - 广告服务 - 版权申明 - 网站地图 - 联系方式 - 总编信箱 - 会员投稿