用matlab拟合指数形式的曲线
比如已知多组点(x,y),它符合指数表达式,怎么把表达式求出来我的题目中x=[30300500800];y=[17501600950500];通过这些数据拟合出上面给出的...
比如已知多组点(x,y),它符合指数表达式
,怎么把表达式求出来
我的题目中x=[30 300 500 800];y=[1750 1600 950 500];通过这些数据拟合出上面给出的指数形式公式,求具体程序。 展开
,怎么把表达式求出来
我的题目中x=[30 300 500 800];y=[1750 1600 950 500];通过这些数据拟合出上面给出的指数形式公式,求具体程序。 展开
1个回答
展开全部
取对数,展开:log(y)=-x^2/c^2+2*x*b/c^2+log(a)-(b/c)^2
用matlab解超定方程组的功能求解:
[-x^2,2*x,1]*[1/c^2;b/c^2;log(a)-(b/c)^2]=log(y)
%代码:
x=[30 300 500 800 ]'
y=[1750 1600 950 500 ]'
A=[-x.^2,2*x,1&x]
B=log(y)
z=A\B
c=sqrt(1/z(1))
b=z(2)/z(1)
a=exp(b*z(2)+z(3))
用matlab解超定方程组的功能求解:
[-x^2,2*x,1]*[1/c^2;b/c^2;log(a)-(b/c)^2]=log(y)
%代码:
x=[30 300 500 800 ]'
y=[1750 1600 950 500 ]'
A=[-x.^2,2*x,1&x]
B=log(y)
z=A\B
c=sqrt(1/z(1))
b=z(2)/z(1)
a=exp(b*z(2)+z(3))
追问
谢谢大神!请问能不能用最小二乘法拟合出结果呢?用matlab的polyfit命令来写。
追答
好像这样算和最小二乘法是等价的(非线性最小二乘法)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询