请教,如何用Matlab做形如z=a*x^b*y^c的拟合,其中a,b,c为参数。z,x,y为变量,有实际数值。

kh_widepig
2011-07-27 · TA获得超过1329个赞
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:289万
展开全部
你可以用自然对数把公式变形成:
ln(z) = ln(a) + b*ln(x) + ln(y)
然后用regress做线性拟合;

也可以输入sftool进入面拟合工具包,设置好x、y、z后,选择custom equation, 然后输入你的公式,然后fit。
追问
这个工具箱如何打开,具体程序又如何编写,我以前不会用这个软件,麻烦您说详细一点,感激不尽!
追答
第一种方法,你可以先导入x,y,z (注意x,y,z应该是n行1列的向量,如果不是,用x=x')然后:
log_x = log(x);
log_y = log(y);
log_z = log(z);
N = length(log_x);
intercept = ones(N,1);
X = [log_x log_y intercept];
Y = log_z;
B = regress(Y, X);
然后你就得到a = B(1), b = B(2), c = B(3).
关于regress的详细用法,你可以输入help regress;

第二种方法,如果你输入sftool, 弹出一个对话框, 就接着用就行了(界面很直观)。 如果没有的话,你可以在网上搜索一下matlab stats工具包。如果找不到我可以发一份给你。
why19
2011-07-26 · TA获得超过1790个赞
知道小有建树答主
回答量:560
采纳率:0%
帮助的人:466万
展开全部
z=a*x^b*y^c
没有看懂。。。
写仔细了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式