24小时热门版块排行榜    

CyRhmU.jpeg
查看: 23360  |  回复: 73

月只蓝

主管区长 (职业作家)

引用回帖:
39楼: Originally posted by 梦落在草地上 at 2015-01-22 10:11:12
忽略38楼:
重启程序重新运行了下:
Parameters X1, X2, X3, Y;
Maximum = Y;
Function Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2;

在Pa ...

Y本身是目标函数,限定Y在[1,100],又求Y的最大值,那Y最大值不就是100么?
那么,不就等于是 求
Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2=100
这个三元方程的解么?那么就是一个方程,三个未知数,肯定有无穷多个解。
作为验证我的说法,以下仍然按照最优化问题来求解,给出代码:
Parameters X1[1,7], X2[1,7], X3[1,7];
Maximum = Y;
Function Y=(355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2);
       (355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2)>=1;
       (355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2)<=100;

可见解显然是无穷多的,以下给出三组:

目标函数值(最大): 100
X1: 5.55127097786439
X2: 3.75469585593139
X3: 1.48118209473375

目标函数值(最大): 100
X1: 5.54702430245763
X2: 5.92326853055975
X3: 4.89868124102268

目标函数值(最大): 100
X1: 6.58142328449946
X2: 2.51431683205087
X3: 4.83067723055093

» 本帖已获得的红花(最新10朵)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
41楼2015-01-22 10:20:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
41楼: Originally posted by 月只蓝 at 2015-01-22 10:20:36
Y本身是目标函数,限定Y在,又求Y的最大值,那Y最大值不就是100么?
那么,不就等于是 求
Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2=100
这个 ...

我理解您意思了,三元二次方程的确有很多解,但如果就三个三元二次方程的最优呢?
Y1=(29.9+22.1*X1+11.6*X2-1.5*X1*X2+1.2*X1*X3-2.5*X1^2-0.6*X2^2-0.7*X3^2)
Y2=(-45.3+35.6*X1+24.6*X2+8.2*X3-1.1*X1*X2-4.0*X1^2-2.4*X2^2-1.3*X3^2)
Y3=(-15.3-4.0*X1+24.4*X2+22.4*X3+1.0*X1*X2+0.8*X1*X3-2.4*X2*X3-0.4*X1^2-2.4*X2^2-1.8*X3^2)
同时X1[1,7] X2[1,7] X3[1,7]

能得到一个综合方程,然后再求解最优吗?
42楼2015-01-22 10:55:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
42楼: Originally posted by 梦落在草地上 at 2015-01-22 10:55:33
我理解您意思了,三元二次方程的确有很多解,但如果就三个三元二次方程的最优呢?
Y1=(29.9+22.1*X1+11.6*X2-1.5*X1*X2+1.2*X1*X3-2.5*X1^2-0.6*X2^2-0.7*X3^2)
Y2=(-45.3+35.6*X1+24.6*X2+8.2*X3-1.1*X1*X2-4.0 ...

这样都没有目标函数。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
43楼2015-01-22 11:15:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

送红花一朵
引用回帖:
41楼: Originally posted by 月只蓝 at 2015-01-22 10:20:36
Y本身是目标函数,限定Y在,又求Y的最大值,那Y最大值不就是100么?
那么,不就等于是 求
Y=355.45-38.35*X1-13.99*X2-85.78*X3+0.825*X1*X2+6.234*X1*X3+1.959*X2*X3+1.278*X1^2+0.272*X2^2+6.59*X3^2=100
这个 ...

您好,感激您一直给我回帖,也帮我增加了matlab语言对化学数据的非线性拟合的认识。然而,化学数据处理不是纯粹的数学计算,有很多条件限制,所以似乎目前为止,还没有真正解决我自己的问题。现想最后求助下您:
1.对于Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
    1          2        4       76.84
    1          4        7        77.85
    2          6        3        62.19
    2          1        7        70.77
    3          3        3        73.30
    3          5        6        66.23
    4          7        2        10.66
    4          1        6        79.36
    5          3        2        79.87
    5          5        5        77.34
    6          7         1        21.77
    6          2        5        74.82
    7          4        1        74.31
    7          6        4        58.65
所拟合的方程前,可不可以再限制下区间X1[1,7]X2[1,7]X3[1,7]Y[0,100],使得最后直接最优化值是落在各个区间的某个极小值,且不是边界值。比如高中数学学过,极值不一定不等于最值。
44楼2015-01-22 21:52:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
44楼: Originally posted by 梦落在草地上 at 2015-01-22 21:52:02
您好,感激您一直给我回帖,也帮我增加了matlab语言对化学数据的非线性拟合的认识。然而,化学数据处理不是纯粹的数学计算,有很多条件限制,所以似乎目前为止,还没有真正解决我自己的问题。现想最后求助下您:
...

主要是拟合方程时限制区间为Y[1,100]下的拟合曲线方程(X限制好像没有意义)
45楼2015-01-22 21:55:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
44楼: Originally posted by 梦落在草地上 at 2015-01-22 21:52:02
您好,感激您一直给我回帖,也帮我增加了matlab语言对化学数据的非线性拟合的认识。然而,化学数据处理不是纯粹的数学计算,有很多条件限制,所以似乎目前为止,还没有真正解决我自己的问题。现想最后求助下您:
...

那我建议你先拟合出方程,然后对该方程求偏导数,令偏导数=0,求得极值点。
1stopt求得的都是最值(限制参数范围,求得的也是该范围内的最值)。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
46楼2015-01-22 22:14:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
46楼: Originally posted by 月只蓝 at 2015-01-22 22:14:31
那我建议你先拟合出方程,然后对该方程求偏导数,令偏导数=0,求得极值点。
1stopt求得的都是最值(限制参数范围,求得的也是该范围内的最值)。...

请问不以求极值为目的的情况下,拟合方程时能不能限制Y区间在0-100之间呢?
47楼2015-01-23 08:46:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
47楼: Originally posted by 梦落在草地上 at 2015-01-23 08:46:39
请问不以求极值为目的的情况下,拟合方程时能不能限制Y区间在0-100之间呢?...

运行代码:
CODE:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
    1          2        4       76.84
    1          4        7        77.85
    2          6        3        62.19
    2          1        7        70.77
    3          3        3        73.30
    3          5        6        66.23
    4          7        2        10.66
    4          1        6        79.36
    5          3        2        79.87
    5          5        5        77.34
    6          7         1        21.77
    6          2        5        74.82
    7          4        1        74.31
    7          6        4        58.65

结果:
相关系数之平方(R^2): 0.910015554060544
决定系数(DC): 0.910015554060543
卡方系数(Chi-Square): 6.30625010587871
F统计(F-Statistic): 121.356380369046

参数        最佳估算
----------        -------------
b0                 274.297442101538
b1                 -44.818446582328
b2                 21.7155760160432
b3                 -78.7219393455877
b4                 0.820652156345272
b5                 6.79527940302928
b6                 0.732950301205965
b7                 1.89990679569777
b8                 -4.33596272234971
b9                 6.34139744840854

====== 结果输出 =====

No        实测值y        计算值y
1        76.84        78.7268296
2        77.85        79.9128753
3        62.19        51.1783409
4        70.77        71.2205570
5        73.3        79.1110228
6        66.23        69.6920682
7        10.66        20.4925341
8        79.36        69.5274660
9        79.87        76.4079319
10        77.34        71.5289771
11        21.77        21.3194432
12        74.82        85.8316589
13        74.31        72.2471250
14        58.65        56.7631700

可以看到上面的三列数据,实测值y和计算值y 都在[0,100]的范围。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
48楼2015-01-23 09:16:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

梦落在草地上

新虫 (小有名气)

引用回帖:
48楼: Originally posted by 月只蓝 at 2015-01-23 09:16:14
运行代码:
Parameters b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;
Variable X1,X2,X3,Y;
Function Y=b0+b1*X1+b2*X2+b3*X3+b4*X1*X2+b5*X1*X3+b6*X2*X3+b7*X1^2+b8*X2^2+b9*X3^2;
Data;
    1          2        4     ...

可是拟合的方程在自变量区间内,Y值却不在[0,100]之间了。因此最大值远超过100.而拟合方程后再限定区间内最大值100,毫无意义。所以在拟合出方程前就需要限定Y取值范围0-100再求最优值才行。
49楼2015-01-23 09:30:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
49楼: Originally posted by 梦落在草地上 at 2015-01-23 09:30:23
可是拟合的方程在自变量区间内,Y值却不在之间了。因此最大值远超过100.而拟合方程后再限定区间内最大值100,毫无意义。所以在拟合出方程前就需要限定Y取值范围0-100再求最优值才行。...

你是说拟合出来的方程,在X1∈[1,7],X2∈[1,7],X3∈[1,7]的范围内,最大值大于100对吧?
以我的思路,那你先把这个拟合问题的目标函数以最小二乘的形式写出来吧,然后把 Y ≤100 加在约束条件里面,可以实现 Y值不超过100的拟合。
以我的了解,1stopt软件不能直接做约束Y值的拟合。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
50楼2015-01-23 10:33:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dshuanger 的主题更新
信息提示
请填处理意见