why matlab take a lot of time in the symbolic calculation
1 view (last 30 days)
Show older comments
merwan behar
on 4 Jul 2021
Commented: merwan behar
on 5 Jul 2021
I wrote a code to calculate the fundamental frequencies of a piezoelectric nanotube, I used the state space analytical method to solve my differential equation which based on the computation of the exponential of a matrix but the problem takes a lot for the execution and I did not know for I will be very happy if you clarify the problem for me
the code is
clear all
clc
%introduire des variable
h=1e-9;
L=10e-9;
C11=132e9;
e31=-4.1;
mu=0;
E11=5.841e-9;
E33=7.124e-9;
ro=7500;
B=(pi/h);
r1=49.5e-9;
r2=50.5e-9;
A=pi*((r2^2)-(r1^2));
I=pi*(((r2^4)/4)-((r1^4/4)));
fun1=@(x,r) e31.*(r.^2).*sin(x).*B.*sin(B.*r.*sin(x));
fun2=@(x,r) E11.*r.*(cos(B.*r.*sin(x))).^2;
fun3=@(x,r) E33.*(B^2).*r.*(sin(B.*r.*sin(x))).^2;
F31 = integral2(fun1,0,2*pi,49.5,50.5);
X11 = integral2(fun2,0,2*pi,49.5,50.5);
X33 = integral2(fun3,15,2*pi,49.5,50.5);
NE=0;
%introduire la matrice A
syms w
p1=((ro*A*w^2)/(C11*I));
p2=((-(mu^2*ro*A*w^2)+(F31^2/X11))/(C11*I));
p3=((F31*X33)/(X11*C11*I));
p4=(F31/X11);
p5=(X33/X11);
a=[0 1 0 0 0 0;0 0 1 0 0 0;0 0 0 1 0 0;...
(p1) 0 (p2) 0 (p3) 0;0 0 0 0 0 1;0 0 (p4) 0 (p5) 0];
[V,D]=eig(a);
H=eye(6);
M=V*diag(exp(diag(D*L)))/V;
%condition aux limite simplement appuyé
l1=H(1,:);
l3=H(3,:);
l5=H(5,:);
m1=M(1,:);
m3=M(3,:);
m5=M(5,:);
%la matrice final
K=[l1;l3;l5;m1;m3;m5];
DA=det(K);
%fréquence fondamental
for n = 1:5
F = vpasolve(DA,w,[0.4 3],'Random',true)
end
0 Comments
Accepted Answer
Sulaymon Eshkabilov
on 4 Jul 2021
The problem with integral2 calculation part not with vpasolve(). You need to check the limit values for xmin, xmax, ymin, ymax in interal2(). This below given syntax controls tolerances and finds the solutions, BUT
...
F31 = integral2(fun1,0,2*pi,49.5,50.5, 'Method','iterated','AbsTol',0,'RelTol',1e-10); % Solves the problem partially
X11 = integral2(fun2,0,2*pi,49.5,50.5, 'Method','iterated','AbsTol',0,'RelTol',1e-10);
X33 = integral2(fun3,15,2*pi,49.5,50.5, 'Method','iterated','AbsTol',0,'RelTol',1e-10);
NE=0;
As it is given, the polynomial coeffs p2, p3 .. p5 = nan.
Therefore, it does not produce any solutions.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!