案例1

给出4个弹簧的劲度系数,离散后,求其总的刚度矩阵。
**代码:**
```
import numpy as np
k1, k2, k3, k4 = 500, 250, 2000, 1000
ki = np.array([k1, k2, k3, k4])
p = 1000
K = np.matrix(np.zeros((4, 4)))
eindex = [K[0:2, 0:2], K[1:3, 1:3], K[0:3:2, 0:3:2], K[2:, 2:]]
for i in range(4):
ke = ki[i] * np.array([[1, -1], [-1, 1]])
eindex[i] += np.matrix(ke)
print(K)
```
**结果如下:**
[[ 2500. -500. -2000. 0.]
[ -500. 750. -250. 0.]
[-2000. -250. 3250. -1000.]
[ 0. 0. -1000. 1000.]]

案例2

两根杆的实例。
**代码分析:**
```
import numpy as np
# 系统的初始参数如下:
A1, A2, L1, L2, E1, E2 = 2400, 600, 300, 400, 7e4, 2e5
# 计算每根杆的刚度
k1 = (E1*A1/L1)*np.array([[1, -1], [-1, 1]])
print('k1', k1)
k2 = (E2*A2/L2)*np.array([[1, -1], [-1, 1]])
print('k2', k2)
ki = [k1, k2]
# 初始化总的刚度矩阵、力以及位移
K, F, d = np.zeros((3, 3)), np.zeros((3, 1)), np.zeros((3, 1))
print(K)
print(F)
print(d)
# 组装总的刚度矩阵
eindex = [K[0:2, 0:2], K[1:, 1:]]
for i in range(2):
eindex[i] += ki[i]
print(K)
# 给出力向量
F[1] = 200000
print(F)
# 求解过程
KK = K[1, 1]
FF = F[1]
dd = FF/KK
d[1] = dd
print(d)
```
**计算结果:**
1. 每根杆的刚度矩阵
k1 [[ 560000. -560000.]
[-560000. 560000.]]
k2 [[ 300000. -300000.]
[-300000. 300000.]]
2. 总的刚度矩阵
[[ 560000. -560000. 0.]
[-560000. 860000. -300000.]
[ 0. -300000. 300000.]]
3. 力向量
[[ 0.]
[200000.]
[ 0.]]
4. 求解的位移向量
[[0. ]
[0.23255814]
[0. ]]

专业方向系列-00-Python与有限元初探的更多相关文章

  1. saltstack自动化运维系列⑩SaltStack二次开发初探

    saltstack自动化运维系列⑩SaltStack二次开发初探 1.当salt运行在公网或者网络环境较差的条件下,需要配置timeout时间vim /etc/salt/master timeout: ...

  2. IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表

    原文:  IDT系列:(一)初探IDT,Interrupt Descriptor Table,中断描述符表 IDT,Interrupt Descriptor Table,中断描述符表是CPU用来处理中 ...

  3. 【系列】Python编程思想(1):Python简介与开发环境搭建

    李宁老师的 开始学习.   本系列文章深入介绍了Python的各种技术,堪称是目前最全的Python教程.主要目的是让读者可以了解Python的各种核心技术,包括各种Python函数库.本教程使用Py ...

  4. C#进阶系列——DDD领域驱动设计初探(一):聚合

    前言:又有差不多半个月没写点什么了,感觉这样很对不起自己似的.今天看到一篇博文里面写道:越是忙人越有时间写博客.呵呵,似乎有点道理,博主为了证明自己也是忙人,这不就来学习下DDD这么一个听上去高大上的 ...

  5. C#进阶系列——DDD领域驱动设计初探(二):仓储Repository(上)

    前言:上篇介绍了DDD设计Demo里面的聚合划分以及实体和聚合根的设计,这章继续来说说DDD里面最具争议的话题之一的仓储Repository,为什么Repository会有这么大的争议,博主认为主要原 ...

  6. C#进阶系列——DDD领域驱动设计初探(三):仓储Repository(下)

    前言:上篇介绍了下仓储的代码架构示例以及简单分析了仓储了使用优势.本章还是继续来完善下仓储的设计.上章说了,仓储的最主要作用的分离领域层和具体的技术架构,使得领域层更加专注领域逻辑.那么涉及到具体的实 ...

  7. C#进阶系列——DDD领域驱动设计初探(四):WCF搭建

    前言:前面三篇分享了下DDD里面的两个主要特性:聚合和仓储.领域层的搭建基本完成,当然还涉及到领域事件和领域服务的部分,后面再项目搭建的过程中慢慢引入,博主的思路是先将整个架构走通,然后一步一步来添加 ...

  8. C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用

    前言:前篇搭建了下WCF的代码,就提到了DTO的概念,对于为什么要有这么一个DTO的对象,上章可能对于这点不太详尽,在此不厌其烦再来提提它的作用: 从安全上面考虑,领域Model都带有领域业务,让Cl ...

  9. C#进阶系列——DDD领域驱动设计初探(六):领域服务

    前言:之前一直在搭建项目架构的代码,有点偏离我们的主题(DDD)了,这篇我们继续来聊聊DDD里面另一个比较重要的知识点:领域服务.关于领域服务的使用,书中也介绍得比较晦涩,在此就根据博主自己的理解谈谈 ...

随机推荐

  1. Difference between plt.draw() and plt.show() in matplotlib

    Difference between plt.draw() and plt.show() in matplotlib down voteaccepted plt.show() will display ...

  2. 【vim】自动补全 Ctrl+n

    Vim 默认有自动补全的功能.的确这个功能是很基本的,并且可以通过插件来增强,但它也很有帮助.方法很简单. Vim 尝试通过已经输入的单词来预测单词的结尾. 比如当你在同一个文件中第二次输入 &quo ...

  3. freeRTOS中文实用教程3--中断管理之中断嵌套

    1.前言 最新的 FreeRTOS 移植中允许中断嵌套.中断嵌套需要在 FreeRTOSConfig.h 中设置configKERNEL_INTERRUPT_PRIORITY 和configMAX_S ...

  4. 如何交叉编译 linux kernel 内核

    Compilation We first need to move the config file by running cp arch/arm/configs/bcmrpi_cutdown_defc ...

  5. nodejs 文件拷贝

    小文件拷贝 我们使用NodeJS内置的fs模块简单实现这个程序如下. var fs = require('fs'); function copy(src, dst) { fs.writeFileSyn ...

  6. Cleaning up old NVIDIA driver files

    原文地址:https://www.gameplayinside.com/optimize/cleaning-up-old-nvidia-driver-files-to-save-disk-space/ ...

  7. Vue.js——component(组件)

    概念: 组件(Component)是自定义元素. 作用: 可以扩展HTML元素,封装可重用的代码. <div id="myView"> <!-- 把学生的数据循环 ...

  8. centos 编译安装PHP5.4

    2013年12月29日 19:52:30 已经安装好Apache 2.4 php版本 5.4 ./configure --prefix=/usr/local/lamp/php --with-apxs2 ...

  9. PHP导出CVS格式文件

    $csvContent="csvzero,csvone,csvtwo,csvthree,csvfour,csvfive"; header("Content-Type: a ...

  10. ios 侧边手势滑动返回 禁用/开启 功能

    // 禁用  返回手势       if ([self.navigationController respondsToSelector:@selector(interactivePopGestureR ...