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毫秒