Why matlab doesn't execute my int() sym hiperbolic function?
이전 댓글 표시
I need to integrate the terms of a matrix that are in hyperbolic functions, but matlab gives me the result as a function of the integral. In other words, it is not integrating the function. When I use trigonometric functions (sin, cos..), it integrates normally. Any suggestion?
The first case that doesn't work:
syms k_theta k_v GA_c L eta Omega xi a b alpha x EI real
f=(eta^sym(2)*(a^2 + b^2)^2*(b^2*xi*cos(a*(2*L - x))*cosh(b*x) - a^2*xi*cosh(b*(2*L - x))*cos(a*x) + a^2*xi*cos(a*x)*cosh(b*x) - b^2*xi*cos(a*x)*cosh(b*x) + L^2*Omega*a^4*cos(a*x)*cosh(b*x) + L^2*Omega*b^4*cos(a*x)*cosh(b*x) + a*b*xi*sin(a*(2*L - x))*sinh(b*x) + a*b*xi*sinh(b*(2*L - x))*sin(a*x) - L^2*Omega*a^4*cosh(b*(2*L - x))*cos(a*x) - L^2*Omega*b^4*cos(a*(2*L - x))*cosh(b*x) + 2*a*b*xi*sin(a*x)*sinh(b*x) + 2*L^2*Omega*a^2*b^2*cos(a*x)*cosh(b*x) - L^2*Omega*a*b^3*sin(a*(2*L - x))*sinh(b*x) + L^2*Omega*a*b^3*sinh(b*(2*L - x))*sin(a*x) - L^2*Omega*a^3*b*sin(a*(2*L - x))*sinh(b*x) + L^2*Omega*a^3*b*sinh(b*(2*L - x))*sin(a*x) - L^2*Omega*a^2*b^2*cos(a*(2*L - x))*cosh(b*x) - L^2*Omega*a^2*b^2*cosh(b*(2*L - x))*cos(a*x))^2)/(a^2*xi^sym(2) + b^2*xi^sym(2) - b^2*cos(2*L*a)*(Omega*L^2*a^2 + Omega*L^2*b^2 - xi)^2 + L^4*Omega^sym(2)*a^6 + L^4*Omega^sym(2)*b^6 - a^2*cosh(2*L*b)*(Omega*L^2*a^2 + Omega*L^2*b^2 + xi)^2 + 3*L^4*Omega^sym(2)*a^2*b^4 + 3*L^4*Omega^sym(2)*a^4*b^2 + 2*L^2*Omega*a^4*xi - 2*L^2*Omega*b^4*xi)^2;
K_b=sym(zeros(1,1));
K_b(1,1)=int(f,x,0,L)
The second case that does work:
syms k_theta k_v GA_c L eta Omega xi r_1 r_2 alpha x EI real
f=(EI*(eta*r_1^2*r_2^2*sin(L*r_1)*sin(L*r_2)*cos(r_1*x)*(Omega*L^2*r_1^2 + xi) - eta*r_1^3*r_2*cos(r_1*x)*(Omega*L^2*r_2^2 + xi) - eta*r_1^2*r_2^2*cos(L*r_1)*sin(L*r_2)*sin(r_1*x)*(Omega*L^2*r_1^2 + xi) - eta*r_1*r_2^3*cos(r_2*x)*(Omega*L^2*r_1^2 + xi) - eta*r_1^2*r_2^2*cos(L*r_2)*sin(L*r_1)*sin(r_2*x)*(Omega*L^2*r_2^2 + xi) + eta*r_1^2*r_2^2*sin(L*r_1)*sin(L*r_2)*cos(r_2*x)*(Omega*L^2*r_2^2 + xi) + eta*r_1*r_2^3*cos(L*r_1)*cos(L*r_2)*cos(r_2*x)*(Omega*L^2*r_1^2 + xi) + eta*r_1^3*r_2*cos(L*r_1)*cos(L*r_2)*cos(r_1*x)*(Omega*L^2*r_2^2 + xi) + eta*r_1*r_2^3*cos(L*r_1)*sin(L*r_2)*sin(r_2*x)*(Omega*L^2*r_1^2 + xi) + eta*r_1^3*r_2*cos(L*r_2)*sin(L*r_1)*sin(r_1*x)*(Omega*L^2*r_2^2 + xi))^2)/(2*r_1*r_2*xi^sym(2) - sin(L*r_1)*sin(L*r_2)*(L^4*Omega^sym(2)*r_1^4*r_2^2 + L^4*Omega^sym(2)*r_1^2*r_2^4 + 4*L^2*Omega*r_1^2*r_2^2*xi + r_1^2*xi^sym(2) + r_2^2*xi^sym(2)) + 2*L^4*Omega^sym(2)*r_1^3*r_2^3 + 2*L^2*Omega*r_1*r_2^3*xi + 2*L^2*Omega*r_1^3*r_2*xi - 2*r_1*r_2*cos(L*r_1)*cos(L*r_2)*(Omega*L^2*r_1^2 + xi)*(Omega*L^2*r_2^2 + xi))^2;
K_b=sym(zeros(1,1));
K_b(1,1)=int(f,x,0,L)
I understand that "f" are differents in both cases, but the script that generates each "f" is the same and I can't understand why matlab doesn't execute the first one.
Thanks in advance.
댓글 수: 1
Walter Roberson
2023년 11월 17일
MATLAB does not seem to be able to integrate this.
Maple is able to integrate it. After simplification of the long result it gives, the result becomes
cg = (-2 * a * (L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 - xi) * (b ^ 2) * ((L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 + xi) * L * (a ^ 2) * b * cosh((2 * L * b)) + (-(L ^ 2 * Omega * a ^ 4) / 2 + ((-3 * L ^ 2 * Omega * b ^ 2 + xi) * a ^ 2) / 2 - (b ^ 2 * (L ^ 2 * Omega * b ^ 2 + xi))) * sinh((2 * L * b)) / 2 - ((L ^ 2 * Omega * a ^ 4 + (2 * L ^ 2 * Omega * b ^ 2 + 3 * xi) * a ^ 2 + b ^ 2 * (L ^ 2 * Omega * b ^ 2 - xi)) * b * L) / 2) * cos((2 * L * a)) + (((L ^ 2 * Omega * a ^ 4) + (3 / 2 * (L ^ 2) * Omega * (b ^ 2) - xi) * (a ^ 2) + (b ^ 2 * (L ^ 2 * Omega * b ^ 2 + xi)) / 2) * sin((2 * L * a)) + (a * (L ^ 2 * Omega * a ^ 4 + (2 * L ^ 2 * Omega * b ^ 2 + xi) * a ^ 2 + b ^ 2 * (L ^ 2 * Omega * b ^ 2 - 3 * xi)) * L)) * (a ^ 2) * (L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 + xi) * b * cosh((2 * L * b)) - a * (L * a * (b ^ 2) * (a - b) * (a + b) * (L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 - xi) * (L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 + xi) * sin((2 * L * a)) - (L ^ 4 * Omega ^ 2 * a ^ 8) / 2 - (L ^ 2 * Omega * (L ^ 2 * Omega * b ^ 2 + 2 * xi) * a ^ 6) / 2 + (3 / 2 * (L ^ 4) * (b ^ 4) * (Omega ^ 2) - (2 * L ^ 2 * b ^ 2 * xi * Omega) - (xi ^ 2) / 2 * (a ^ 4) + (5 / 2 * (L ^ 4) * (Omega ^ 2) * (b ^ 6) - (L ^ 2 * Omega * b ^ 4 * xi) + (b ^ 2 * xi ^ 2) / 2) * (a ^ 2) + (L ^ 4 * Omega ^ 2 * b ^ 8) - (b ^ 4 * xi ^ 2)) * sinh((2 * L * b)) - ((L ^ 4 * Omega ^ 2 * a ^ 8) + 5 / 2 * (L ^ 4) * (Omega ^ 2) * (a ^ 6) * (b ^ 2) + (3 / 2 * (L ^ 4) * (b ^ 4) * (Omega ^ 2) + (L ^ 2 * b ^ 2 * xi * Omega) - (xi ^ 2)) * (a ^ 4) - (b ^ 2 * (L ^ 4 * b ^ 4 * Omega ^ 2 - 4 * L ^ 2 * b ^ 2 * xi * Omega - xi ^ 2) * a ^ 2) / 2 - (b ^ 4 * (L ^ 2 * Omega * b ^ 2 - xi) ^ 2) / 2) * b * sin((2 * L * a)) - (a ^ 5) * ((L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 + xi) ^ 2) * sinh((4 * L * b)) / 4 - b * ((b ^ 4) * ((L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 - xi) ^ 2) * sin((4 * L * a)) / 4 + (a * (L ^ 4 * Omega ^ 2 * a ^ 8 + 2 * L ^ 2 * Omega * (L ^ 2 * Omega * b ^ 2 + xi) * a ^ 6 + (2 * L ^ 4 * b ^ 4 * Omega ^ 2 + 2 * L ^ 2 * b ^ 2 * xi * Omega + xi ^ 2) * a ^ 4 + 2 * (L ^ 4 * Omega ^ 2 * b ^ 6 - L ^ 2 * Omega * b ^ 4 * xi - 2 * b ^ 2 * xi ^ 2) * a ^ 2 + b ^ 4 * (L ^ 2 * Omega * b ^ 2 - xi) ^ 2) * L))) * eta ^ 2 * ((a ^ 2 + b ^ 2) ^ 2) / a / b / (-(b ^ 4) * ((L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 - xi) ^ 4) * cos((2 * L * a)) ^ 2 / 2 - ((a ^ 2) * cosh((2 * L * b)) * ((L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 + xi) ^ 2) - ((L ^ 4 * a ^ 4 * Omega ^ 2 + 2 * L ^ 2 * Omega * (L ^ 2 * Omega * b ^ 2 + xi) * a ^ 2 + (L ^ 2 * Omega * b ^ 2 - xi) ^ 2) * (a ^ 2 + b ^ 2))) * ((L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 - xi) ^ 2) * (b ^ 2) * cos((2 * L * a)) + (a ^ 2) * ((L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 + xi) ^ 2) * (L ^ 4 * a ^ 4 * Omega ^ 2 + 2 * L ^ 2 * Omega * (L ^ 2 * Omega * b ^ 2 + xi) * a ^ 2 + (L ^ 2 * Omega * b ^ 2 - xi) ^ 2) * (a ^ 2 + b ^ 2) * cosh((2 * L * b)) - (a ^ 4) * ((L ^ 2 * Omega * a ^ 2 + L ^ 2 * Omega * b ^ 2 + xi) ^ 4) * cosh((4 * L * b)) / 4 - 3 / 4 * (L ^ 8) * (Omega ^ 4) * (a ^ 12) + ((-4 * L ^ 8 * Omega ^ 4 * b ^ 2 - 3 * L ^ 6 * Omega ^ 3 * xi) * a ^ 10) + 9 * (-(L ^ 6 * Omega ^ 3 * b ^ 2 * xi) - (L ^ 8 * Omega ^ 4 * b ^ 4) - (L ^ 4 * Omega ^ 2 * xi ^ 2) / 2) * (a ^ 8) + ((-11 * L ^ 8 * Omega ^ 4 * b ^ 6 - 7 * L ^ 6 * Omega ^ 3 * b ^ 4 * xi - 7 * L ^ 4 * Omega ^ 2 * b ^ 2 * xi ^ 2 - 3 * L ^ 2 * Omega * xi ^ 3) * a ^ 6) + ((3 * L ^ 6 * b ^ 6 * xi * Omega ^ 3) - 7 / 2 * (L ^ 4) * (b ^ 4) * (xi ^ 2) * (Omega ^ 2) - (3 * L ^ 2 * b ^ 2 * xi ^ 3 * Omega) - 3 / 4 * (xi ^ 4) - 31 / 4 * (L ^ 8) * (b ^ 8) * (Omega ^ 4)) * (a ^ 4) - 3 * (b ^ 2) * ((L ^ 4 * b ^ 4 * Omega ^ 2) + (xi ^ 2) / 3) * ((L ^ 2 * Omega * b ^ 2 - xi) ^ 2) * (a ^ 2) - (b ^ 4 * (L ^ 2 * Omega * b ^ 2 - xi) ^ 4) / 2) / 4;
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!