已知函数形式,如何用matlab把一组数据拟合从而求出未知参数?

已有一组数据x和y,
data1=xlsread('C:\Users\dell\Desktop\数据拟合\新建 Microsoft Excel 工作表.xlsx',1,'a1:a100');
data=xlsread('C:\Users\dell\Desktop\数据拟合\新建 Microsoft Excel 工作表.xlsx',1,'B1:B100');
x=[data1];
y=[data];
函数的形式是y=a^x*(b-c)+c求函数的系数a,b,c

第1个回答  推荐于2017-09-08
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追问

这个我找到过,按照这个编的程序算不出abc,

警告: Start point not provided, choosing random start point.
> In Warning>Warning.throw at 30
In fit>iFit at 312
In fit at 108
请问错误究竟出在哪了

本回答被提问者和网友采纳

已知函数形式,如何用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拟合出未知参数?
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、最后绘制图形 ...

已知一组含有X,Y的数据和函数形式,matlab怎么求解函数的未知参数?
根据你给出的数据,从图形上来看,不符合二次函数规律。你可以考虑用高次多项式函数去拟合。x=[21,56,84,112,140,168,189]';y=[1.000,0.974,1.179,1.339,1.213,1.106,1.321]';disp('y=p1*x^5 + p2*x^4 + p3*x^3 + p4*x^2 + p5*x + p6')p=polyfit(x,y,5)y1=p...

matlab 已知x、y值以及函数,求未知参数
已知数据点:xdata=(xdata1,xdata2,…,xdatan)ydata=(ydata1,ydata2,…,ydatan)lsqcurvefit用以求含参量x(向量)的向量值函数 F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T 中的参变量x(向量),使得1\/2*∑[a+b*exp(-0.02*k*t(i))-c(i)]^2最小 1.先定义...

已知方程如何用MATLAB进行非线性拟合求模型参数
如果你的函数比较特别,在曲线拟合工具箱里没有,那么你就需要自己编程进行拟合了,可以使用lsqnonlin函数来做这个拟合,它是一个非线性拟合函数 下面给你一个例子 首先定义自己要拟合的函数的形式,其中a是函数中的系数,x和y是已知的数据 function E=fun(a,x,y)x=x(:);y=y(:);Y=a(1)*x.^...

如何用matlab进行函数组的拟合
t),使用微分非齐次公式。成为cw=C1*exp(C2*t)+C3。当然C1,C2,C3包括了你的未知变量K1~K4。你使用完指数拟合后能知道C1~C3的值。再把C1~C3求导,放回微分方程中。往变量t中带值,这样就会形成一个方程组求取K1~K4。由于可能是奇异矩阵,所以你用最小二乘法就能求出最后的K1~K4值。

如何用matlab进行数据拟合,在进行数据的估计?
plot(x,y,'s','markersize',3)grid on 画图并观察离散数据的特性 p=polyfit(x,y,1);用1次多项式进行拟合 f = polyval(p,x);hold on plot(x,f,'r');xlabel('年份')ylabel('人口')title('拟合曲线')在同一个坐标内画出拟合曲线和原有离散数据 p 显示拟合多项式系数 p1865=polyval(p,...

如何用MATLAB拟合曲线来求参数?
所以log(y)与log(x)是线性关系,用p=polyfit(log(xdata),log(y),1)求出 b=p(1);a=exp(p(2))\/252*(2.016129032*10^9); % 因为log(252\/(2.016129032*10^9)*a)=p(2)所以最终程序是如下:clear all c=[2.7,2.8,2.9,3,3.1,3.2,3.45,3.7,3.95,4.2,4.45,4.7,...

如何利用MATLAB对数据进行曲线拟合
您好,这样的:一、 单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线 性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。1、在命令行输入数据:...

请教如何用matlab求拟合的公式,就是我知道一组数据,用matlab拟合曲线后...
使用polyfit函数就可以拟合曲线了 比如给出的坐标分别是x和y,则有 P=polyfit(x,y,3)这样得到的P就是多项式的系数。这里的3指的是三次多项式!祝你学习愉快!

相似回答