i am trying to get the value of u_E using the equation, but matlab says it has error in that line which has the equation.
1 view (last 30 days)
Show older comments
%creat symbol for axial force, length, thickness, displacemnent and width
syms f l t d w
%define governing equations for parameter
stress = f./(t*w)
strain = d./l
%measurement resolution and uncertainty
u_f = (f./100)./2./12;
u_l = 1/32/12/2;
u_t = 0.001/2/12;
u_d = (d./100)./2./12;
u_w = 0.001/12/2;
%zeroth order uncertainty
E = (f.*l)./(d.*w*t);
u_E = sqrt((diff(E,u_f).*u_f).^2 + (diff(E,u_d).*u_d).^2 + ...
(diff(E,u_l).*u_l).^2+(diff(E,u_t).*u_t).^2+(diff(E,u_w).*u_w).^2)
%define symbolic data
T = readtable('Intro_specimen 2.txt');
f = T{:,2};
l = 6.125;
t = 0.057;
d = (T{:,1})./12;
w = 0.414;
%substitute value into equation
stress = eval(stress);
strain = eval(strain);
%plot with errorbar
plot(strain,stress)
hold on
title('strain vs. stress')
xlabel('strain (ft^3)')
ylabel('stress (slug/ft^3)')
0 Comments
Answers (2)
Paul
on 10 Sep 2022
Hi kaixi
%creat symbol for axial force, length, thickness, displacemnent and width
syms f l t d w
%define governing equations for parameter
stress = f./(t*w);
strain = d./l;
%measurement resolution and uncertainty
u_f = (f./100)./2./12;
u_l = 1/32/12/2;
u_t = 0.001/2/12;
u_d = (d./100)./2./12;
u_w = 0.001/12/2;
%zeroth order uncertainty
E = (f.*l)./(d.*w*t);
u_E = sqrt((diff(E,u_f).*u_f).^2 + (diff(E,u_d).*u_d).^2 + ...
(diff(E,u_l).*u_l).^2+(diff(E,u_t).*u_t).^2+(diff(E,u_w).*u_w).^2)
In the Symbolic Math Toolbox, the function diff is used to diffentiate an expression with respect to a variable. So
diff(E,u_f)
means take the derivative of E wrt u_f, but u_f is an expression, not a variable. Similarly, u_l is a number, not a variable.
What exactly is the math that we're trying to implement?
2 Comments
Torsten
on 10 Sep 2022
f is the force and d is the displacement, and they are a set of data from the txt file.
And why - if they are data from a txt file - do you define them as syms ?
Walter Roberson
on 10 Sep 2022
As discussed at https://www.mathworks.com/matlabcentral/answers/1802585-not-able-to-evaluate-the-value-for-an-equation-using-the-data-from-a-table-table-is-three-columns-d#comment_2357215 it is a mistake to use eval() with a symbolic expression.
0 Comments
See Also
Categories
Find more on Stress and Strain in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!