如何用matlab进行多元曲线拟合设(x,y)=f(a,b,c)已知当c=1,2,3时,(x,y)对应f(a0,b0,c)的各三个值已知当b=1,2,3时,(x,y)对应f(a0,b,c0)的各三个值已知当a=1,2,3时,(x,y)对应f(a,b0,c0)的各三个值要求拟
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 15:05:54
如何用matlab进行多元曲线拟合设(x,y)=f(a,b,c)已知当c=1,2,3时,(x,y)对应f(a0,b0,c)的各三个值已知当b=1,2,3时,(x,y)对应f(a0,b,c0)的各三个值已知当a=1,2,3时,(x,y)对应f(a,b0,c0)的各三个值要求拟
如何用matlab进行多元曲线拟合
设(x,y)=f(a,b,c)
已知当c=1,2,3时,(x,y)对应f(a0,b0,c)的各三个值
已知当b=1,2,3时,(x,y)对应f(a0,b,c0)的各三个值
已知当a=1,2,3时,(x,y)对应f(a,b0,c0)的各三个值
要求拟合出x和y的关系式,其中包含了a,b,c等参数
请问在matlab中能做到吗?调用哪些函数?这些函数的各个参数的意义是什么?
比如,V=a1*p+a2*p^2+b1*c+b2*c^2,已知四组p,c值和对应的V值,怎么用matlab把a1,a2,b1,b2算出来?
如何用matlab进行多元曲线拟合设(x,y)=f(a,b,c)已知当c=1,2,3时,(x,y)对应f(a0,b0,c)的各三个值已知当b=1,2,3时,(x,y)对应f(a0,b,c0)的各三个值已知当a=1,2,3时,(x,y)对应f(a,b0,c0)的各三个值要求拟
可以做到!关于参数问题 help之
我一般喜欢使用nlinfit
非线性拟合,我用过很多次发现要用好她
的关键在于你要找到一个很好的初值
举个例子:
椭圆的方程可以是
ax^2+by^2+cxy+dx+ey+f=0;
发现其实双曲线,抛物线和他的一样
所以你在选取初值的时候最起码初值带入后
是个椭圆,
不然你拟合出来不仅仅是效果差,可能就变质
你说的情况其实是解方程了(四个未知数四个方程)
对于更多的数据:
先编写函数
function f=ffun(a,x)
f=a(1)*x(:,1)+a(2)*x(:,1).^2+a(3)*x(:,2)+a(4)*x(:,2).^2;
其余运行
x=[p,c];%p,c为列响量,f也为列向量
a0=[1,1,1,1];%初值取好点效果更好
a=nlinfit(x,f,'ffun',a0)
楼上的说法完全支持,只是没有用过nlinfit