当前位置:编程学习 > 网站相关 >>

Coding the Matrix Week 3 The Matrix 矩阵

  本周共有三次作业。所花费的时间为一天左右,还算可以,需要注意的是考虑一些特殊情况,写出能够通用的程序,这就行了。

  体会
  set()和{}结果相同,可以通用,可以采取后者。

[python]

>>> type({}) 
<class 'dict'> 
>>> type(set()) 
<class 'set'> 
>>> type(dict()) 
<class 'dict'> 
>>> {}==set() 
False 
>>> {}==dict() 
True 

>>> type({})
<class 'dict'>
>>> type(set())
<class 'set'>
>>> type(dict())
<class 'dict'>
>>> {}==set()
False
>>> {}==dict()
True  作业1 hw3

  这一节讲的是矩阵的运算。值得注意的是左乘和右乘稀疏矩阵的意义,和矩阵求逆的方法和线性方程组的通解。

  左乘矩阵,对于这个稀疏矩阵的任意点(i,j),相当于把矩阵第j行加到结果的i行。右乘矩阵,对于点(i,j),相当于把矩阵第i列加到结果的j列。用来计算包含稀疏矩阵的乘法十分方便。

  代码如下

[python]

# version code 893  
# Please fill out this stencil and submit using the provided submission script.  
 
from mat import Mat 
from vec import Vec 
from matutil import * 
 
 
 
## Problem 1  
# Please represent your solutions as lists.  
vector_matrix_product_1 = [1,0] 
vector_matrix_product_2 = [0,4.44] 
vector_matrix_product_3 = [14,20,26] 
 
 
 
## Problem 2  
# Represent your solution as a list of rows.  
# For example, the identity matrix would be [[1,0],[0,1]].  
 
M_swap_two_vector = [[0,1],[1,0]] 
 
 
 
## Problem 3  
three_by_three_matrix = [[1,0,1],[0,1,0],[1,0,0]] # Represent with a list of rows lists.  
 
 
 
## Problem 4  
multiplied_matrix = [[2,0,0],[0,4,0],[0,0,3]] # Represent with a list of row lists.  
 
 
 
## Problem 5  
# Please enter a boolean representing if the multiplication is valid.  
# If it is not valid, please enter None for the dimensions.  
 
part_1_valid = False # True or False  
part_1_number_rows = None # Integer or None  
part_1_number_cols = None # Integer or None  
 
part_2_valid = False 
part_2_number_rows = None 
part_2_number_cols = None 
 
part_3_valid = True 
part_3_number_rows = 1 
part_3_number_cols = 2 
 
part_4_valid = True 
part_4_number_rows = 2 
part_4_number_cols = 1 
 
part_5_valid = False 
part_5_number_rows = None 
part_5_number_cols = None 
 
part_6_valid = True 
part_6_number_rows = 1 
part_6_number_cols = 1 
 
part_7_valid = True 
part_7_number_rows = 3 
part_7_number_cols = 3 
 
 
 
 
## Problem 6  
# Please represent your answer as a list of row lists.  
 
small_mat_mult_1 = [[8,13],[8,14]] 
small_mat_mult_2 = [[24,11,4],[1,3,0]] 
small_mat_mult_3 = [[3,13]] 
small_mat_mult_4 = [[14]] 
small_mat_mult_5 = [[1,2,3],[2,4,6],[3,6,9]] 
small_mat_mult_6 = [[-2,4],[1,1],[1,-3]] 
 
 
 
## Problem 7  
# Please represent your solution as a list of row lists.  
 
part_1_AB = [[5,2,0,1],[2,1,-4,6],[2,3,0,-4],[-2,3,4,0]] 
part_1_BA = [[1,-4,6,2],[3,0,-4,2],[3,4,0,-2],[2,0,1,5]] 
 
part_2_AB = [[5,1,0,2],[2,6,-4,1],[2,-4,0,3],[-2,0,4,3]] 
part_2_BA = [[3,4,0,-2],[3,0,-4,2],[1,-4,6,2],[2,0,1,5]] 
 
part_3_AB = [[1,0,5,2],[6,-4,2,1],[-4,0,2,3],[0,4,-2,3]] 
part_3_BA = [[3,4,0,-2],[1,-4,6,2],[2,0,1,5],[3,0,-4,2]] 
 
 
 
## Problem 8  
# Please represent your answer as a list of row lists.  
# Please represent the variables a and b as strings.  
# Represent multiplication of the variables, make them one string.  
# For example, the sum of 'a' and 'b' would be 'a+b'.  
 
matrix_matrix_mult_1    = [[1,'a+b'],[0,1]] 
matrix_matrix_mult_2_A2 = [[1,2],[0,1]] 
matrix_matrix_mult_2_A3 = [[1,3],[0,1]] 
 
# Use the string 'n' to represent variable the n in A^n.  
matrix_matrix_mult_2_An = [[1,'n'],[0,1]] 
 
 
 
## Problem 9  
# Please represent your answer as a list of row lists.  
 
your_answer_a_AB = [[0,0,2,0],[0,0,5,0],[0,0,4,0],[0,0,6,0]] 
your_answer_a_BA = [[0,0,0,0],[4,4,4,0],[0,0,0,0],[0,0,0,0]] 
 
your_answer_b_AB = [[0,2,-1,0],[0,5,3,0],[0,4,0,0],[0,6,-5,0]] 
your_answer_b_BA = [[0,0,0,0],[1,5,-2,3],[0,0,0,0],[4,4,4,0]] 
 
your_answer_c_AB = [[6,0,0,0],[6,0,0,0],[8,0,0,0],[5,0,0,0]] 
your_answer_c_BA = [[4,2,1,-1],[4,2,1,-1],[0,0,0,0],[0,0,0,0]] 
 
your_answer_d_AB = [[0,3,0,4],[0,4,0,1],[0,4,0,4],[0,-6,0,-1]] 
your_answer_d_BA = [[0,11,0,-2],[0,0,0,0],[0,0,0,0],[1,5,-2,3]] 
 
your_answer_e_AB = [[0,3,0,8],[0,-9,0,2],[0,0,0,8],[0,15,0,-2]] 
your_answer_e_BA = [[-2,12,4,-10],[0,0,0,0],[0,0,0,0],[-3,-15,6,-9]] 
 
your_answer_f_AB = [[-4,4,2,-3],[-1,10,-4,9],[-4,8,8,0],[1,12,4,-15]] 
your_answer_f_BA = [[-4,-2,-1,1],[2,10,-4,6],[8,8,8,0],[-3,18,6,-15]] 
 
 
 
## Problem 10  
column_row_vector_multiplication1 = Vec({0, 1}, {0:13,1:20}) 
 
column_row_vector_multiplication2 = Vec({0, 1, 2}, {0:24,1:11,2:4}) 
 
column_row_vector_multiplication3 = Vec({0, 1, 2, 3}, {0:4,1:8,2:11,3:3}) 
 
column_row_vector_multiplication4 = Vec({0,1}, {0:30,1:16}) 
 
column_row_vector_multiplication5 = Vec({0, 1, 2}, {0:-3,1:1,2:9}) 
 
 
 
## Problem 11  
def lin_comb_mat_vec_mult(M, v): 
    assert(M.D[1] == v.D) 
    nm=mat2coldict(M) 
    return sum([v[x]*nm[x] for x in M.D[1]]) 
 
 
 
## Problem 12  
def lin_comb_vec_mat_mult(v, M): 
    assert(v.D == M.D[0]) 
    nm=mat2rowdict(M) 
    return sum([v[x]*nm[x] for x in M.D[0]]) 
 
 
 
## Problem 13  
def dot_product_mat_vec_mult(M, v): 
    assert(M.D[1] == v.D) 
    nm=mat2rowdict(M) 
    return Vec(M.D[0],{x:v*nm[x] for x in M.D[0]}) 
 
 
 
## Problem 14  
def dot_product_vec_mat_mult(v, M): 
    assert(v.D == M.D[0]) 
    nm=mat2coldict(M)&n

补充:Web开发 , Python ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,