全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 Excel
3610 4
2015-07-15
悬赏 100 个论坛币 已解决
最近遇到一难题,方程如下:log(Q/(t^b))=a+ct,其中a,b,c未知,t,Q值如下,查阅了一些资料,先是用线性迭代试差法求得拟合直线相关系数较高时的最佳拟合的b值,然后再根据最小二乘法求得a,c值,麻烦给出在Excel下的VBA详细求解程序,多谢多谢了。

t

1



Q

20.2



2



120.1



3



127.3



4



139.5



5



140.2



6



185.2



7



187.95



8



101.82



9



87.62



10



79.38


最佳答案

controlpanel 查看完整内容

用规划求解可以做到,可以不用vba: 详见附件。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-7-15 16:30:48
用规划求解可以做到,可以不用vba:
1.jpg

详见附件。
拟合.xlsx
大小:(13.77 KB)

 马上下载

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-7-15 17:16:06
作为版主有必要把其他答案放到论坛共享一下!大家以后遇到这样的问题可以有解决的思路!我excel用的还行,但是这种复杂公式类的还是差点!
你可以这样做:
1.输入数据(在A1:B11区域)

t   Q

1

20.2

2

120.1

3

127.3

4

139.5

5

140.2

6

185.2

7

187.95

8

101.82

9

87.62

10

79.38


2.在E2输入公式=LOG(B2/POWER(A2,bbb)),并复制公式到E11为止
3.选中C2:D4区域,输入数组公式(注意按CTRL+ALT+ENTER结束输入)
=LINEST(E2:E11,A2:A11,,TRUE)
4.选择C4单元格(最小二乘法的R2值)单元格,点菜单"工具"->"单变量求解" ,
目标值先输入数字1,可变单元格输入F1,选然点确定
5.注意观察跳动的数字,(因为不可能刚好等于1),选较大的数字X,并记下来
6.点取消,重新回到第4步,目标值输入刚才的记录的X值.
这样C2和D2就分别是c和a的值,而F1就是b.
备注:如果嫌精度/迭代次数不够,请点菜单"工具"->"选项"的"重复计算"的最小误差以及迭代次数
我的计算结果为
a:1.56119111984644
b:2.92486618812877
c:-0.265917537185618

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-28 09:27:26
感谢群主,很有用的帖子.谢谢.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2016-10-28 09:29:54
controlpanel 发表于 2015-7-15 16:30
用规划求解可以做到,可以不用vba:
虽然下载不了,但是还是谢谢您.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群