问题描述:
Matlab多参数函数
小弟想用三个变量p、q、s拟合出一条关于y的曲线,已知p、q、s各自关于y的关系(都是二次函数),该如何实现呢?
大侠,好人做到底,送佛送上天,现在我告诉您y=x(1)*p.^2+x(2)*p+x(3)*q.^2+x(4)*q+x(5)*s.^2+x(6)*s+x(7);
p=[2500,2640,2700,2800,2850,2900,2950];
q=[360,600,500,500,600,600,500];
s=[0.038417,0.034986,0.0328752,0.031844,0.032493,0.034326,0.033605];
y=[1994,2080,1956,2055,1937,1750,1695];
请您赐教如何猜初值好吗?其他的我都搞定了.
1个回答
分类:
综合
2014-11-26
问题解答:
我来补答
用函数lsqnonlin
你应该己知p,q,s,y,对吧?拟合只是找他们的关系而己,实际上就是 y = f(p,q,s)
你需要先建一个y_fun.m的function,比如
function res = y_fun(x);
global p q s y;
ymodel = f(p,q,s,x) .你的p,q,s二次函数
res = y - ymodel;
然后运行
x = lsqnonline('y_fun',x0)
x0 是你猜的拟合系数的初始值
x 是拟合系数的解
补充ÿ