gpt4 book ai didi

java - Java 中的数值求解

转载 作者:行者123 更新时间:2023-12-01 14:57:40 25 4
gpt4 key购买 nike

我希望在 Java 中结合某种数值求解的线性代数解决方案的实现,如下所示:

5x + 4 = 2x + 3

理想情况下,我希望尽可能少地解析,并避免使用传统的“人类”解决方案方法(即组合类似的术语等)。我一直在研究牛顿法并代入 x 值来近似解。

不过我在让它工作时遇到了麻烦。

有谁知道执行此操作的最佳通用方法,以及如何在代码中完成(最好是 Java)?

附加

在 Netwon 方法中,您将进行迭代,直到近似值达到可接受的精度。公式如下所示:

x1 = x0 - (f(x0)/(f '(x0))

其中 x1 是迭代中 x 的下一个值,x0 是当前值(或者在第一次迭代时开始猜测)。

什么是 f 素数?假设f(x0)是当前x估计的函数,那么f'(x0)代表什么表达式?

澄清

这仍然是一个如何对数学评估进行编程的问题,而不仅仅是如何进行数学计算。

最佳答案

f'(x0) 是在 x0 处计算的 f 的导数。您可以通过计算来计算 f' 的近似值:

f'(x0) ~ (f(x0+epsilon) - f(x0))/epsilon

一个适当小的值epsilon (因为f是线性的,任何合理的epsilon值都会给出基本相同的结果;对于更一般的函数f,选择一个好的epsilon来使用的微妙之处完全太微妙了,无法在S.O.中讨论。后——报名参加高年级本科数值分析类(class))。

但是,既然您想避免“人类”方法,我应该指出,对于线性方程的特定情况,牛顿法总是在单次迭代中收敛,并且实际上本质上等同于通常的代数求解技术。

为了说明这一点,请考虑您的示例。要使用牛顿法,需要对方程进行变换,使其看起来像 f(x) = 0:

5x + 4 = 2x + 3
5x + 4 - (2x + 3) = 0

所以f(x) = 5x + 4 - (2x + 3)f(x)的导数是 f'(x) = 5 - 2 = 3 。如果我们从最初的猜测开始x0 = 0 ,那么牛顿法给我们:

x1 = x0 - f(x0)/f'(x0)
= 0 - (5*0 + 4 - (2*0 + 3))/3
= 0 - (4-3)/3
= -1/3

这实际上与人类用来解方程的操作完全相同,只是经过了一些巧妙的伪装。求导分离出x项( 5x - 2x = 3x ),并且在零处评估隔离了没有 x 的项。 (4-3 = 1)。然后我们将常数系数除以线性系数并取反得到 x .

关于java - Java 中的数值求解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14147512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com