作业帮 > 综合 > 作业

matlab曲线拟合的问题,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/21 16:55:55
matlab曲线拟合的问题,
想问一个关于matlab曲线拟合的问题,假设当x=[7.30 9.70 12.20 14.80 17.70 20.30 22.90 25.40 ]时,y=[25.00 40.00 55.00 85.00 112.00 145.00 190.00
230.00 ]
然后如何拟合曲线呢~如果拟合好的曲线,我想知道当x=40的时候,y=多少又应该怎么做的,
x=[7.30 9.70 12.20 14.80 17.70 20.30 22.90 25.40 ];
y=[25.00 40.00 55.00 85.00 112.00 145.00 190.00 230.00 ];
A=polyfit(x,y,2);%拟合成二次曲线
%提取系数
a=A(1);
b=A(2);
c=A(3);
%画原图
plot(x,y);hold on;
%画拟合曲线
plot(x,a*x.^2+b*x+c,'r');hold off;
%插值
X=40;
Y=a*X^2+b*X+c;
再问: 谢谢,这个拟合的是二次曲线,这是从论文上看的数据,就是如果将 x和y都取对数log的话,就是一条斜线,所以我感觉y和x的关系有点类似与指数函数,也可以用这种方法拟合吗?非常感谢~~~
再答: 可以呀,我把代码给你, clear;close all; x=[7.30 9.70 12.20 14.80 17.70 20.30 22.90 25.40 ]; y=[25.00 40.00 55.00 85.00 112.00 145.00 190.00 230.00 ]; %取对数: x_log=log(x); y_log=log(y); %拟合x_log,y_log成一次曲线 %logy=a*logx+b %y=e^(a*logx+b) %y=e^b*e^(a*logx) %y=e^b*e^(log(x^a)) %y=e^b*(x^a) %y=C*x^a,其中C=e^b. A=polyfit(x_log,y_log,1); %提取系数 a=A(1); b=A(2); %画原图 plot(x,y); hold on; %画拟合曲线 plot(x,exp(a*x_log+b),'r'); hold off; %插值: X=40; Y=exp(a*log(X)+b); %呵呵,比较正点!
再问: 非常感谢,按照程序我试了两种方法,自己觉得第一种和原来的曲线更贴近呢,呵呵,可论文又是用的对数的,矛盾啊~~~~ 这个可以不回答啊~~~~