solve equation with symbolic variables
19 views (last 30 days)
Show older comments
Hello, I was trying to solve the equation with 'c' is a variable, and trying to get 'c' equating equation to zero. But I am getting error. Can anyone help with this please:
syms c;
c0 = 53.6;
Re = 102.5; % external radious of column
D = 2*Re;
cov = 20;
Rc = Re - cov;
ec0 = 0.00076+((0.626*fc0-4.33)*10^-7)^0.5;
Ec = 5000*sqrt(fc0);
beta = Ec/fc0-1/ec0; %relation between Ec and secant of Ec
fyl = 640;
Esl = 2e5;
b = 0.01;
ey = fyl/Esl;
dsl = 12; %long rebar dia
fyt = 437;
Est = 2e5;
eults = 0.1;
dst = 10;
Ef = 4.5e4;
fultf = 884.6;
eff = 0.67;
eultf = eff*fultf/Ef;
s= 60;
tf = 1.58;
eccu = 0.1;
nbars = 6;
Asl =0.25*pi*dsl^2;
ey= fyl/Esl;
ecu = 0.003;
d_1= cov + dst+dsl/2;
d_2 = 102.5;
d_3 = 169;
es3 = ey;
% c = d_3/(ecu+es3);
beta1 = 0.667;
a = @(c) beta1*c;
theta = @(c) acos((0.5*D-a(c))/0.5*D);
A_comp = @(c) (D^2)*(((theta(c)*3.14/180)-sin(theta(c))*cos(theta(c)))/4);
C_c = @(c) 0.85*fc0*A_comp(c);
y_bar = @(c) (D^3)*(sin(theta(c)))^3/(12*A_comp(c));
fs3 = fyl;
Fs3 = -fs3*2*Asl;
es2 = @(c) (c-d_2)*ecu/c ;
Fs2 = @(c) es2*Esl*2*Asl;
es1 = @(c) (c-d_1)*ecu/c;
Fs1 = @(c) es1*Esl*2*Asl;
F (c) = C_c(c)+Fs1(c)+Fs2(c)+Fs3;
eq1 = F(c) == 0;
c_solve = fsolve(eq1,c)
0 Comments
Answers (2)
Torsten
on 21 Dec 2022
c0 = 53.6;
Re = 102.5; % external radious of column
D = 2*Re;
cov = 20;
Rc = Re - cov;
fc0 = 10;
ec0 = 0.00076+((0.626*fc0-4.33)*10^-7)^0.5;
Ec = 5000*sqrt(fc0);
beta = Ec/fc0-1/ec0; %relation between Ec and secant of Ec
fyl = 640;
Esl = 2e5;
b = 0.01;
ey = fyl/Esl;
dsl = 12; %long rebar dia
fyt = 437;
Est = 2e5;
eults = 0.1;
dst = 10;
Ef = 4.5e4;
fultf = 884.6;
eff = 0.67;
eultf = eff*fultf/Ef;
s= 60;
tf = 1.58;
eccu = 0.1;
nbars = 6;
Asl =0.25*pi*dsl^2;
ey= fyl/Esl;
ecu = 0.003;
d_1= cov + dst+dsl/2;
d_2 = 102.5;
d_3 = 169;
es3 = ey;
% c = d_3/(ecu+es3);
beta1 = 0.667;
a = @(c) beta1*c;
theta = @(c) acos((0.5*D-a(c))/0.5*D);
A_comp = @(c) (D^2)*(((theta(c)*3.14/180)-sin(theta(c))*cos(theta(c)))/4);
C_c = @(c) 0.85*fc0*A_comp(c);
y_bar = @(c) (D^3)*(sin(theta(c)))^3/(12*A_comp(c));
fs3 = fyl;
Fs3 = -fs3*2*Asl;
es2 = @(c) (c-d_2)*ecu/c ;
Fs2 = @(c) es2(c)*Esl*2*Asl;
es1 = @(c) (c-d_1)*ecu/c;
Fs1 = @(c) es1(c)*Esl*2*Asl;
F = @(c)C_c(c)+Fs1(c)+Fs2(c)+Fs3;
c0 = 10.0;
c_solve = fsolve(F,c0)
0 Comments
Paul
on 21 Dec 2022
Hi Milan
With a mix of syms and anonymous functions and a call to fsolve using a symbolic equation, I wasn't sure if the desire was to solve the problem numericall or using symbolic stuff.
Here's the code using just symbolic math. One variable had to be defined, so I just made up a value.
syms c;
c0 = 53.6;
Re = 102.5; % external radious of column
D = 2*Re;
cov = 20;
Rc = Re - cov;
% pick a value for fc0
fc0 = 100;
ec0 = 0.00076+((0.626*fc0-4.33)*10^-7)^0.5;
Ec = 5000*sqrt(fc0);
beta = Ec/fc0-1/ec0; %relation between Ec and secant of Ec
fyl = 640;
Esl = 2e5;
b = 0.01;
ey = fyl/Esl;
dsl = 12; %long rebar dia
fyt = 437;
Est = 2e5;
eults = 0.1;
dst = 10;
Ef = 4.5e4;
fultf = 884.6;
eff = 0.67;
eultf = eff*fultf/Ef;
s= 60;
tf = 1.58;
eccu = 0.1;
nbars = 6;
Asl =0.25*pi*dsl^2;
ey= fyl/Esl;
ecu = 0.003;
d_1= cov + dst+dsl/2;
d_2 = 102.5;
d_3 = 169;
es3 = ey;
% c = d_3/(ecu+es3);
beta1 = 0.667;
a(c) = beta1*c;
theta(c) = acos((0.5*D-a(c))/0.5*D);
A_comp(c) = (D^2)*(((theta(c)*3.14/180)-sin(theta(c))*cos(theta(c)))/4);
C_c(c) = 0.85*fc0*A_comp(c);
y_bar(c) = (D^3)*(sin(theta(c)))^3/(12*A_comp(c));
fs3 = fyl;
Fs3 = -fs3*2*Asl;
es2 = (c-d_2)*ecu/c ;
Fs2(c) = es2*Esl*2*Asl;
es1 = (c-d_1)*ecu/c;
Fs1(c) = es1*Esl*2*Asl;
F(c) = C_c(c)+Fs1(c)+Fs2(c)+Fs3;
eq1 = F(c) == 0
%c_solve = fsolve(eq1,c)
c_solve = solve(eq1,c)
0 Comments
See Also
Categories
Find more on Equation Solving 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!