solve equation with symbolic variables
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaires
Réponses (2)
Torsten
le 21 Déc 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 commentaires
Paul
le 21 Déc 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 commentaires
Voir également
Catégories
En savoir plus sur Equation Solving dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
