我正在尝试创建一个代码,既计算两个污染物水平,又迭代其中一个输入,使它们低于各自的目标值。在计算污染物之前,有大量的代码,所以如果我共享整个代码,只会很混乱。我将尽我所能使用一些伪代码/计算片段代替。
# pseudo inputs.
a = 10.0; b = 5.0; c = 15.0
d = 0.5; e = 1.0
# pseudo outputs
contaminant_1 = a * b + c
contaminant_2 = a * d + e
# target values
contaminant_1_target = 10.0
contaminant_2_target = 2.0
我想让代码使用输入a
进行迭代,以得到contaminant_1 < contaminant_1_target
和contaminant_2 < contaminant_2_target
。
1条答案
按热度按时间wbrvyc0a1#
如果要迭代以查找满足条件的值
a
,则需要for
-循环或while
-循环,并在此循环中更改值a
编辑:
但如果你使用了错误的
step
,那么它可能会计算在错误的方向,它将永远运行。它需要检查,如果当前值大于以前的值,并作出更正。它看起来类似于
machine learning
和linear regresion
,它们使用Least squares来查找匹配函数它将
(contaminant_1 - contaminant_1_target)^2
与先前的值进行比较,以查看它是否必须改变方向。编辑:
比较当前和以前的
(contaminant_1 - contaminant_1_target)^2
并更改step = -step
的版本-它可以从低于或高于结果的a
开始。(维基百科:least squares)