Answer:
import numpy as np
import time
def matrixMul(m1,m2):
if m1.shape[1] == m2.shape[0]:
t1 = time.time()
r1 = np.zeros((m1.shape[0],m2.shape[1]))
for i in range(m1.shape[0]):
for j in range(m2.shape[1]):
r1[i,j] = (m1[i]*m2.transpose()[j]).sum()
t2 = time.time()
print("Native implementation: ",r1)
print("Time: ",t2-t1)
t1 = time.time()
r2 = m1.dot(m2)
t2 = time.time()
print("\nEfficient implementation: ",r2)
print("Time: ",t2-t1)
else:
print("Wrong dimensions!")
Explanation:
We define a function (matrixMul) that receive two arrays representing the two matrices to be multiplied, then we verify is the dimensions are appropriated for matrix multiplication if so we proceed with the native implementation consisting of two for-loops and prints the result of the operation and the execution time, then we proceed with the efficient implementation using .dot method then we return the result with the operation time. As you can see from the image the execution time is appreciable just for large matrices, in such a case the execution time of the efficient implementation can be 1000 times faster than the native implementation.
Answer:
40 ft
Explanation:
Assuming no loss of energy in the system of pulleys, the work done is the same whether you move the load directly or through the pulleys.
W = Fd . . . . . . . . work is the product of force and distance
F(10 ft) = (0.25F)(d) . . . . . where d is the distance we want to find
d = 10F/(0.25F) = 40
The rope will need to move 40 feet.
Answer:
1. Cast iron or aluminum
2. aluminum (first blank) iron(second blank)
3. aluminum
4. dry sleeve
5. Wet sleeve
6. matching operation that cuts a series of holes through the block for crankshaft bearing