作业帮 > 综合 > 作业

如何用MATLAB对二组数据同时进行曲线拟合

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/05 11:10:43
如何用MATLAB对二组数据同时进行曲线拟合
各位MATLAB专家,本人对这个软件不懂,但是想用它来拟合一组数据成曲线和方程,我现在已经知道一组(X,Y)如何来拟合成曲线和方程了,可是要是有二组数据要同时拟合成曲线且在一个坐标区内又如何拟合呢?如:x=[0 10 20 30 40 50 60 70 80 90 100];y1=[0 0.07 0.15 0.25 0.35 0.49 0.59 0.72 0.91 1.14 1.47];y2=[0 0.08 0.17 0.26 0.36 0.50 0.61 0.73 0.93 1.16 1.48]这个就是指在X是一样的情况下所获得的二组Y数据.请多指教.同时如果是三组、四组呢?
上面两位的意思是一样的,我试过了都可以获得二条曲线,但是在图中散点没有了,只有曲线了,要是能在图中同时有散点和曲线就好了,另外是否可以有像拟合一条曲线一样的简易方法,也就是用CFTOOL(X,Y)的方法呢?而且直接就得到了方程.
这个我会,其实很简单,只要在程序上加上hold on 即可,程序如下:
x=[0 10 20 30 40 50 60 70 80 90 100];
y1=[0 0.07 0.15 0.25 0.35 0.49 0.59 0.72 0.91 1.14 1.47];
y2=[0 0.08 0.17 0.26 0.36 0.50 0.61 0.73 0.93 1.16 1.48];
[p,S]=polyfit(x,y1,2);
[p,S]=polyfit(x,y2,2);
Y=polyconf(p,x,y1);
plot(x,y1,'r');
hold on;
Y=polyconf(p,x,y2);
plot(x,y2,'b')
我运行了,没有问题
要多组也是没有问题的,加上hold on 就行了
方程的话,求出p和S就行了!如下:
x=[0 10 20 30 40 50 60 70 80 90 100];
y1=[0 0.07 0.15 0.25 0.35 0.49 0.59 0.72 0.91 1.14 1.47];
y2=[0 0.08 0.17 0.26 0.36 0.50 0.61 0.73 0.93 1.16 1.48];
[p1,S]=polyfit(x,y1,2);
[p2,S]=polyfit(x,y2,2);
p1,p2
p1 =
0.0001 0.0031 0.0308
p2 =
0.0001 0.0035 0.0355
方程就是:y1=0.0001x^2+0.0031x+0.0308
y2=0.0001x^2+0.0035x+0.0355
补充:你还要图中的散点?也简单,如下:
x=[0 10 20 30 40 50 60 70 80 90 100];
y1=[0 0.07 0.15 0.25 0.35 0.49 0.59 0.72 0.91 1.14 1.47];
y2=[0 0.08 0.17 0.26 0.36 0.50 0.61 0.73 0.93 1.16 1.48];
[p,S]=polyfit(x,y1,2);
[p,S]=polyfit(x,y2,2);
Y=polyconf(p,x,y1);
plot(x,y1,'r+',x,y1,'r');
hold on;
Y=polyconf(p,x,y2);
plot(x,y2,'b*',x,y2,'b')
要是用cftool的话,真是没办法说,但是可以确定的是,可以将它们放在同一个图上,但是首先还是要选择变量!