matlab多元非线性曲线拟合

我有五组数据x=[313.5604239.4021288.7583309.7781264.0802];y=[0.3311152720.3341436010.4038616... 我有五组数据x=[313.5604 239.4021 288.7583 309.7781 264.0802];
y=[0.331115272 0.334143601 0.403861609 0.4425972 0.461041355];
如何通过这五组数据求得,(x/a )^b+y^c=1,中 a,b,c的值。求源代码,多谢
展开
 我来答
lhmhz
高粉答主

2017-09-10 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7263 获赞数:16989

向TA提问 私信TA
展开全部

该拟合问题可以用 nlinfit()函数来解决。求解方法:

1、将方程(x/a )^b+y^c=1看成z(x,y)=(x/a )^b+y^c=1;

2、处理多个变量,可以将它们看成是一个x向量组;

3、求解代码

x=[313.5604 239.4021 288.7583 309.7781 264.0802]';

y=[0.331115272 0.334143601 0.403861609 0.4425972 0.461041355]';

X=[x y];

Y=ones(5,1); 

func=@(a,X)(X(:,1)./a(1)).^a(2)+X(:,2).^a(3);

beta0=[0.69483 0.3171 0.95022];

[beta,R,J]= nlinfit(X,Y,func,beta0);

a=beta(1),b=beta(2),c=beta(3) 

Y1=func(beta,X);

[Y Y1]

4、运行结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式