필터 지우기
필터 지우기

why matlab take a lot of time in the symbolic calculation

조회 수: 1 (최근 30일)
merwan behar
merwan behar 2021년 7월 4일
댓글: merwan behar 2021년 7월 5일
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

채택된 답변

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2021년 7월 4일
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.
  댓글 수: 1
merwan behar
merwan behar 2021년 7월 5일
yes I made a mistake in the meantime it's [49.9e-9 50.5e-9]
I made his modifications
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.5e-9,50.5e-9,'method','iterated');
X11 = integral2(fun2,0,2*pi,49.5e-9,50.5e-9,'method','iterated');
X33 = integral2(fun3,15,2*pi,49.5e-9,50.5e-9,'method','iterated');

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Numeric Solvers에 대해 자세히 알아보기

제품


릴리스

R14SP1

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by