24小时热门版块排行榜    

查看: 301  |  回复: 0

lernen8

新虫 (初入文坛)

[求助] fortran 求得的非线性解如何带入其他式子里面计算

fortran用牛顿法计算了非线性方程组,但是需要把这个解用于其他方程计算验证后再循环求解。
但是貌似方程的解只能write出,但是不能直接调用到其他等式啊,计算出来的结果不对(永远只有一组循环值)。
(下面只给了主程序,其他的子程序都没有给)

   DIMENSION X(3) , Y(3) , A(3, 3) , B(3) , JS(3)   
    DOUBLE PRECISION X, Y, A, B, T, H, Tm, Tm0, q   
    Double precision R=1.0E-4; dm=30.0E-3; km=383.0;
   * hw=40000.0; Tw=303.0   
    DATA X/ 0.1, 0.25, 0.25/     
    EPS= 1.0E-07     
    T= 0.1     
    H= 0.1     
    Tm0=550.0
5   Tm=Tm0      
      CALL FS(X,Y,N,Tm)           (用于给出非线性方程组的子程序)     
     CALL DNETN( 3, X, Y, EPS, FS, T, H, A, B, L, JS, Tm)    (用于计算非线性方程组的子程序)      
     WRITE( * , * )        
       WRITE( * , 30) L      
       WRITE( * , * )           
       DO 10 I= 1, 3
10   WRITE( * , 20) I, X( I)
20   FORMAT( 1X, 'X( ', I2, ') = ', D15. 6)
30   FORMAT( 1X, 'L= ', I4)      WRITE( * , * )     
     q=(1000.0*X(1)-Tm)/R                             (!!!!!就是这个计算公式需要调用计算的方程组的一个解X(1)用于计算,但是貌似式子计算结果不对,实际并没有能正确的循环计算,循环结果永远只有一组相同的数据)     
   Tmc=Tw+q*(dm/km+1/hw)     
     If(abs(Tm-Tmc) .gt. 1.0E-2) then        
         Tm0=(Tm+Tmc)/2                              (赋值给新的Tm0, 以用于5的循环计算)
         GOTO 5   
     endif     
     END

希望大虾能帮忙看看!谢谢!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 lernen8 的主题更新
信息提示
请填处理意见