Fortran Coder

标题: 请教一个非整数次幂方程的求解 [打印本页]

作者: feishay    时间: 2017-7-30 23:48
标题: 请教一个非整数次幂方程的求解
该方程如下:
a1*(x+b1)^t+a2*(x+b2)^t=c

[latex]{a}_{1}{(x+{b}_{1})}^{t}+{a}_{2}{(x+{b}_{2})}^{t}=c[/latex]

其中,a1, a2, b1, b2, c 皆为常数;  0<t<1
请教如何用fortran编写程序求出未知数x?
先谢过!






作者: li913    时间: 2017-7-31 07:59
求解非线性方程,看专业的算法集,比如《徐士良程序集》。
作者: feishay    时间: 2017-8-3 17:33
li913 发表于 2017-7-31 07:59
求解非线性方程,看专业的算法集,比如《徐士良程序集》。

非常感谢您提供的信息

这两天加深了对非线性方程数值求解的理解

使用的是牛顿迭代法,问题解决过程中,发现程序倒不难,但是,初值选不好,收敛性会出现问题

经过多次检查修改基本能顺利运行了


作者: kerb    时间: 2017-8-6 19:29
这个用截弦法可能对初值不敏感,不会出现来回震荡的情况,牛顿法虽然快,但是有可能出现来回震荡的情况
作者: feishay    时间: 2017-8-8 10:25
kerb 发表于 2017-8-6 19:29
这个用截弦法可能对初值不敏感,不会出现来回震荡的情况,牛顿法虽然快,但是有可能出现来回震荡的情况 ...

谢谢您的解答

用牛顿法遇到不收敛的情况时,我也进一步看了截弦法

后来用matlab把函数曲线画出来,知道是什么样的图形,修改了初值用牛顿法解决了问题





欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2