• 专业方向系列-00-Python与有限元初探


    案例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. ]]
  • 相关阅读:
    前端 CSS
    前端 HTML
    前端 JavaScript 初识
    网络编程——线程池
    网络编程——同一进程中的队列(多线程)
    网络编程——进程间的共享内存
    vue实现前端简易版模糊查询
    封装axios请求拦截器
    关于node中 mysql Client does not support authentication protocol requested by server; consider upgrading MySQL client 解决方法
    封装一个时间方法
  • 原文地址:https://www.cnblogs.com/brightyuxl/p/9831765.html
Copyright © 2020-2023  润新知