2012-05-02 89 views
0

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

Nonlinear simultaneous equations

+0

除了课堂上的讲义外,网上还有很多关于求解非线性方程的算法。这样一个开放式的问题并不适合这个论坛。 –

+0

就我个人而言,我不认为评论有帮助。这不是一个开放式的问题;它只是要求算法建议。也许你在这里没有提供任何东西,但这并不是一个坏问题。 – duffymo

+0

谢谢。我想我应该在数学社区提出这个问题。 –

回答

0

您可以轻松地解决#1对于B消除这些方程之一。然后用它来为你解决#2。

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

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

2

我真的不确定这个问题真的属于这里。但理论上解决方案很简单。等式1作为u的函数对b进行平凡解。代入公式2,其中b只出现一个地方。

现在,你可以在新的等式2上使用一个rootfinder,求解满足这个关系的u的值。给定u的值,可以使用自适应数字正交例程来进行积分。在MATLAB中,这将是像quadgk。 (不要打扰ODE解算器,因为它们给你的信息比你需要的多,你只需要整体积分。)

事实上,虽然积分中的内核是变量t的简单多项式,和u^10因素的积分。因此,第一学期微积分将通过手工进行整合,尽管需要一些铅笔和纸张。或者,符号工具箱就足够了。解决这个问题的一条线就足够了,虽然这将是一条很长的路线,而我却懒得写它。

说了这么多之后,请注意数值积分都会有点问题,因为你的数字很讨厌而且很庞大,而且指数很大。因此,这也意味着你非常想象征性地做解决方案。

真的,这个答案的重点在于,在这个问题上抛出一个数值求解器是一个坏主意,特别是当像符号工具箱(或铅笔和纸!)这样的工具已经足够且可用时。