如何找到满足函数的变量的值?

How to find the value of a variable that satisfies a function?

我有一个大约 300 行的函数,它接收摩擦系数(变量 u)和更多常量参数并输出负载(变量 P )。我们可以说 P 在某种程度上是 u 的函数。这段代码已经完成了。我现在需要的是找出一个计算 u 的逆方法,它给出了 P 的定义值。假设我需要 P 为 10,满足此条件的摩擦系数 u 是多少?

我可以在 Excel 求解器中轻松做到这一点,但我在使用 MATLAB 时遇到困难。我做了一些研究,我认为这不是我想要最小化或最大化 P 的情况,我希望它是一个已知值,因此我不确定使用 MATLAB 函数进行优化。

我尝试在我的整个代码上使用一段时间并测试 u 的各种值,而 P 不在我想要的范围内(例如,u=0.01,虽然 P 不是 P>9.5 && P<10.5,运行 我的代码,但最后 u=u+0.01).

这很耗时,而且无法正常工作。

你有更好的方法吗?

如果你想找到 u 使得 P(u)=k 对于某个常数 k,你可以最小化 |P(u)-k|。你会得到 u 这样 |P(u)-k|尽可能接近,意味着 P(u) 尽可能接近 k。这可以使用 matlab 工具来完成。

如果 P(u) 是多项式,您可以使用的另一种方法是求 P(u)-k 的根。这也可以用matlab来完成。

还有一个选项是评论中建议的,在一个范围内对 u 的一些值进行采样,计算这些值的 P(u),并假设该范围内有一个值使得 P(u)= k,可以用插值法来估计。可以使用 matlab 完成插值。