有一组数据x,y我知道x,y的函数关系式为ln(y-a)=b*lnx+c。我该怎么做获取a、b、c的值,并且知道这时的拟合精度,并且这个精度可以自己设定么?谢谢啦。
所谓拟合精度无非是循环的时候退出的条件,而你的问题可以转化成:
clc; clear
% 比如 x->xy(:,1); y->xy(:,2)
xy = [
1, 1.015608713353;
2, 20.462100415518;
3, 94.4267300097118;
4, 130.896501799540;
5, 169.7239268832727;
6, 310.773635794259;
7, 680.660210398064;
8, 1202.16423450355;
9, 1529.61068657942;
10, 1539.78928190371
];
abc = 1*rand(3,1); % a->abc(1); b->abc(2); c->abc(3)
myfun = @(abc,xy) log(xy(:,2)-abc(1)) - abc(2)*log(xy(:,1))-abc(3);
opt.TolX = 1e-1;
abc = nlinfit(xy, zeros(size(xy,1),1), myfun, abc);
plot(xy(:,1),xy(:,2),'r*')
hold on
% x = 1:0.1:10;
ezplot(@(x,y)myfun(abc,[x,y]),[1 10 0 2000])
title('曲线拟合');legend('样本点','拟合曲线')
来自:求助得到的回答已知函数形式,如何用matlab把一组数据拟合从而求出未知参数?
x=[1;1.5;2;2.5;3];y=[0.9;1.7;2.2;2.6;3];p=fittype('a*x.^0.5+b*lnx+c','independent','x')f=fit(x,y,p)plot(f,x,y);上面是代码!下面是结果:a=2.818 b=0.8552 c=-0.6627
如何利用MATLAB对数据进行曲线拟合
2、启动曲线拟合工具箱 》cftool 3、进入曲线拟合工具箱界面“Curve Fitting tool”(1)点击“Data”按钮,弹出“Data”窗口;(2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set name”,然 后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画...
已知函数模型以及数据,如何利用matlab拟合出未知参数?
1、读取数据 x y 2、根据模型Y=4.17-a*e^(-c*x)-b*e^(-d*X),自定义求解函数 3、初定初值 4、初定上下极限值lb,ub 5、利用lsqcurvefit求解系数a、b、c、d x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)6、计算拟合值,并对比已知值 7、数据分析 8、最后绘制图形 ...
如何使用matlab实现数据的曲线拟合
打开Matlab软件,在命令窗口将数据导入,并分别给数据命名,这里以x ,Y命名两个行向量数据。x=[1,3,5,7,9,15];Y=[1,4,8,13,20,25];这里的数据也可以通过文件读取的方式导入(如csvread,load等命令)。在命令窗口输入cftool,打开拟合窗口。在拟合窗口选择要拟合的数据,那个作为x,哪个作为y。
如何用matlab数据拟合函数
1、首先启动matlab,选择编辑器,再新建一个命令文件。2、然后在编辑器窗口中输入图示的代码。3、然后我们点击界面上方菜单栏里的保存图标进行保存。4、需要注意的是,保存文件的位置要与当前搜索路径的位置保持一致。这可以通过右键编辑窗口的文件,在弹出的下拉框中选择。5、最后再命令行窗口处输入dxsnh...
如何用matlab进行数据拟合,在进行数据的估计?
用1次多项式进行拟合 f = polyval(p,x);hold on plot(x,f,'r');xlabel('年份')ylabel('人口')title('拟合曲线')在同一个坐标内画出拟合曲线和原有离散数据 p 显示拟合多项式系数 p1865=polyval(p,[1865])估计1865年的人口数量 运行结果:p = 1.0e+003 0.0019 -3.4480 p1865 = ...
如何用matlab进行函数组的拟合
cw=G(t),或者cp=F(t)等等。这样就是一个比较简单的函数关系式。最后调用拟合函数就可以了。比如由微分方程变化cw=G(t),使用微分非齐次公式。成为cw=C1*exp(C2*t)+C3。当然C1,C2,C3包括了你的未知变量K1~K4。你使用完指数拟合后能知道C1~C3的值。再把C1~C3求导,放回微分方程中。往变量t...
在Matlab中如何数据拟合函数?
在Matlab中进行数据拟合,可以使用 fit 函数。该函数可以用来生成拟合模型,对数据进行拟合,并返回拟合模型对象。下面是一个简单的数据拟合的例子:假设我们有一组数据,x 和 y 分别表示自变量和因变量:x = [1 2 3 4 5];y = [3 5 7 9 11];现在我们想拟合一个一次函数,即 y = a*x + ...
如何用matlab拟合出两组数据之间的关系?
选择后会自动拟合,并给出拟合函数的表达式。Matlab是一个很强大的数据处理软件,是人们进行数据分析的得力助手。一般我们做社会调研或科学研究时,会得到很多实验数据。当需要研究两个变量之间的关系时,经常要用到曲线拟合。曲线拟合不仅能给出拟合后的关系式,还能用图形直观的展现出变量之间的关系。 其实...
知道x,y的一系列数据,用matlab求拟合方程的参数。
您好,你可以用nlinfit()函数拟合,精度比较高。2、用matlab的拟合工具箱cftool也是非常方便,而且不用编程。你只要将y=d*(b-exp(-x\/c))*exp(-2*a*log(b*exp(x\/c)-1))输入自定义函数(General Equations)命令框内,就可以得到其拟合系数。用lsqcurvefit()函数和nlinfit()函数进行拟合...