mathematica非线性拟合

求大神解答!!!拟合的形式是Log((5.47-2*a+y)/(4*y-2*a))=1/150*b*x,我有一批x相应y的数据,想求参数a、b。用mathematica应... 求大神解答!!! 拟合的形式是Log((5.47-2*a+y)/(4*y-2*a))=1/150*b*x ,我有一批x相应y的数据,想求参数a、b。用mathematica应该怎么写啊?(包括x、y的录入方式也不知道。。。) 谢谢! 展开
 我来答
imblacksheep
2014-05-04 · TA获得超过147个赞
知道小有建树答主
回答量:158
采纳率:100%
帮助的人:137万
展开全部
data = {{1, 1.81747}, {2, 1.8204}, {3, 1.82137}, {4, 1.82186}, {5, 1.82216}, {6, 1.82235}, {7, 1.82249}, {8, 1.8226}, {9, 1.82268}, {10, 1.82275}, {11, 1.8228}, {12, 1.82284}, {13, 1.82288}, {14, 1.82291}, {15, 1.82294}, {16, 1.82297}, {17, 1.82299}, {18, 1.82301}, {19, 1.82302}, {20, 1.82304}};
solu = Flatten[Solve[Log[10,(5.47 - 2 a + y)/(4 y - 2 a)] == 1/(150 b x), y]];
fitparameter = (FindFit[data, y /. solu, {a, b}, x])
fit = y /. solu /.fitparameter;
Show[ListPlot[data, PlotStyle -> Red], Plot[fit, {x, 1, 20}]]
将上述代码中的data输入成你需要的数据点即可,最后一行代码中的{x, 1, 20}用来调整画图的定义域范围
更多追问追答
追问

谢谢您的用心!我的数据是

不知道为什么做不出来……假如取a=3(实验数据推理值),用excel做出来R方是=1的。

追答
你做不出来的原因是:
1、Log后面的括号要使用方括号,这是mathematica的语法
2、你在Solve中调换了函数与自变量,但是在下面fitparameter和fit内的变量没有调换,弄清楚到底哪个是x,哪个是y,要与你输入的点对应

另外,需要明确你的拟合方程里Log使用的底数是10,还是e。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
奇崛且谦虚的小柠檬l
2014-04-24 · TA获得超过222个赞
知道小有建树答主
回答量:202
采纳率:100%
帮助的人:167万
展开全部
NonlinearModelFit,帮助里有例子
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式