Matlab 版 (精华区)

发信人: bage (最近比较烦), 信区: Matlab
标  题: Matlab详细教程(五十九)
发信站: 哈工大紫丁香 (Sun Feb  4 13:09:24 2001), 转信

发信人: finance (淼水), 信区: MathTools
发信站: BBS 水木清华站 (Sun Apr  4 08:26:37 1999) WWW-POST

7.3.3 多项式契合及函数计算

------------------------------------------------------------------------------
--

和 polyfit有关的另一个函数是用来做多项式函数计算 polyval,由 polyfit 算出多项
式的各个系数 ()后,即可以 polyval 计算多项式的函数值。它的语法为
polyval(coef,x),其中 coef 是多项式的各个系数所构成的阵列,x则是要计算多项式值
的x阵列。举一例说明 

>> x=[0 1 2 3 4 5]; 

>> y=[0 20 60 68 77 110]; 

>> coef=polyfit(x,y,1); % 计算线性回归的各项系数 

>> ybest=polyval(coef,x); % 直接以polyval计算多项式的数值 


这个函数 polyval真是大大的好用,如果没有它的话,那我们要计算多项式的函数值还要
费一番功夫。假设已有五阶的多项式回归,要计算对应的多项式值,则须以下的步骤 

>> coef=polyfit(x,y,5); 

>> a0=coef(1); 

>> a1=coef(2); 

>> a2=coef(3); 

>> a3=coef(4); 

>> a4=coef(5); 

>> a5=coef(6); 

>> f=a0 + a1*x + a2*x.^2 + a3*x.^3 + a4*x.^4 + a5*x.^5;


我们接著示范从二阶到九阶的多项式回归的程式 

>> x=[0 1 2 3 4 5]; 

>> y=[0 20 60 68 77 110]; 

>> newx=0:0.05:5; % 以新阵列形成更小增量以利回归计算及绘图 

>> for n=2:9 

>> f(:,n)=polyval(polyfit(x,y,n),newx)'; 

>> plot(newx,f(:,n),x,y,'o') 

>> title(['Poly. regression, deg=',int2str(n)]) 

>> xlabel('Time'), ylabel('Temp'), grid 

>> pause % 每次要暂停看清楚图再执行下一步骤 

>> end


在上述的 title指令中我们示范了如何将一变数输入(n代表多项式的阶数),是利用
int2str这个指令,它是用来将一整数(integer) 转换成为一个字串 (string),因为在
title中只能以字串出现。此外在 title指令中尚须以 [ ] 将所有叙述包括在内。类似的
指令尚有 num2str 它是用来将实数转换成一字串。有关这几个新介绍的详细说明,请参
考 title, int2str, num2str 的线上说明。 



------------------------------------------------------------------------------
--
  
上一页 下一页 讲义大纲 
--
行至水穷处,坐看云起时
***********************
菩提本无树,明镜亦非台
本来无一物,何处染尘埃

※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.167.103] 

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bage.bbs@smth.org]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.142毫秒