matlab 指数模拟,怎么用作图函数作图呢

来源:百度知道 编辑:UC知道 时间:2024/06/18 01:11:44
x=[2 3 4 5 7 8 10 11 14 15 16 18 19];
y=[106.42 108.26 109.58 109.5 110 109.93 110.49 110.59 110.6 110.9 110.76 111 111.2];
if min(y)<0
error(['WARNING!', ...
'y最小值不能小于0']);
end
str='指数拟合的次数很低';
disp(str);
lgy=log(y);
x3=min(x):0.1:max(x);
for n=1:3
v(n,1:n+3)=polyfit(x,lgy,n+2);
y3(:,n)=polyval(v(n,1:n+3),x3);
text=strcat(num2str(n+2),'次指数模拟函数为');
disp(text);
disp(poly2str(v(n,1:n+3),'x'));
end
plot(x,y,'o',x3,y3,'*');
legend('离散的点','三次模拟','四次模拟','五次模拟');
title('模拟图示');
xlabel('X轴');
ylabel('Y轴');
pause;
这个打印出来的 不是指数模拟的函数,怎么才能打印拟合出来的指数呢

画图的时候y3改为exp(y3)就可以了,因为你前面是取lg y的,画图的时候当然反回去算了。
plot(x,y,'o',x3,(y3),'*')

另外,你给的程序有一个地方错了。
y3(:,n)=polyval(v(n,1:n+3),x3);
这句把行向量赋值给y3的某一列了。要转置一下,在后面加个撇号(单引号)。
改成y3(:,n)=polyval(v(n,1:n+3),x3)' ;