最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

matlab拟合曲线

来源:动视网 责编:小OO 时间:2025-09-28 20:47:51
文档

matlab拟合曲线

matlab中拟合曲线中如何将数据点去掉你把数据告诉我,我来试试看~~InMatlab,Use:polyfit(x,y,2)得到:y=0.005x2-0.1716x+16.0660你看看这个是否符合你的要求,另外,要看你的数据了,如果你想求y在x=10的时候的值,这个绝对是不可以的,你只能在这个附近做个大致的计算。我检验的结果也不是很满意, 问题在于你想拟合成什么函数。如果是简单的多项式函数可以用polyfit,程序如下x=[135610111214151719212325];y=[102
推荐度:
导读matlab中拟合曲线中如何将数据点去掉你把数据告诉我,我来试试看~~InMatlab,Use:polyfit(x,y,2)得到:y=0.005x2-0.1716x+16.0660你看看这个是否符合你的要求,另外,要看你的数据了,如果你想求y在x=10的时候的值,这个绝对是不可以的,你只能在这个附近做个大致的计算。我检验的结果也不是很满意, 问题在于你想拟合成什么函数。如果是简单的多项式函数可以用polyfit,程序如下x=[135610111214151719212325];y=[102
matlab中拟合曲线中如何将数据点去掉 

你把数据告诉我,我来试试看~~ 

In Matlab,Use: 

polyfit(x,y,2) 

得到:y=0.005x2 -0.1716x+16.0660 

你看看这个是否符合你的要求,另外,要看你的数据了,如果你想求y在x=10的时候的值,这个绝对是不可以的,你只能在这个附近做个大致的计算。 

我检验的结果也不是很满意, 

 

问题在于你想拟合成什么函数。如果是简单的多项式函数可以用polyfit,程序如下

x=[1 3 5 6 8 9 10 11 12 14 15 17 19 21 23 25];

y=[10 20 42 60 73 79 80 78 73  56 71 51 42 41 40];

plot(x,y,'ro');

p=polyfit(x,y,4);%于是拟合出的曲线就是p(1)x^4+p(2)x^3+p(3)x^2+p(4)x+p(5),想拟合成其它次数的多项式只需将4改为相应的次数即可

f=poly2sym(p);

xinterp=[2 4 7 13 16 18 20 22 24];

yinterp=subs(f,xinterp);

hold on;

plot(xinterp,yinterp,'o');

ezplot(f,[0,30]) 

下面程序放到一个m文件里,运行即可:

function a=f()

x=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16 ];

y=[15 34 37.5 41 41 38.5 34 34 29 25.5 25 20.5 19 17.5 14 12.5 9 7.5 6 5 3.5 3.5 2];

a = nlinfit(x,y,@ff,[1;1]);

function y=ff(a,x)

y=log(a(1))-a(2)*x;

拟合结果不太好,可能是你的函数形式问题 

可以用拟合的方法,最简单用多项式拟合,就能出来一个多项式的表达式(公式)。在MTALAB中多项式拟合的函数是polyfit。

你要做指数拟和吗,我觉得应该先将拟合方程做变换,将指数方程变为线性方程,然后用matlab中的线性拟合公式进行拟合,然后可以得出r1和b

可以直接在Origin里做,把函数形式给出你和参数。

如果拟合成直线就是说幂次是1,程序如下,

x=[1 2 3 4 5 6];

y=[8.59 9.54 10.55 11.54 12.54 13.54];

n=1;

p=polyfit(x,y,n);       %计算n次多项式系数p

xi=linspace(0,6,100);

yi=polyval(p,xi);            %计算多项式的值

plot(x,y,'o',xi,yi);

xlabel('x'),ylabel('f(x)')

title('最小二乘法拟合')

数值替换成你自己的数据。

matlab统计工具箱里面有个函数,叫cftool

用这个函数什么函数形式都能拟合。

不需要程序,你直接敲入cftool,就会出来图像化工具

文档

matlab拟合曲线

matlab中拟合曲线中如何将数据点去掉你把数据告诉我,我来试试看~~InMatlab,Use:polyfit(x,y,2)得到:y=0.005x2-0.1716x+16.0660你看看这个是否符合你的要求,另外,要看你的数据了,如果你想求y在x=10的时候的值,这个绝对是不可以的,你只能在这个附近做个大致的计算。我检验的结果也不是很满意, 问题在于你想拟合成什么函数。如果是简单的多项式函数可以用polyfit,程序如下x=[135610111214151719212325];y=[102
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top