zuiwojinxiao 发表于 2014-12-18 14:51:24

拟牛顿法求解轴承静力学模型

本人借鉴徐士良的Fortran常用算法程序集的拟牛顿法求解非线性方程组,方程总共3个方程3个未知量,求解发现计算老是出现error,或者fail求解失败。初值与计算步长也不知道如何选取,附件中是我编写的程序,求大神支招。
GAUSS.F90与NTN.F90是借鉴的徐士良的程序(电子版可在百度上随意搜到---Fortran常用算法程序集)。FS为我的方程,NTN0是主函数。FS中的Fa,Fr,M分别为轴向力,径向力与力矩,数值可变化,一般更改Fa为0-40000,Fr=0,M=0。 X为未知量,y为方程组。


如果大神有高招,如果方便的话,希望不吝赐教。多谢。

li913 发表于 2014-12-18 18:17:19

太复杂了。你可以先用简单的方程去调试代码,方程太复杂,调试很难。

zuiwojinxiao 发表于 2014-12-18 19:19:25

li913 发表于 2014-12-18 18:17
太复杂了。你可以先用简单的方程去调试代码,方程太复杂,调试很难。

其实方程形式很简单,估计就是中间变量太多了。我现在想不出方程该如何简化?我想问一下你对拟牛顿法了解吗?对于初值和步长的选择我很困惑。还有就是拟牛顿法的收敛方向我也不是很清楚

li913 发表于 2014-12-19 15:05:02

方法不懂。只能讲讲调试代码的技巧。先用已知解的简单方程去调试代码,这样比较容易找出逻辑错误(计算结果不符合预期)。

zuiwojinxiao 发表于 2014-12-23 09:28:51

li913 发表于 2014-12-19 15:05
方法不懂。只能讲讲调试代码的技巧。先用已知解的简单方程去调试代码,这样比较容易找出逻辑错误(计算结果 ...

ok,多谢:-handshake

kerb 发表于 2015-3-21 23:11:10

你的方程最好写出来,如果是非线性的方程组,你在牛顿法中,雅克比矩阵往往接近奇异,高斯消元法往往不能进行下去,即便能进行下去,求解结果也未必正确,看你的程序里面好象没有雅克比矩阵,你说的拟牛顿法也不像,里面也没看见海塞矩阵。

牛顿法是这样的:假设你的方程组用F表示,S = X_{n+1}-X_n;假设J是雅克比矩阵,迭代是这样:S =- (J^tJ)^{-1}J^tF(X_n);X_{n+1} = X_n +S

111 发表于 2023-8-4 15:47:34

您好。请问您的问题解决了吗?
页: [1]
查看完整版本: 拟牛顿法求解轴承静力学模型