如何用matlab确定函数的系数

2025-01-04 04:49:22
推荐回答(1个)
回答1:

在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function z=zhidao_fit_1(a,x)
%这里用的是a*x^2 + b*x*y + c*y^2 + d*x + e*y + f=0
%其中x,y分别用x(:,1),x(:,2)表示
%z=a(1)*x^2+a(2)*x*y+a(3)*y^2+a(4)*x+a(5)*y+a(6)
z=a(1)*x(:,1).^2+a(2)*x(:,1).*x(:,2)+a(3)*x(:,2).^2+a(4)*x(:,1)+a(5)*x(:,2)+a(6);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%数据产生,这里以x^2/9+y^2/16=1产生数据
%如果有数据,直接将下面三行替换掉.这里要求x,y为列向量
seta=linspace(0,2*pi,20)';
x=3*cos(seta);
y=4*sin(seta);

X=[x,y];
F=zeros(size(x));
[ABC,res]=lsqcurvefit('zhidao_fit_1',ones(1,6),X,F);
ABC
得到结果
ABC =

0.0073 -0.0000 0.0041 -0.0000 0.0000 -0.0655

这个与x^2/9+y^2/16=1是一致的.
注意有时,ABC的值直接看是0,你可以通过vpa(ABC,4)来看,很可能就不是0,是一个比较小的数。