matlab的非线性拟合MATLAB如何进行非线性拟合呢?比如说y=1/((c*x)^2+1)^0.5如何拟合出参数c呢?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 06:53:00
matlab的非线性拟合MATLAB如何进行非线性拟合呢?比如说y=1/((c*x)^2+1)^0.5如何拟合出参数c呢?

matlab的非线性拟合MATLAB如何进行非线性拟合呢?比如说y=1/((c*x)^2+1)^0.5如何拟合出参数c呢?
matlab的非线性拟合
MATLAB如何进行非线性拟合呢?
比如说y=1/((c*x)^2+1)^0.5
如何拟合出参数c呢?

matlab的非线性拟合MATLAB如何进行非线性拟合呢?比如说y=1/((c*x)^2+1)^0.5如何拟合出参数c呢?
f=inline('1./sqrt((c*x).^2+1)','c','x');
x=0:0.1:3
y=1./sqrt((0.5*x).^2+1);
f=inline('1./sqrt((c*x).^2+1)','c','x');
[c,res]=lsqcurvefit(f,0.1,x,y) %0.1为迭代初值
不过个人觉得,由于你的表达己经知道,
你经过一些变换就可以变成直接拟合了.
对于你这个函数,经过变形一下就有:y^(-2)-1=c^2*x^2
你如果对y^(-2)-1与x^2用最小二乘法作直接似合的话,得到的斜率的开平方就是我们所要求的c