首页/文章/ 详情

第五章 动力反应数值计算-2

3年前浏览4541

5.3 中心差分法(central difference method)

中心差分法的是一种直接法,属于显示的计算方法。
对于控制方程:
[公式] 
直接离散为如下形式:

[公式]

[公式] 
image.png

[公式]

image.png

[公式]

[公式]

其中:

[公式]

[公式]


例题5.2,用中心差分法求解例题5.1

import math as mt#------------------------------------------# This is initial conditions, like the mass# stiffness, damping coefficient and so on.# The time step is 0.1 second.m = 0.2533; k = 10; c = 0.1592; u0 = 0; udot0 = 0;dt = 0.1;p0 = 0#------------------------------------------uacc = (p0-c*udot0-k*u0)/muminus1 = u0 - dt*udot0 - (dt*dt/2)*uacckhat = m/(dt*dt) c/(2*dt)a = k - 2*m/(dt*dt)b = m/(dt*dt) - c/(2*dt)#------------------------------------------#pForce is a sine function, its amplitude is 10.#------------------------------------------def pForce(x):
    if x > 0.6:
        return 0
    return 10*mt.sin(mt.pi*x/0.6)def centralDifferenceMethod(m):
    c = u0;
    d = uminus1
    p = p0
    for i in range(m):
        p = pForce(i*dt) - a*c - b*d
        u = p/khat
        c, d = u, c
    print(p,u)centralDifferenceMethod(11)-33.80315216664004 -1.2938510360039823

首发于 2018-03-02

理论科普通用非线性结构基础python
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-03-21
最近编辑:3年前
汪洋
好奇的活一辈子!
获赞 7粉丝 196文章 4课程 2
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈