matlab曲线拟合问题

2024-05-17 18:27

1. matlab曲线拟合问题

x=[1	2	3	4	5	6  7	8	9	10	100	200  300	400	500	600	700	800  900	1000];
y=[0.8	1.28	1.44	1.46	1.60	1.66  1.78	1.80	1.90	2.08	2.92	 2.94  3.14	3.24	3.42	3.54	3.66	3.74  3.78	3.88];
values=spcrv([[x(1) x x(end)];[y(1) y y(end)]],3,1000);
plot(values(1,:),values(2,:),'r');

matlab曲线拟合问题

2. matlab 曲线拟合,求助

f=[3.15 8.25 12.51 16.16 19.37 22.22 24.78 27.12 29.26 31.24 33.08 34.79 36.40 37.92 39.35 40.71 42.00 43.22 44.40 45.52 46.59 47.62 48.62 49.57 50.50 51.39 52.25 53.08 53.89]; 
x=[1:1:29];
F=@(p,a)p(1)*log(p(2)*a+1)+p(3);
p=lsqcurvefit(F,[1 1 1],x,f)
y=25.9028*(log(0.2780*x+1))-3.2009;
plot(x,y,'r-',x,f,'ko');
grid on;
最后运行结果为:p = 25.9028    0.2780   -3.2009即y=25.9028*(ln(0.2780x+1))-3.2009; 效果如下图

3. 为什么matlab做线性拟合出来曲线图?

为什么matlab做线性拟合出来曲线图?
分析了题主的代码,用regress函数来拟合线性函数是对的,按在出图时,出现了概念性的错误,即 plot(X,Y,'k+',X,z,'r')。
题主这里表示的X和Y实际上是线性拟合中计算时的线性方程组系数,而不是原试验数据。
所以,正确的表述格式是
plot(x1,y,'k+',x,z,'r')
同理,下列语句也有问题
t=1:38
y_fitting=X(t,:)*b;
y_fitting=b(1)+b(2)*x;
plot(t,y_fitting,'r-',t,Y(t,:),'b-');
正确的写法为:
Y=y';
X=[ones(length(y),1),x'];
[b,bint,r,rint,stats]=regress(Y,X);
z=b(1)+b(2)*x;
str = ['y=b1+b2*x'];   %显示拟合方程
fprintf('%s\n',str);
str = ['b1=',num2str(b(1)),',b2=',num2str(b(2))];
fprintf('%s\n',str);  %显示拟合系数
stats  % 检验统计量
plot(x,y,'k+',x,z,'r') %绘制原数据与拟合数据的对比图
legend('Rot-Schätzung','Blau-Ist-wert');
运行结果如下所示。


为什么matlab做线性拟合出来曲线图?

4. 求助matlab大神,曲线拟合问题

对于matlab的拟合问题,可以使用cftool工具箱。
拟合结果是多种多样的。按你的要求,我试了一个,如下图:

这个拟合函数是一个幂函数,拟合结果为:
f(x) = a*x^ba =  2.102e-015b =       27.35也就是:
y=2.102e-015*x^27.35对于这个问题,对于cftool的使用,简单流程如下:
第一,在matlab命令窗口输入:
x=[2.755  3.035  3.184  3.212  3.236  3.293];y=[0  0.05  0.1  0.15  0.2  0.3];cftool会弹出拟合工具箱窗口,点击Data,X Data和Y Data分别选x、y,然后点击Creat data set。

第二,点击Fitting,弹出窗口点击New fit,Type of fit就是你要拟合的函数类型。我这儿选了Power,即幂函数。然后点击Apply,工具箱窗口就会显现你的数据以及拟合好的函数曲线。

Fitting窗口的Results,会显示此次拟合的结果。
如果没有显示函数图象,点击一下Ploting,确保两条plot都选上了。

你自已可以试试其它函数类型,或者微调其它的参数。比如选择三次多项式:

但是这个不满足你单调函数的要求。多项式拟合效果会很好,但是不一定满足你单调的条件。
你可以试试别的函数,试试别的参数,挑选你觉得合适的。

具体的,细节的cftool的使用,我这儿就不赘述了。你可以在网上找到很多相关资料。
若有不解,欢迎追问。

5. 你好,我想请教您一个MATLAB拟合曲线的问题?

你的问题应该这样来解决。
1、拟合函数可以用多项式近似表示,即
f(x,y) = a0 + a1*x + a2*y + a3*x^2 + a4*x*y + a5*y^2
2、使用regress函数,求解a0 、 a1、 a2、 a3、 a4、 a5的系数,即
[a,bint,r,rint,stats] = regress(Y,X);
3、计算决定系数、F统计量、概率值等统计参数
编程计算可以得到如下结果。

你好,我想请教您一个MATLAB拟合曲线的问题?

6. matlab曲线拟合的问题

你的问题可以这样解决。
当x=0时,求出y=8x^2+0.09x-98;y=7x^2+0.5x-90;y=5x^2+4x-97的三个y值,即-98,-90,-97,取他们的平均值(-98-90-97)/3=-95
当x=1时,求出y=8x^2+0.09x-98;y=7x^2+0.5x-90;y=5x^2+4x-97的三个y值,即-89.91,-89.5,-88,取他们的平均值(-89.91-89.5-88)/3=-89.1367
依次,类推,得到
x=[0
1
。。。]
y=[-95
-89.1367
。。。]
用polyfit(x,y,2)得到p
值,即
y=p1x^2+p2*x+p3

7. matlab 曲线拟合问题

用fit()函数,拟合出其系数。
运行结果:


实现代码:

matlab 曲线拟合问题

8. 求助matlab大神,曲线拟合问题

x=[2.755  3.035  3.184  3.212  3.236  3.293];
y=[0  0.05  0.1  0.15  0.2  0.3];
plot( x, y, 'b.' );
hold on;

p = polyfit( x, y, 3 );
fy = polyval( p, x );
plot( x, fy, 'r-' );
用三次多项式拟合到的多项式参数(P)为:
8.2989  -73.8404  218.8846 -216.1098