Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2012-11-30
帖子: 4
声望力: 0 ![]() |
![]()
各位大侠,小弟想用Findfit同时优化r1和r2函数,只得到一组参数值,mathematica有什么格式要求吗。下面是代码,但是是分开优化的,会得到两组不同的参数值。
da = {{0.51333, 0.50536}, {0.36301, 0.61684}, {0.34194, 0.63566}, {0.28502, 0.68357}, {0.26485, 0.70947}, {0.17771, 0.72182}}; db = {{0.51333, 2.5363}, {0.36301, 1.16376}, {0.34194, 0.75531}, {0.28502, 0.4164}, {0.26485, 0.27812}, {0.17771, 0.1259}}; Subscript[k, 1] = Subscript[A, 1] Exp[(-Subscript[A, w]* Exp[-Subscript[E, w]/ 4098.802]*((0.133 + 0.173*x)/(0.483 - 0.346*x)) - Subscript[ E, 1])/4098.802]; Subscript[k, 2] = Subscript[A, 2] Exp[(-Subscript[A, w]* Exp[-Subscript[E, w]/ 4098.802]*((0.133 + 0.173*x)/(0.483 - 0.346*x)) - Subscript[ E, 2])/4098.802]; Subscript[k, 3] = Subscript[A, 3] Exp[(-Subscript[A, w]* Exp[-Subscript[E, w]/ 4098.802]*((0.133 + 0.173*x)/(0.483 - 0.346*x)) - Subscript[ E, 3])/4098.802]; Subscript[k, 4] = Subscript[A, 4] Exp[(-Subscript[A, w]* Exp[-Subscript[E, w]/ 4098.802]*((0.133 + 0.173*x)/(0.483 - 0.346*x)) - Subscript[ E, 4])/4098.802]; Subscript[k, 5] = Subscript[A, 5] Exp[(-Subscript[A, w]* Exp[-Subscript[E, w]/ 4098.802]*((0.133 + 0.173*x)/(0.483 - 0.346*x)) - Subscript[ E, 5])/4098.802]; Subscript[k, 6] = Subscript[A, 6] Exp[(-Subscript[A, w]* Exp[-Subscript[E, w]/ 4098.802]*((0.133 + 0.173*x)/(0.483 - 0.346*x)) - Subscript[ E, 6])/4098.802]; Subscript[k, 7] = Subscript[A, 7] Exp[(-Subscript[A, w]* Exp[-Subscript[E, w]/ 4098.802]*((0.133 + 0.173*x)/(0.483 - 0.346*x)) - Subscript[ E, 7])/4098.802]; r1 = -(x *Subscript[k, 1]* Subscript[k, 2]*Subscript[k, 3]*(-Subscript[k, 5] - Subscript[k, 7]))/(-(x*Subscript[k, 1]*Subscript[k, 2] - Subscript[k, 3]*(-x*Subscript[k, 1] - Subscript[k, 2] - x*Subscript[k, 4] - Subscript[k, 6]))*(-Subscript[k, 5] - Subscript[k, 7]) - x*Subscript[k, 3]*Subscript[k, 4]*(-x*Subscript[k, 1] + Subscript[k, 7])); r2 = -(x^2)*Subscript[k, 1]*Subscript[k, 3]*Subscript[k, 4]* Subscript[k, 5]/((x *Subscript[k, 1]*Subscript[k, 2] - Subscript[k, 3]*(-x*Subscript[k, 1] - Subscript[k, 2] - x*Subscript[k, 4] - Subscript[k, 6]))*(-Subscript[k, 5] - Subscript[k, 7]) - x*Subscript[k, 3]*Subscript[k, 4]*(-x*Subscript[k, 1] + Subscript[k, 7])); FindFit[da, r1, {{Subscript[A, 1], 1000, 100, 10000}, {Subscript[A, 2], 10^13, 10^11, 10^14}, {Subscript[A, 3], 10^13, 10^12, 10^14}, {Subscript[A, 4], 1000, 100, 10000}, {Subscript[A, 5], 10^13, 10^12, 10^14}, {Subscript[A, 6], 10^13, 10^12, 10^14}, {Subscript[A, 7], 10^13, 10^12, 10^14}, {Subscript[A, w], 1000, 100, 10000}, {Subscript[E, 1], 0, 0, 80}, {Subscript[E, 2], 98, 80, 115}, {Subscript[E, 3], 108, 80, 135}, {Subscript[E, 4], 0, 0, 80}, {Subscript[E, 5], 90, 50, 110}, {Subscript[E, 6], 130, 120, 140}, {Subscript[E, 7], 80, 0, 100}, {Subscript[E, w], 25, 0, 40}}, x] FindFit[db, r2, {{Subscript[A, 1], 1000, 100, 10000}, {Subscript[A, 2], 10^13, 10^11, 10^14}, {Subscript[A, 3], 10^13, 10^12, 10^14}, {Subscript[A, 4], 1000, 100, 10000}, {Subscript[A, 5], 10^13, 10^12, 10^14}, {Subscript[A, 6], 10^13, 10^12, 10^14}, {Subscript[A, 7], 10^13, 10^12, 10^14}, {Subscript[A, w], 1000, 100, 10000}, {Subscript[E, 1], 0, 0, 80}, {Subscript[E, 2], 98, 80, 115}, {Subscript[E, 3], 108, 80, 135}, {Subscript[E, 4], 0, 0, 80}, {Subscript[E, 5], 90, 50, 110}, {Subscript[E, 6], 130, 120, 140}, {Subscript[E, 7], 80, 0, 100}, {Subscript[E, w], 25, 0, 40}}, x] |
![]() |
![]() |