Python3之弹性力学——应力张量1
题目
已知某点的应力张量为:
\begin{array}{ccc}
\sigma_{x} &\tau_{xy} &\tau_{xz}\\
\tau_{yx} &\sigma_{y} &\tau_{yz}\\
\tau_{zx} &\tau_{zy} &\sigma_{z}
\end{array}
\right]
=
\left[
\begin{array}{ccc}
0 &1 &2\\
1 & \sigma_{y} & 1\\
2 &1 &0
\end{array}
\right]
\]
并已知经过该点的某一平面上的应力矢量为零矢量,求 \(\sigma_y\) 和主应力?
分析
由题意,存在某个微分面(单位法向量为 \(\boldsymbol{n}\)),其上的应力矢量 \(\boldsymbol{T}=\boldsymbol{0}\),即
\left[\begin{array}{ccc}
0 & 1 & 2\\
1 & \sigma_{y} & 1\\
2 & 1 & 0
\end{array}
\right]
\left[
\begin{array}{c}
n_1\\
n_2\\
n_3
\end{array}
\right]
=
\left[
\begin{array}{c}
0\\
0\\
0
\end{array}
\right]
\]
行列式必须为零
线性方程组存在非零解,必然行列式为零,即
0 & 1 & 2\\
1 & \sigma_{y} & 1\\
2 & 1 & 0
\end{array}
\right|
= 0 + 2 + 2 -4\sigma_y - 0 - 0
= 0
\]
求得 \(\sigma_y = 1\)。
应力张量
于是,应力张量为
\begin{array}{ccc}
\sigma_{x} & \tau_{xy} & \tau_{xz}\\
\tau_{yx} & \sigma_{y} & \tau_{yz}\\
\tau_{zx} & \tau_{zy} & \sigma_{z}
\end{array}
\right]
=
\left[
\begin{array}{ccc}
0 & 1 & 2\\
1 & 1 & 1\\
2 & 1 & 0
\end{array}
\right]
\]
特征值问题
求主应力,即为求应力张量的特征值。
\]
或
\begin{array}{ccc}
-\sigma & 1 & 2\\
1 & 1-\sigma & 1\\
2 & 1 & -\sigma
\end{array}
\right|
=
(1-\sigma)\sigma^2 + 2 + 2 - 4(1-\sigma) + \sigma + \sigma = 0
\]
整理得
\]
主应力
得到三个主应力分别为
\begin{array}{rcr}
\sigma_1 & = & 3\\
\sigma_2 & = & 0\\
\sigma_3 & = & -2
\end{array}
\right.
\]
Python3代码求解
符号运算求特征值
- 调用 Python 下的 sympy 模块
from sympy import init_printing, Matrix
init_printing(use_unicode=True)
Matrix对象表示应力矩阵
# 生成矩阵对象
sigma = Matrix([[0, 1, 2], [1, 1, 1], [2, 1, 0]])
sigma
\]
求特征值
- 前已求得三个主应力分别为
\begin{array}{rcr}
\sigma_1 & = & 3\\
\sigma_2 & = & 0\\
\sigma_3 & = & -2
\end{array}
\right.
\]
- 调用 Matrix 对象的 eigenvals 方法
sigma.eigenvals() # 求特征值
\]
- 冒号后的数字表示一重特征值
求特征矢量
- 调用 Matrix 对象的 eigenvects 方法
sigma.eigenvects()
\]
参考
Python3之弹性力学——应力张量1的更多相关文章
- Python3之弹性力学——应力张量2
问题 已知某应力张量的分量为 \[ \sigma_{11}=3,\quad\sigma_{12} = \sigma_{13} = 1, \quad \sigma_{22} = \sigma_{33} ...
- python3 threading初体验
python3中thread模块已被废弃,不能在使用thread模块,为了兼容性,python3将thread命名为_thread.python3中我们可以使用threading进行代替. threa ...
- Python3中的字符串函数学习总结
这篇文章主要介绍了Python3中的字符串函数学习总结,本文讲解了格式化类方法.查找 & 替换类方法.拆分 & 组合类方法等内容,需要的朋友可以参考下. Sequence Types ...
- Mac-OSX的Python3.5虚拟环境下安装Opencv
Mac-OSX的Python3.5虚拟环境下安装Opencv 1 关键词 关键词:Mac,OSX,Python3.5,Virtualenv,Opencv 2 概述 本文是一篇 环境搭建 的基础 ...
- Ubuntu部署python3.5的开发和运行环境
Ubuntu部署python3.5的开发和运行环境 1 概述 由于最近项目全部由python2.x转向 python3.x(使用目前最新的 python3.5.1) ,之前的云主机的的默认python ...
- Python3 登陆网页并保持cookie
网页登陆 网页登陆的原理都是,保持一个sessionid在cookie然后,根据sessionid在服务端找到cookie进行用户识别 python实现 由于python的简单以及丰富的类库是开发网络 ...
- 阿里云 SDK python3支持
最近的一个项目需要操作阿里云的RDS,项目使用python3,让人惊讶的是官方的SDK竟然只支持python2 在阿里云现有SDK上改了改,文件的修改只涉及aliyun/api/base.py,详见h ...
- python3爬取1024图片
这两年python特别火,火到博客园现在也是隔三差五的出现一些python的文章.各种开源软件.各种爬虫算法纷纷开路,作为互联网行业的IT狗自然看的我也是心痒痒,于是趁着这个雾霾横行的周末瞅了两眼,作 ...
- CentOS7中安装Python3.5
1.下载 https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.上传到服务器 3. 安装相关依赖 yum install gcc ope ...
随机推荐
- bzoj3991 lca+dfs序应用+set综合应用
/* 给定一棵树,树上会出现宝物,也会有宝物消失 规定如果要收集树上所有宝物,就要选择一个点开始,到每个宝物点都跑一次,然后再回到那个点 现在给定m次修改,每次修改后树上就有一个宝物消失,或者一个宝物 ...
- 第四周学习总结-HTML
2018年8月5日 这是暑假第四周,这一周我在菜鸟教程网学到了许多HTML的知识.HTML编写网页不像C语言.Java语言那必须有主方法.主函数什么的,它基本上都是标签(元素),但是它可以与CSS(层 ...
- Python元组与列表的区别
列表类似于我们用铅笔在纸上写字,写错了还可以擦掉:而元组则类似于用钢笔写字,写错了就擦不掉了,除非换张纸重写. 列表和元组的区别主要体现在一下几个方面: 列表属于可变序列,他的元素可以随时修改或删除: ...
- java 基础知识点必备
1.为什么集合类没有实现Cloneable和Serializable接口? 克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的.因此,应该由集合类的具体实 ...
- 20165323《Java程序设计》第九周学习总结
一.教材内容学习总结 URL类 1.URL 类是 java.net 包中的一个重要的类,使用 URL 创建对象的应用程序称为客户端程序. 2.一个 URL 对象通常包含最基本的三部分信息:协议.地址和 ...
- jquery实现全选 反选 取消
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- proc/net/dev实时网速统计实例
https://blog.csdn.net/dosthing/article/details/80384541 http://www.l99.com/EditText_view.action?text ...
- 修改Elasticsearch的settings
解决:Limit of total fields [1000] in index [nginx-access-log] has been exceeded" 的问题 PUT http://1 ...
- springboot中使用拦截器、监听器、过滤器
拦截器.过滤器.监听器在web项目中很常见,这里对springboot中怎么去使用做一个总结. 1. 拦截器(Interceptor) 我们需要对一个类实现HandlerInterceptor接 ...
- la 3938(未完成)
题意:给出一个长度为n的整数序列D,你的任务是对m个询问作出回答.对于询问(a,b), 需要找到两个下标x和y,使得a≤x≤y≤b,并且Dx+Dx+1+...+Dy尽量大. 如果有多组满足条件的x和y ...