1、前面几句:
x=[2007,2008,2009,2010,2011,2012,2013];y=[70,122,144,152,174,196,202];a=polyfit(x,y,1)b=polyfit(x,y,2)分别对数据x、y按照一次和二次多项式进行拟合(分别对应直线和抛物线),得到的系数保存在变量a和b中,其值为
a = 20.5 -41054 b = -2.4048 9687.6 -9.7565e+006后面的
a=[20,-41054], b=[0,9700,9756500]直接对a和b赋值,从数据看,与拟合得到的系数基本一致(但b的第三个数据符号搞反了),但如果有这两句,前面拟合得到的数据就会被覆盖,前面几句也就没什么用了。
2、拟合得到的系数a和b的含义是
y = a(1)*x + a(2)
y = b(1)*x^2 + b(2)*x + b(3)
这一点可以用下面语句画出图来更清楚:
plot(x,y,'r:.',x,a(1)*x+a(2),x,b(1)*x.^2 + b(2)*x + b(3)) legend('原始数据','一次多项式拟合','二次多项式拟合',0)
3、程序中有几处小错误:
(1)同一行的多个语句必须以分号或逗号隔开,像现在的写法是不行的;
(2)这一句:b=polyfit((x,y,2) 多了半个括号。
刚上高一就接触MATLAB,很不错。不过,你现在还需以学业为重,毕竟要想用好MATLAB,需要学习的知识还非常多,高中到大学这阶段的时光需要加倍珍惜。
希望对你有帮助。
x=1:5;y=x;
feval('fun',x,y)
你是计算p值,不是解方程。所以调用函数只能用feval( )不能用fsolve( )
第5行 y后边是点乘,丢了个符号“."