前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现所有算法-力系统是否静态平衡(补篇)

Python实现所有算法-力系统是否静态平衡(补篇)

作者头像
云深无际
发布2022-08-05 11:38:40
6010
发布2022-08-05 11:38:40
举报
文章被收录于专栏:云深之无迹

Python实现所有算法-二分法

Python实现所有算法-力系统是否静态平衡

Python实现所有算法-高斯消除法

昨天第二篇文章写的有点匆忙了,有一些地方配图配错了,这里做个更正。

关于静力学平衡,就回忆一下这个图就好

程序第一个给的例题是这个,我配错了图,对不起了

解析沿矩形分量的力

(force, angle) => (force_x, force_y),这个就是最终的结果。

因为提起角度就有两个不同的记法,这里也做了一个角度的兼容。

Core就是一个正交分解

弧度制

我们这个图就很完美了

还有一个是比较泛化的正交分解

在函数的参数构建中,分力,位置

代码语言:javascript
复制
in_static_equilibrium(force, location)

最后就会给出结果

对于例题,这就是我们的分力,三组

三个点在原点处的平衡情况

代码语言:javascript
复制
location = array([[0, 0], [0, 0], [0, 0]])
assert in_static_equilibrium(forces, location)

这样调用就好

对于这个,因为角度特殊,所以力直接给出

四力,四点

代码语言:javascript
复制
import math
force = polar_force(10, 45)
math.isclose(force[0], 7.071067811865477)

True

math.isclose(force[1], 7.0710678118654755)

 True
 
polar_force(10, 3.14, radian_mode=True)

[-9.999987317275396, 0.01592652916486828]

在Python数学模块中,math.isclose()方法用于确定两个浮点数的值是否接近。要使用此函数,你必须导入数学模块。

代码语言:javascript
复制
用法:isclose(a, b, rel_tol = 1e-09, abs_tol 0.0)

参数:rel_tol:被视为“close”的最大差,相对于输入值的大小

abs_tol:“close”的最大差异,与输入值的大小无关

cross是叉积

numpy.cross

代码语言:javascript
复制
numpy.cross(a, b, axisa=-1, axisb=-1, axisc=-1, axis=None)

返回两个(数组)向量的叉积。

a和b 的叉积是垂直于a和b的向量。如果a和b是向量的数组,则默认情况下,向量由a和b的最后一个轴定义,并且这些轴的尺寸可以为2或3。其中a或b的尺寸为2时,则第三个分量假定输入向量为零,并据此计算叉积。如果两个输入向量的尺寸均为2,则返回叉积的z分量。

参数表

叉积来了哈~

向量积,数学中又称外积、叉积,物理中称矢积、叉乘,是一种在向量空间中向量的二元运算。与点积不同,它的运算结果是一个向量而不是一个标量。并且两个向量的叉积与这两个向量和垂直。

a x b就是a叉b(废话???)有时也用^这个符号。

向量积可以被定义为:

模长:(在这里θ表示两向量之间的夹角(共起点的前提下)(0°≤θ≤180°),它位于这两个矢量所定义的平面上.)

就像这样

方向:a向量与b向量的向量积的方向与这两个向量所在平面垂直,且遵守右手定则。(一个简单的确定满足“右手定则”的结果向量的方向的方法是这样的:若坐标系是满足右手定则的,当右手的四指从a以不超过180度的转角转向b时,竖起的大拇指指向是c的方向。)

也可以这样定义(等效):

代码语言:javascript
复制
向量积|c|=|a×b|=|a||b|sin<a,b>

即c的长度在数值上等于以a,b,夹角为θ组成的平行四边形的面积。

而c的方向垂直于a与b所决定的平面,c的指向按右手定则从a转向b来确定。

平时见到的各种积:

这里可以简单的总结一下

对于这样的东西,一个好的可视化解释,可以让你记忆犹新:

叉积的长度|a×b|可以解释成这两个叉乘向量a,b共起点时,所构成平行四边形的面积。据此有:混合积[abc]=(a×b)·c可以得到以a,b,c为棱的平行六面体的体积。

在数学里面,我们给定一种运算法则后会试图将它融入到现有的数学体系。所以这里给出代数规则:

1、反交换律:a×b=-b×a

2、加法的分配律:a×(b+c)=a×b+a×c。

3、与标量乘法兼容:(ra)×b=a×(rb)=r(a×b)。

4、不满足结合律,但满足雅可比恒等式:a×(b×c)+b×(c×a)+c×(a×b)=0。

5、分配律,线性性和雅可比恒等式别表明:具有向量加法和叉积的R3构成了一个李代数。

6、两个非零向量a和b平行,当且仅当a×b=0。

是不是混进来一个雅可比???

雅可比恒等式是椭圆函数理论中的一个著名恒等式。雅可比恒等式就是下列等式:

代码语言:javascript
复制
[X,[Y,Z]]+[Y,[Z,X]]+[Z,[X,Y]]=0

满足雅可比恒等式的代数结构不一定满足反交换律。

上面的椭圆理论什么的是复变函数里面的,我只是一个土狗,不知道怎么说。

OKOK,叉积又不得不提拉格朗日公式:

代码语言:javascript
复制
(a×b)×c=b(a·c)-a(b·c)


a×(b×c)=b(a·c)-c(a·b)

证明过程

可以简单地记成“BAC-CAB”。这个公式在物理上简化向量运算非常有效。等等???你是不是不知道上面说的是什么。

他叫:二重向量叉乘化简公式。

说了这么多的字,可能没有一张图来的快

哥俩好?不是~是叉积的方向啦!

伸出右手,将大拇指指向a,将食指指向b,中指自然弯曲,并使中指同时垂直于食指和拇指,那么此时中指所指的方向就是a×b的方向。

从这个右手定则,我们可以发现,两个向量的叉积同时垂直这两个向量,并且:

代码语言:javascript
复制
a×b=-b×a

也就是确确实实的不支持交换律。

不过既然物理这么多了,也不怕再多点:

在力的作用线的延长线或反向延长线经过原点时,力矩为零。力矩在物理学里是指作用力使物体绕着转动轴或支点转动的趋向。力矩的单位是牛顿米。力矩的概念,起源于阿基米德对杠杆的研究。转动力矩又称为转矩或扭矩。力矩能够使物体改变其旋转运动。推挤或拖拉涉及到作用力 ,而扭转则涉及到力矩。力矩等于径向矢量与作用力的叉积。

为什么说力矩,因为最后有叉积。

这是我们的判断是否处于平衡状态

因为要叉积计算,注意两个向量的个数

这里也注意内在,位置是矢量,分力也是矢量,所以可以计算。求完以后将值sum然后小于一个小数,证明平衡。

这里简单的分析一下:

叉乘的模,等于两个向量的模的乘积乘以sinθ。θ是两个向量的夹角,如果两个向量的模不为0,那么sinθ要等于0,也就是夹角是0°或者180°,那么两个向量平行。

就是这些位置

我们再分析,2是最稳定的状态,那么它的分力和原点叉积和越小越稳定

这篇文章有点长了,感激你看到这里,叉积会算了吗?靓仔

代码语言:javascript
复制
https://www.cjavapy.com/article/836/
代码语言:javascript
复制
https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E6%AD%A3%E4%BA%A4%E5%88%86%E8%A7%A3&step_word=&hs=0&pn=1&spn=0&di=7108135681917976577&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=2&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=-1&cs=3595727015%2C3579728177&os=2705367599%2C2217382394&simid=3595727015%2C3579728177&adpicid=0&lpn=0&ln=1689&fr=&fmq=1657284970980_R&fm=detail&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=https%3A%2F%2Fgimg2.baidu.com%2Fimage_search%2Fsrc%3Dhttp%3A%2F%2Fwww.mianfeiwendang.com%2Fpic%2F08b993253d89b4df69d7e10c2455220b34474ac8%2F4-810-jpg_6-1080-0-0-1080.jpg%26refer%3Dhttp%3A%2F%2Fwww.mianfeiwendang.com%26app%3D2002%26size%3Df9999%2C10000%26q%3Da80%26n%3D0%26g%3D0n%26fmt%3Dauto%3Fsec%3D1659876975%26t%3Df160f81f802d0105fbb4ba78cbb49099&fromurl=ippr_z2C%24qAzdH3FAzdH3Fooo_z%26e3B4twgujtojg1wg2_z%26e3Bv54AzdH3F15vAzdH3Fabkllndcn1blk91uml10j8avd9ccddakn9909wvbAzdH3F9&gsm=2&rpstart=0&rpnum=0&islist=&querylist=&nojc=undefined&dyTabStr=MCwyLDMsNCwxLDUsNiw3LDgsOQ%3D%3D
代码语言:javascript
复制
https://image.baidu.com/search/detail?ct=503316480&z=0&ipn=d&word=%E6%AD%A3%E4%BA%A4%E5%88%86%E8%A7%A3&step_word=&hs=0&pn=3&spn=0&di=7108135681917976577&pi=0&rn=1&tn=baiduimagedetail&is=0%2C0&istype=2&ie=utf-8&oe=utf-8&in=&cl=2&lm=-1&st=-1&cs=1533500698%2C1427880054&os=1118744028%2C2825317875&simid=57126388%2C578392117&adpicid=0&lpn=0&ln=1689&fr=&fmq=1657284970980_R&fm=detail&ic=undefined&s=undefined&hd=undefined&latest=undefined&copyright=undefined&se=&sme=&tab=0&width=undefined&height=undefined&face=undefined&ist=&jit=&cg=&bdtype=0&oriquery=&objurl=https%3A%2F%2Fss3.baidu.com%2F9fo3dSag_xI4khGko9WTAnF6hhy%2Fzhidao%2Fpic%2Fitem%2Fd043ad4bd11373f07083af7ca30f4bfbfaed0491.jpg&fromurl=ippr_z2C%24qAzdH3FAzdH3Fzit1w5_z%26e3Bkwt17_z%26e3Bv54AzdH3Fq7jfpt5gAzdH3Fccm8mn80bcbd0bd80d_z%26e3Bip4s&gsm=4&rpstart=0&rpnum=0&islist=&querylist=&nojc=undefined&dyTabStr=MCwyLDMsNCwxLDUsNiw3LDgsOQ%3D%3D
代码语言:javascript
复制
https://www.bilibili.com/read/cv1918173/
代码语言:javascript
复制
https://baike.baidu.com/item/%E6%A4%AD%E5%9C%86%E5%87%BD%E6%95%B0/7529829
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档