中心差分法的基本理论与程序设计.docx

中心差分法的基本理论与程序设计1程序设计的目的与意义该程序通过用C语言(部分C语言)编写了有限元中用于求解动力学问题的中心差分法,巩固和掌握了中心差分法的基本概念,提高了实际动手能力,并通过实际编程实现了中心差分法在求解某些动力学问题中的运用,加深了对该方法的理解和掌握。2程序功能及特点该程序采用C语言(部分C语言)实现了用于求解动力学问题的中心差分法,可以求解得到运动方程的解答,包括位移,速度和加速度。计算简便且在算法稳定的条件下,精度较高。3中心差分法的基本理论在动力学问题中,系统的有限元求解方程(运动方程)如下所示MATCTKATQ式中,是系统结点位移向量,和分别是系统的结点加速度AT向量和结点速度向量,和分别是系统的质量矩阵、阻尼矩阵、刚,T度矩阵和结点载荷向量,并分别由各自的单元矩阵和向量集成。与静力学分析相比,在动力分析中,由于惯性力和阻尼力出现在平衡方程中,因此引入了质量矩阵和阻尼矩阵,最后得到的求解方程不是代数方程组,而是常微分方程组。常微分方程的求解方法可以分为两类,即直接积分法和振型叠加法。中心差分法属于直接积分法,其对运动方程不进行方程形式的变换而直接进行逐步数值积分。通常的直接积分是基于两个概念,一是将在求解域内的任何时刻都应满足运动方程的要求,代之仅在一定条件下近似地0TTT满足运动方程,例如可以仅在相隔的离散的时间点满足运动方程;二是在一T定数目的区域内,假设位移、速度、加速度的函数形式。TAA中心差分法的基本思路是用有限差分代替位移对时间的求导,将运动方程中的速度和加速度用位移的某种组合表示,然后将常微分方程组的求解问题转换为代数方程组的求解问题,并假设在每个小的时间间隔内满足运动方程,则可以求得每个时间间隔的递推公式,进而求得整个时程的反应。在中心差分法中,加速度和速度可以用位移表示,即21TTTAATT时间的位移解答,可由时间的运动方程应得到满足,即由下式TTATTTTMCAKQ而得到。为此将加速度和速度的表达式代入上式中,即可得到中心差分法的递推公式22211TTTTAAMCATT若已经求得和,则从上式可以进一步解出。所以上式是求解各TTT个离散时间点的解的递推公式,这种数值积分方法又称为逐步积分法。需要指出的是,此算法有一个起步问题。因为当时,为了计算,除了知道初始0TTA条件已知的,还需要知道,所以必须用一专门的起步方法。根据以上加0ATA速度和速度的表达式可知200TTA其中和可以从给定的初始条件中得到,而则可以利用时的运动方程0A00T得到,即0MCKQ1000AMQCAK中心差分法避免了矩阵求逆的运算,是显式算法,且其为条件稳定算法,利用它求解具体问题时,时间步长必须小于由该问题求解方程性质所决定的T某个临界值,否则算法将是不稳定的。中心差分法比较适用于由冲击、爆CRT炸类型载荷引起的波传播问题的求解,而对于结构动力学问题则不太合适。4中心差分法的有限元计算格式利用中心差分法逐步求解运动方程的算法步骤如下所示1初始计算1形成刚度矩阵、质量矩阵和阻尼矩阵;KMC2给定,和;0A03选择时间步长,,并计算积分常数,T2NCRTT021CT,,;12CT203214计算;TATCA5形成有效质量矩阵;01ˆMC6三角分解。ˆLU2对于每一时间步长()0,2TT1计算时间的有效载荷T201ˆTTTTQKCMACCA2求解时间的位移TˆTTLUQ3如果需要,计算时间的加速度和速度T02TTTTACA1TTT5程序设计51程序流程给定初始时刻的位移,速度和及速度选择时间步长,计算积分常数计算起步条件LU分解MLUARRAYLU子程序计算时间T的有效载荷(ARRAYMVECTOR子程序)求解时间TΔT的位移LUATΔTQLUSOLVE子程序输出时间TΔT的位移计算时间T的速度和加速度启动输入原始数据(M,C,K)输出结果结束图1程序流程图各子程序主要功能为ARRAYLULU三角分解;ALUINVERSE求矩阵的转置矩阵;ARRAYMVECTOR矩阵和向量的乘法;LUSOLVE求解方程。XP52输入数据及变量说明521输入数据该程序的原始输入数据应包括三个部分1刚度矩阵,质量矩阵和阻尼矩阵;KMC2初始条件时间时刻的位移,速度,加速度;0T0A00A3确定时间步长,其中为了保证该算法的稳定性,需要满足。2NCRTT522变量说明该程序的各个变量含义如下1NUM,TIMESTEP,DTNUM矩阵维度;TIMESTEP时间步数;DT时间步长;2M,C,K,X,V,A,P,MM,PT,C0,C1,C2,C3M质量矩阵;C阻尼矩阵;K刚度矩阵;X位移矩阵;V速度矩阵;A加速度矩阵;P载荷向量;MM有效质量矩阵;PT时间时刻的有效载荷;TC0,C1,C2,C3积分常数;6算例61问题描述应用本程序计算一个三自由度系统,它的运动方程是10210346AA初始条件当时,,。0T00已知此系统的固有频率为,,。相应的振动周期为1323,,。1089T24368T当时,利用公式,可以计算得到T1000AMQCAK;时间步长分别取和进行计算。06TA36TT35184TT62理论计算621中心差分法(理论解)1时间步长3106TT当时,其积分常数为0217589CT1372CT201578C321658CE则起步条件为03006359635TATCA有效质量矩阵为ˆM01007590ˆ7593182759MCC对于每一时间步长,需先计算有效载荷201ˆ01387590452638759TTTTTTQKCMACCAA再从下列方程计算时间的位移TTA7590ˆ2759TQ由上式得到的每一时间步长的位移结果如表1所示表1理论解306TT时间T2T345T6T7T8T9T10T1A00000000000301303607914623734220000030190581262243434695846773A0401482974525826717227517858452时间步长35184TT按照相同的步骤,所得结果如下209871TA507164TA7831026TA再计算下去,位移将继续增大,这是不稳定的典型表现。其原因是在条件稳定的中心差分方法中采用了远大于的时间步长,所以CRTT35184TT不可能得到有意义的结果。622振型叠加法(精确解)采用振型叠加法对上述问题进行计算,可以得到该问题的精确解。首先应求解的广义特征值问题为22101043按照一般的线性代

中心差分法编程C语言,中心差分法的基本理论与程序设计.docx相关推荐

  1. 用户不必了解计算机的内部结构,用户不必了解计算机的内部结构,主要考虑解题算法和步骤,以过程为中心的编程思想,称为()语言...

    用户不必了解计算机的内部结构,主要考虑解题算法和步骤,以过程为中心的编程思想,称为()语言 更多相关问题 以下哪个选项不属于相关研究的内容? 分离变量法是人们基于两个重要事实提出来的,它们分别是:波动 ...

  2. 阿德莱德大学计算机语言班,阿德莱德大学——英语语言中心

    阿德莱德大学英语语言中心为来自全球的国际学生和团体提供高质量的学术英语语言课程以及英文教师培训服务.   Pre-Enrolment Program(PEP) 学术英语直升入学课程 阿德莱德大学为语言 ...

  3. 谷歌宣布推出Dart编程新语言

    北京时间9月9日上午消息,据著名科技做网站ExtremeTech的报道,谷歌编程新语言Dart逐渐浮出水面,它是一种"结构化的Web编程"语言.早在几天前谷歌就已着手注册了一系列与 ...

  4. [转]终于有人说出来了——Java不适合于作为主要编程教学语言

    CSDN首页推荐了一篇文章,说两位退休的美国大学教授上书反对将Java作为编程教学语言,对此我表示高度认同.对于Java,我并不反感,而且相信它在工业应用中的地位不可取代,但是,我一直反对将Java作 ...

  5. 编程python语言_python编程语言的简要历史

    编程python语言 The Python programming language is a general-purpose programming language that has carved ...

  6. R语言生成仿真的3D高斯簇数据集、使用scale函数进行数据缩放、并使用KMeans进行聚类分析、数据反向缩放并比较聚类生成的中心和实际数据的中心的差异、预测新的数据所属的聚类簇

    R语言生成仿真的3D高斯簇数据集.使用scale函数进行数据缩放.并使用KMeans进行聚类分析.数据反向缩放并比较聚类生成的中心和实际数据的中心的差异.预测新的数据所属的聚类簇 目录

  7. ad域控如何建立在云端_呼叫中心哪家好?选择云端呼叫中心还是本地化部署呼叫中心好?...

    呼叫中心哪家比较好? 适用于企业的呼叫中心主要可分为3种方案:自建型呼叫中心系统.Saas云端呼叫中心和混合云呼叫中心.这三种部署方案分别是:本地化部署.Saas云部署.混合云部署.对于这三种部署方式 ...

  8. Python 或将成为法国高中的官方编程教学语言

    百度智能云 云生态狂欢季 热门云产品1折起>>>   Python 或将成为法国高中的官方编程教学语言,这将带来几十万甚至几百万的新用户.此消息来自 Nina ,她是微软云开发的倡导 ...

  9. 嵌入式编程C语言提高代码效率的14种方法

    嵌入式编程C语言提高代码效率的14种方法 1.在可能的情况下使用typedef替代define.当然有时候你无法避免define,但是typedef更好. typedef int* INT_PTR; ...

最新文章

  1. 大神开源AI代码!这次我也可以亲自上手、模仿OpenAI利用文本合成图像啦!
  2. 【CSS】【9】CSS盒子的浮动
  3. 计算机网络第四章:网络层
  4. python怎么输入文件数据库_python学习日记——文件及数据库
  5. Docker框架的使用系列教程(三)
  6. java零碎要点009---java实现服务器心跳机制,TCP握手
  7. idea怎么提交到dev分支_idea中新建git分支,并提交到远程github
  8. 深度相机(六)--Kinect v2.0 手势样本库制作
  9. C++调用其他语言(C#、java、python)
  10. 如何比较两种方法的灵敏度和特异度
  11. 查询水果价格(PTA-武理-C实验)
  12. 洛谷P4238:【模板】多项式求逆
  13. java 自然对数的底数_Java求自然对数底e的值
  14. vscode配置c/c++编译环境(最终解决办法)
  15. Ubuntu Server 22.04 Jammy Jellyfish安装Budgie桌面环境
  16. 【生活】教你有效戒糖
  17. BIGEMAP中添加第三方卫星影像
  18. 铁威马NAS安装bittorrent QB下载PT/BT
  19. Unity Shader PostProcessing - 11 - Depth Fog/Height Fog - 雾效/深度雾效/高度雾/深度+高度雾
  20. asp.net webs制作(包括连接数据库)

热门文章

  1. ★ 我的世界各类奇葩武器实现!(命令方块1.13+)
  2. 这么有“艾”的端午节,此处应@博物杂志!
  3. 华为数字化转型之道 实践篇 第八章 数字化交易:让做生意简单、高效
  4. ftp远程登陆常用命令
  5. 程序员的算法课(6)-最长公共子序列(LCS)
  6. python用turtle画七巧板_python之“七巧板”
  7. Vue3 使用vant actionBar组件后对icon图标的点击切换效果/点击收藏/取消收藏
  8. 中国计算机学会推荐中文科技期刊目录(2022年)
  9. Python 的文件路径和操作(一)
  10. 【数据挖掘】数据挖掘概述