Young modulus 𝐸= Stress/Strain
If a graph of applied load, F (y-axis) is drawn against extension, x (x-axis) the gradient is 𝐹/𝑥 and so:
$$ 𝐸 =gradient \times \frac{𝑙}{𝐴}$$The original length $l$ and the cross sectional area of the wire $A$ can be measured, hence E can be determined.
Hang two identical wires from a beam and attach a scale to the first wire and a small weight to keep it straight. Also put a small weight on the second wire to straighten it and a Vernier scale linking with the scale on the comparison wire. Measure the original length, l, of the test wire and its diameter at various points along its length. Use this to calculate the mean cross-sectional area A. Then place a load of 5N on the test wire and find the extension, x. Repeat this in 5N steps up to at least 50N. Plot a graph of load (y-axis) against extension (x-axis) and calculate the gradient. Use this to find a value for the Young modulus.
# Importing the necessary libraries
from matplotlib import pyplot as plt
import numpy as np
#from prettytable import PrettyTable
# Wire original length = 2.43 m
# Wire mean diameter = 0.38 mm
# Preparing the data to be computed and plotted
dt = np.array([
[0.0, 0.0],
[4.9, 0.52],
[9.8, 0.80],
[14.7, 1.35],
[19.6, 1.83],
[24.5, 2.18]
])
# Preparing X and y data from the given data
x = dt[:, 0].reshape(dt.shape[0], 1)
X = np.append(x, np.ones((dt.shape[0], 1)), axis=1)
y = dt[:, 1].reshape(dt.shape[0], 1)
# Calculating the parameters using the least square method
theta = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
print(f'The parameters of the line: {theta}')
# Now, calculating the y-axis values against x-values according to
# the parameters theta0 and theta1
y_line = X.dot(theta)
# Plotting the data points and the best fit line
plt.scatter(x, y)
plt.plot(x, y_line, 'r')
plt.title('Best fit line using regression method')
plt.xlabel('Load /N')
plt.ylabel('Extention /mm')
fig, ax = plt.subplots()
table = ax.table(cellText=dt, loc='center', colLabels=('Load /N','Extention /mm'))
table.set_fontsize(14)
table.scale(1,4)
ax.axis('off')
plt.show()
The parameters of the line: [[0.0896793] [0.0147619]]
In comparison, our calculated resistivity is 0.13 Ohm/m vs a databook value of 0.105 Ohm/m This is well within the expected variance of an A-level practical.