案例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. 【逆向工具】使用x64dbg+spy去除WinRAR5.40(64位)广告弹框

    1 学习目标 WinRAR5.40(64位)的弹框广告去除,由于我的系统为x64版本,所以安装了WinRAR(x64)版本. OD无法调试64位的程序,可以让我熟悉x64dbg进行调试的界面. 其次是 ...

  2. freeRTOS中文实用教程2--队列

    1.前言 freeRTOS中所有任务的通信和同步机制都是基于队列来实现. 2.队列的特点 图 队列的读写操作 队列的数据存储 (1)队列可以保存有限个具有确定长度的数据单元,队列可以保存的最大单元数目 ...

  3. 生成ansible-playbook的yaml文件的代码(字典排序问题无法解决)

    import yaml import collections def add_task(): return None def add_vars(): return None def add_handl ...

  4. oracle move 释放 表空间

    使用sqlplus 操作 alter table TEST_TB1 move storage(initial 64K); alter table TEST_TB1 move  ; select SEG ...

  5. hostapd 和 wap_supplicant

    hostapd : user space daemon for access points, including, e.g., IEEE 802.1X/WPA/EAP Authenticator fo ...

  6. urllib处理包的简单使用

    我们可以使用urllib.request.urlopen()这个接口函数就可以打开一个网站,读取打印信息 你可以现在终端使用python from urllib import request if _ ...

  7. STM32学习及应用笔记二:一次运算符优先级造成的错误

    本人在最近一个项目的开发中,出现一个应为疏忽运算符优先级造成的问题,检查了很久才发现问题,所以觉得运算符的优先级问题还是有必要再研究一下.具体的问题是这样的,我采集了传感器的原始数据,然后会对数据进行 ...

  8. sql基础笔记备忘

    MySQL中定义数据字段的类型对你数据库的优化是非常重要的. MySQL支持多种类型,大致可以分为三类:数值.日期/时间和字符串(字符)类型. 数值类型:tinyint smallint medium ...

  9. ECLIPSE 导入外部文件或源码包

    步骤: 点击Project->Properties->Libraries->Add External Class Folder.. ->选择你的文件路径->确定 注:如果 ...

  10. cf220b

    不知道为什么线段树区间更新专题里有这题.. 可以用莫队解,也可以直接开数组解 /* n个询问,m个元素 O(m*m):记录每个元素出现次数,筛掉出现次数小于数值的数 */ #include<io ...