0

我正在研究一个非线性联立方程组。这两个变量是 u>0 和 b>0。如何在 Matlab、Python 或 Fortran 中解决这个问题?谢谢。

非线性联立方程

4

2 回答 2

2

老实说,我不确定这个问题是否真的属于这里。但解决方案在理论上很简单。方程 1 可以简单地求解 b 作为 u 的函数。代入等式 2,其中 b 仅出现一位。

现在,您可以在新方程 2 上使用求根器,求解满足该关系的 u 值。给定 u 的值,您可以使用自适应数值正交例程进行积分。在 MATLAB 中,这类似于 quadgk。(不要使用 ODE 求解器,因为它们提供的信息比您需要的多。您只需要整体积分。)

但事实上,该积分中的内核是变量 t 的简单多项式,并且 u^10 是积分中的因子。因此,第一学期的微积分将手工进行积分,尽管它需要一些铅笔和纸。或者,符号工具箱就足够了。单行调用来解决在这里就足够了,尽管这会是一条很长的行,而且我懒得写它。

说了这么多,请注意数值积分都会有一点问题,因为你的数字是讨厌的和巨大的,指数相当大。因此,这也意味着您非常希望象征性地解决问题。

确实,这个答案的重点是在问题上使用数值求解器是一个坏主意,尤其是当符号工具箱(或铅笔和纸!)等工具足够且可用时。

于 2012-05-02T12:40:56.853 回答
0

您可以通过求解 b 的 #1 轻松消除其中一个方程。然后用它为你解决#2。

您将不得不使用迭代方法来做到这一点:猜测一个解决方案,计算一个估计值,与您的猜测进行比较,调整并重复直到收敛。

我会使用数值积分(五阶 Runge-Kutta 或其他东西)来计算积分。

于 2012-05-02T09:26:58.223 回答