如何用matlab进行多元曲线拟合

学习 时间:2026-04-02 12:05:47 阅读:932
如何用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算出来?

最佳回答

眯眯眼的盼望

天真的手机

2026-04-02 12:05:47

可以做到!关于参数问题 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)

最新回答共有2条回答

  • 虚拟的皮带
    回复
    2026-04-02 12:05:47

    可以做到!关于参数问题 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)

上一篇 知州、通判、知县、安抚使司、转运使司、提点刑狱司、提举常平司在何朝同时出现?

下一篇 像成语,各式各样,应有尽有的词语有多少