声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1867|回复: 10

[转子动力学] 求数据拟合程序

[复制链接]
发表于 2008-6-17 15:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
我想将一组数拟合成一个三次多项式,哪位高人有这方面的程序阿!
回复
分享到:

使用道具 举报

发表于 2008-6-17 15:55 | 显示全部楼层
MATLAB可以实现。
发表于 2008-6-18 09:34 | 显示全部楼层
MATLAB命令行下输入 cftool
可以调出拟合工具
发表于 2008-7-14 09:39 | 显示全部楼层
matlab

polyfit(x,y,3)

x,y为实验所得数据,3为多项式次数。
发表于 2008-8-1 21:25 | 显示全部楼层

用stopt1软件

用stopt1还是1stopt软件,忘了,非常理想。
发表于 2008-8-2 07:41 | 显示全部楼层
借问FRF的数据怎末拟合比较好?
发表于 2008-8-2 12:36 | 显示全部楼层
本帖最后由 VibInfo 于 2016-10-9 10:30 编辑
原帖由 zhaochj 于 2008-8-1 21:25 发表
用stopt1还是1stopt软件,忘了,非常理想。

是1stopt软件,其他数学软件版块有相关的内容,dingd主任是1stopt高手
发表于 2008-8-2 15:59 | 显示全部楼层
多项式拟合是最常用的一种拟合方法,许多程序都有这样的功能。

还可以看看数值分析方法,自己编个程序,不难。
发表于 2008-8-3 16:42 | 显示全部楼层
.
     下面是一个样条拟合程序:

C=======================================================================
C                                                         
C             THIRD SPLINE INTERPLATION                    
C
C=======================================================================
        SUBROUTINE SPL(N,K,T,Y,Y1,Y2,SUM,U1,V1)
        DIMENSION U1(N),V1(N)
        REAL  M(100),H(100)
        DIMENSION A(100),B(100),C(100),D(100),U(100),V(100)
        IF(N.EQ.1) THEN
        Y=V1(1)
        GOTO 90
        ENDIF
        IF(N.EQ.2) THEN
        Y=(V1(2)-V1(1))/(U1(2)-U1(1))*(T-U1(1))+V1(1)
        GOTO 90
        ENDIF
        IF(N.EQ.3) THEN
        IF(T.GE.U1(2)) THEN
        Y=(V1(3)-V1(2))/(U1(3)-U1(2))*(T-U1(2))+V1(2)
        ELSE
        Y=(V1(2)-V1(1))/(U1(2)-U1(1))*(T-U1(1))+V1(1)
        ENDIF
        GOTO 90
        ENDIF
        IF(U1(1).GT.U1(N)) THEN
        DO 12 I=1,N
        U(I)=U1(N-I+1)
  12    V(I)=V1(N-I+1)
        ELSE
        DO 8 I=1,N
        U(I)=U1(I)
  8     V(I)=V1(I)
        ENDIF
        MA=0
        DO 73 I=1,N-1
        IF(U(I).GE.U(I+1)) THEN
        MA=MA+1
        N=N-1
        ENDIF
        U(I)=U(I+MA)
73      V(I)=V(I+MA)
        DO 5 I=2,N
        H(I)=U(I)-U(I-1)
  5     B(I)=2.
        B(1)=2.
        C(1)=0.
        D(1)=0.
        A(N)=0.
        D(N)=0.
        DO 10 I=2,N-1
        A(I)=H(I)/(H(I)+H(I+1))
  10    C(I)=1.0-A(I)
        DO 15 I=2,N-1
  15    D(I)=6.*((V(I+1)-V(I))/H(I+1)-(V(I)-V(I-1))/
     *  H(I))/(H(I)+H(I+1))
        D(1)=D(1)/B(1)
        W=B(1)
        DO 20 I=2,N
        I1=I-1
        B(I1)=C(I-1)/W
        W=B(I)-A(I)*B(I-1)
  20    D(I)=(D(I)-A(I)*D(I-1))/W
        DO 25 I=1,N-1
        NI=N-I
        D(NI)=D(NI)-B(NI)*D(NI+1)
  25    M(NI)=D(NI)
        IF((T-U(1)).LT.0..OR.(T-U(N)).GT.0.) GOTO 35
        GOTO 40
  35    CONTINUE
        IF(T.LT.U(1)) THEN
        AS=(V(3)-V(1))/(U(3)-U(1))
        BS=(V(2)-V(1))/(U(2)-U(1))
        AS=(AS-BS)/(U(3)-U(2))
        Y=V(1)+(T-U(1))*BS+(T-U(1))*(T-U(2))*AS
        ELSE
        AS=(V(N)-V(N-2))/(U(N)-U(N-2))
        BS=(V(N-1)-V(N-2))/(U(N-1)-U(N-2))
        AS=(AS-BS)/(U(N)-U(N-1))
        Y=V(N-2)+(T-U(N-2))*BS+(T-U(N-2))*(T-U(N-1))*AS
        ENDIF
        RETURN
  40    I=2
  47    IF(T.GT.U(I)) GOTO 50
        GOTO 55
  50    I=I+1
        GOTO 47
  55    W=(T-U(I-1))/H(I)
        M(N)=0.
        GOTO (75,70,60,65,65) ,K
  60    SUM=0.
        DO 62 I=2,N
  62    SUM=SUM+(V(I-1)+V(I))*H(I)/2.-(M(I-1)+M(I))*H(I)**3/24.
        IF(K.EQ.3.) GOTO 80
  65    Y2=M(I-1)*(1.-W)+M(I)*W
        IF(K.EQ.5) GOTO 80
  70    Y1=(V(I)-V(I-1))/H(I)+H(I)*(M(I-1)
     *  *(-W*W/2.+W-1./3.)+M(I)*(W*W-1./3.)/2.)
        IF(K.EQ.2) GOTO 80
  75    Y=V(I-1)*(1.-W)+V(I)*W+W*(W-1.)*H(I)*H(I)*
     *  (M(I-1)*(2.-W)+M(I)*(W+1.))/6.
  80    CONTINUE
  90    RETURN
        END
C=======================================================================

评分

1

查看全部评分

发表于 2008-8-9 15:28 | 显示全部楼层

回复 板凳 iewoug 的帖子

弱弱地问一句,怎么用呢?
发表于 2008-8-10 15:19 | 显示全部楼层
本帖最后由 VibInfo 于 2016-10-9 10:30 编辑
原帖由 liaolitao 于 2008-8-9 15:28 发表
弱弱地问一句,怎么用呢?

看帮助吧,写得很清楚
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-6-12 20:29 , Processed in 0.073849 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表