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

时间:2015-10-13 15:32:57

标签: excel matlab solver inverse

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

我可以在Excel解算器中轻松完成,但我正在努力使用MATLAB。我做了一些研究,我认为这不是我希望最小化或最大化P的情况,我希望它是一个已知值,因此我不确定MATLAB函数用于优化。

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

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

你认为有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

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

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

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