子飞鱼 发表于 2024-1-18 08:24:38

迭代求解方程

本帖最后由 子飞鱼 于 2024-1-18 08:38 编辑

一个处理实际问题的方程,想通过迭代求正数根(因为是实际生活的问题,负数根或虚数根没有意义)。
方程如下所示:
a*X/b = 1 + B/X +C/(X**2) + D/(X**5) + (E -0.0001713155/(X**2))/(b**3 * X**2) * exp(-0.0128542/(X**2))

其中:X为未知数,a与b为已知的常数。B,C,D,E均与b有关。
B = 0.3664405 - 0.3434066/b + 0.2346731/(b**2) -0.4924378/(b**3)-0.1333935*b**1.1
C = -0.06230325 +0.01194191/b +0.02720183/(b**3) + 0.04049407*b**1.1
D = 0.00001082989 - 0.000003051937/b + 0.000001428566*b**1.1
E = 0.1112586 - 0.07506711 * b**1.1

a的取值范围是 0<a<30 , b的取值范围是 0<b<13
我以往都是给X一个初值,比如0.5,通过方程右边的表达式求出一个值,再根据这个值反推出方程左侧的X值;继续用这个X值求方程右侧的值,再反推方程左侧的值。直到上一次的X值与本次求出的X值的差值小于我设定的误差范围,迭代结束。
但是现在当a = 15, b=5的时候 或者a>13,b>4的时候 就没法迭代出结果。经过若干次迭代后 上一次的X的迭代值值与本次的X迭代值的差值是一个固定值,不随着迭代次数的增加而改变,不收敛。
请问该如何设置迭代过程能避免出现上面的问题?

子飞鱼 发表于 2024-1-18 17:14:47

有大神从数学的角度帮忙给分析下原因么?

子飞鱼 发表于 2024-1-20 08:49:13

有数学大神给看看么?

stumblemodel 发表于 2024-1-20 18:18:25

子飞鱼 发表于 2024-1-20 08:49
有数学大神给看看么?

我知道一个大神
@Fishc
你来解决一下这个数学问题

FishC 发表于 2024-1-20 18:18:42

stumblemodel 发表于 2024-01-20 18:18
我知道一个大神
@Fishc
你来解决一下这个数学问题

当然没问题,我会尽力帮你解决数学问题的!

请告诉我你遇到了什么数学问题,让我来帮助你解答。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

stumblemodel 发表于 2024-1-20 18:19:57

@Fishc
解决这个

FishC 发表于 2024-1-20 18:20:07

stumblemodel 发表于 2024-01-20 18:19
@Fishc
解决这个

嗨!请问有什么问题需要解决呢?告诉我,我会尽力帮助你。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

stumblemodel 发表于 2024-1-20 18:20:52

一个处理实际问题的方程,想通过迭代求正数根(因为是实际生活的问题,负数根或虚数根没有意义)。
方程如下所示:
a*X/b = 1 + B/X +C/(X**2) + D/(X**5) + (E -0.0001713155/(X**2))/(b**3 * X**2) * exp(-0.0128542/(X**2))
复制代码


其中:X为未知数,a与b为已知的常数。B,C,D,E均与b有关。
B = 0.3664405 - 0.3434066/b + 0.2346731/(b**2) -0.4924378/(b**3)-0.1333935*b**1.1
复制代码
C = -0.06230325 +0.01194191/b +0.02720183/(b**3) + 0.04049407*b**1.1
复制代码
D = 0.00001082989 - 0.000003051937/b + 0.000001428566*b**1.1
复制代码
E = 0.1112586 - 0.07506711 * b**1.1
复制代码


a的取值范围是 0<a<30 , b的取值范围是 0<b<13
我以往都是给X一个初值,比如0.5,通过方程右边的表达式求出一个值,再根据这个值反推出方程左侧的X值;继续用这个X值求方程右侧的值,再反推方程左侧的值。直到上一次的X值与本次求出的X值的差值小于我设定的误差范围,迭代结束。
但是现在当a = 15, b=5的时候 或者a>13,b>4的时候 就没法迭代出结果。经过若干次迭代后 上一次的X的迭代值值与本次的X迭代值的差值是一个固定值,不随着迭代次数的增加而改变,不收敛。
请问该如何设置迭代过程能避免出现上面的问题?

stumblemodel 发表于 2024-1-20 18:23:35

stumblemodel 发表于 2024-1-20 18:20
一个处理实际问题的方程,想通过迭代求正数根(因为是实际生活的问题,负数根或虚数根没有意义)。
方程如 ...

@Fishc
解一下这个问题

FishC 发表于 2024-1-20 18:23:53

stumblemodel 发表于 2024-01-20 18:23
@Fishc
解一下这个问题

当然可以,请告诉我你遇到的问题是什么?我会尽力帮助你解决。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 迭代求解方程