24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3200  |  回复: 12

缱莳霰瑜

金虫 (初入文坛)

[求助] 1stopt解方程组

现有一个方程组
Variable b,a;
Function b=x+z^2*(1-x)*(1-y)*(y+(1-x)*(1-y)*a)*(y+z^2*y^2);
Data;
   0.19530 1.00328  //b0 a0
   0.18546 0.52781  //b1 a1
   0.17207 0.03061  //b2 a2
假设c是一组点,可以通过一个点c1对应的6个值,即上面的数据来解b,a 通过解得x,y,z求得的目标值和实际值进行比较。
现在我想把c其它点对应的值一起放进来求其它点对应的x,y,z值,怎么编译?谢谢啦
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 数据_1.txt
  • 2014-02-17 21:35:33, 38.07 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★ ★
感谢参与,应助指数 +1
缱莳霰瑜: 金币+3, 有帮助, 希望您再给我的代码详细一些,我的运行不出来。谢谢~~ 2014-02-19 16:17:59
没看明白楼主的描述,到底想求什么?
2楼2014-02-18 11:37:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

缱莳霰瑜

金虫 (初入文坛)

引用回帖:
2楼: Originally posted by dingd at 2014-02-18 11:37:35
没看明白楼主的描述,到底想求什么?

谢谢您。就是c是不在方程组的一个变量,c的变化对应一组b0,a0,b1,a1,b2,a2的变化,现在我可以将一个c对应的一组b0,a0,b1,a1,b2,a2值手动输入后,解出b,a.见下
====== 结果输出 =====

No        实测值b        计算值b
1        0.1953        0.1958163
2        0.18546        0.1844498
3        0.17207        0.1725639

这是一组的现在数据中想求任意c值对应下的实测和计算值,就是需要一个编译的将每个都求出来,怎么编译?
不好意思,请问您看懂了吗
3楼2014-02-18 15:36:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

引用回帖:
3楼: Originally posted by 缱莳霰瑜 at 2014-02-18 15:36:34
谢谢您。就是c是不在方程组的一个变量,c的变化对应一组b0,a0,b1,a1,b2,a2的变化,现在我可以将一个c对应的一组b0,a0,b1,a1,b2,a2值手动输入后,解出b,a.见下
====== 结果输出 =====

No        实测值b        计算值b
1        0. ...

你是想每组(或每行)b0,a0,b1,a1,b2,a2求出一组对应的x,y,z值吗?c根本就没用上?
4楼2014-02-18 16:18:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

缱莳霰瑜

金虫 (初入文坛)

引用回帖:
4楼: Originally posted by dingd at 2014-02-18 16:18:10
你是想每组(或每行)b0,a0,b1,a1,b2,a2求出一组对应的x,y,z值吗?c根本就没用上?...

是的~因为c的变化 才有每组数据b0,a0,b1,a1,b2,a2的产生,现在想用一个写法把所有的b0,a0,b1,a1,b2,a2放进去,看一下每个实测值和计算值的相关性,请问这样怎么弄呀?
5楼2014-02-18 16:33:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

就是循环求解吧:
CODE:
LoopConstant a0="Sheet1[C2:C794]",b0="Sheet1[A2:A794]",
             a1="Sheet1[E2:E794]",b1="Sheet1[D2:D794]",
             a2="Sheet1[G2:G794]",b2="Sheet1[F2:F794]";
Function  b0=x+z^2*(1-x)*(1-y)*(y+(1-x)*(1-y)*a0)*(y+z^2*y^2);
          b1=x+z^2*(1-x)*(1-y)*(y+(1-x)*(1-y)*a1)*(y+z^2*y^2);
          b2=x+z^2*(1-x)*(1-y)*(y+(1-x)*(1-y)*a2)*(y+z^2*y^2);

太多了,前10组:
循环常数 a0        循环常数 b0        循环常数 a1        循环常数 b1        循环常数 a2        循环常数 b2        目标函数值        x        z        y
95.736        400.21        48.45        15.891        3.101        15.504        23545.1733930783        -61.4105433019701        1.7338724840528        0.000356939921725784
99.225        401        49.225        15.891        1.938        13.953        23104.8556376321        -57.6032905084872        0.961829781946052        0.00126510256991255
100        401.78        50        15.556        2.222        14.444        23597.4500182412        -58.404029918814        0.0314462319595226        1.79701935010195
102.198        402.57        51.282        17.216        2.93        15.385        23247.9905035161        -59.9887251506348        0.157625120101228        0.0467799755934256
98.993        403.36        47.987        16.107        3.356        14.094        21483.3270780367        -63.5176155355752        -0.0132174322981234        2.508604718078
99.667        404.14        48        16        3        15.333        21644.6502221687        -61.0348067536678        0.0132327858744587        2.54676620819215
99.357        404.93        48.232        16.399        3.215        15.113        21869.1450662234        14289.5808987558        -86.2702757233859        0.999999981895826
100        405.72        49.211        15.773        2.524        14.826        23118.6454782423        -60.2819279159388        -0.143995346767101        0.735665078490286
97.583        406.5        48.338        16.012        3.323        15.408        23089.8608533821        -63.3054946038168        -0.000113023912612222        43.6971717119863
97.929        407.29        48.521        15.68        2.367        14.497        23685.5386771595        -60.8677794909951        -0.317834915126589        0.895069882125857
97.399        408.08        49.422        16.474        2.89        14.162        24480.8908333929        -62.7941450075183        0.336825876489558        0.00923229906277813
6楼2014-02-18 18:01:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

缱莳霰瑜

金虫 (初入文坛)

引用回帖:
6楼: Originally posted by dingd at 2014-02-18 18:01:43
就是循环求解吧:

LoopConstant a0="Sheet1",b0="Sheet1",
             a1="Sheet1",b1="Sheet1",
             a2="Sheet1",b2="Sheet1";
Fu ...

请问您的Sheet1 是在1stopt中的Excel表格吗?为什么我的插入后算的是0呢?
7楼2014-02-19 10:11:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

引用回帖:
7楼: Originally posted by 缱莳霰瑜 at 2014-02-19 10:11:34
请问您的Sheet1 是在1stopt中的Excel表格吗?为什么我的插入后算的是0呢?...

是的,数据太多都放在1stOpt的电子表格里了。
8楼2014-02-19 10:38:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

缱莳霰瑜

金虫 (初入文坛)

引用回帖:
7楼: Originally posted by 缱莳霰瑜 at 2014-02-19 10:11:34
请问您的Sheet1 是在1stopt中的Excel表格吗?为什么我的插入后算的是0呢?...

当我在软件中直接打开excel时,上面显示未注册版本仅能打开.mff格式,请问这样会影响循环导入数据的算法吗?
9楼2014-02-19 10:40:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

缱莳霰瑜

金虫 (初入文坛)

引用回帖:
8楼: Originally posted by dingd at 2014-02-19 10:38:48
是的,数据太多都放在1stOpt的电子表格里了。...

谢谢您,我用的是1.5版本的 按照您上面的计算输入时,结果显示是这样的
====== 结果 ======

迭代数: 16
计算用时(时:分:秒:毫秒): 00:00:00:32
计算中止原因: 达到收敛判定标准
优化算法: 麦夸特法(Levenberg-Marquardt) + 通用全局优化法
函数表达式 1: b0-(x+z^2*(1-x)*(1-y)*(y+(1-x)*(1-y)*a0)*(y+z^2*y^2))
         2: b1-(x+z^2*(1-x)*(1-y)*(y+(1-x)*(1-y)*a1)*(y+z^2*y^2))
         3: b2-(x+z^2*(1-x)*(1-y)*(y+(1-x)*(1-y)*a2)*(y+z^2*y^2))
目标函数值: 0
x: 0
y: 0
z: 0
b0: 0
a0: 0
b1: 0
a1: 0
b2: 0
a2: 0

====== 计算结束 ======
10楼2014-02-19 11:09:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 缱莳霰瑜 的主题更新
信息提示
请填处理意见