上机实验

  1. 请按照如下要求分别创建 ndarray 数组:

    1. 使用 arange 函数创建一个形如 [0 4 8 ... 20] 的数组;

    2. 使用 reshape 函数将以上数组转化为如下二维数组

      [[ 0  4  8]
       [12 16 20]]
      
    3. 使用 ones_like 函数创建一个和以上二维数组的维度(shape)和数据类型(dtype)相同,但所有元素值均为 1 的二维数组;

    4. 使用 full 函数创建一个维度(shape)为 (3, 5),且每个元素的值均为 3.14,且数据类型(dtype)为 numpy.float64 的二维数组;

    5. 使用 linspace 函数创建一个包含 13 个元组,值的范围为 10.0 至 20.0 之间,各个元素值间隔均匀的一维数组;

  2. 在力学中,一个应力张量(它是一个实对称二阶张量)可表示为:

    $$ \boldsymbol{\sigma}= \begin{pmatrix} \sigma_{xx} & \sigma_{xy} & \sigma_{xz} \\ \sigma_{yx} & \sigma_{yy} & \sigma_{yz} \\ \sigma_{zx} & \sigma_{zy} & \sigma_{zz} \end{pmatrix} $$

    已知一个用 ndarray 数组表示的应力张量:

    sigma = np.array([(23.1, 78.6, 33.8), (78.6, 59.3, 18.7), (33.8, 18.7, 67.4)])
    

    请执行操作:

    1. 将改应力张量放大 2 倍(所有元素值乘以 2);

    2. 使用 trace 函数计算该应力张量的第一不变量(也称迹,即对角线元素之和):

      $$I_1 = \sigma_{xx} + \sigma_{yy} + \sigma_{zz}$$
    3. 直接使用数组元组索引计算该应力张量的第二不变量:

      $$I_2 = \sigma_{xx}\sigma_{yy} + \sigma_{yy}\sigma_{zz} + \sigma_{zz}\sigma_{xx} - \sigma_{xy}^2 - \sigma_{yz}^2 - \sigma_{zx}^2$$
    4. 如果有一个平面,其法向量 $\boldsymbol{n}$ 与三个坐标轴的夹角均为 45°,则其法向方向可表示为:

      n = np.full((3, 1), 1.0 / np.sqrt(2))
      

      根据力学原理,该平面上的应力向量 $\boldsymbol{f}$ 的计算公式为:

      $$\boldsymbol{f}=\boldsymbol{\sigma n}$$

      请计算该应力向量 $\boldsymbol{f}$ 。

输入和输出SciPy:科学计算的基础算法包