필터 지우기
필터 지우기

"much greater than (>>) " operator calculation

조회 수: 1 (최근 30일)
Mark
Mark 2022년 6월 5일
답변: Shreeya 2023년 9월 1일
I have calculated C1, C2 and B1. And than I need to simplify the three equations with the condition of K1>> lamba1 (K1 much greater than lamba1) but because of the the equation results are very complication. Therefore, I would like to try find if it is possible to use matlab to simplify the the condition of K1>> lamba1(K1 much greater than lamba1).
Below is my code.
If there is any suggestion please feel free to let me know!
Thank you very much!
clc
clear
format long
syms q h v E G S D I a q_o phi_o
syms x y k1 C1 B1 C2 lamda1 lamda1_bar k1 k1_bar
phi=phi_o*cos(lamda1*x)*cos(lamda1*y)+((C1*cosh(lamda1*y)+C2*y*sinh(lamda1*y))*cos(lamda1*x)...
+(C1*cosh(lamda1*x)+C2*x*sinh(lamda1*x))*sin(lamda1*y));
psi=B1*(sinh(k1*y)*sin(lamda1*x)-sinh(k1*x)*sin(lamda1*y));
deta_phi=diff(phi,x,2)+diff(phi,y,2);
% Eq7.93
W=phi-(D/S)*deta_phi;
Eq_793=subs(W,x,a/2);
Eq_793=subs(Eq_793,(a*lamda1)/2,lamda1_bar);
Eq_793=simplify(Eq_793)
Eq_793 = 
% Eq7.94
Eq_794=diff(phi,x,2)+v*diff(phi,y,2)-(1-v)*diff((diff(psi,x,1)),y,1);
Eq_794=subs(Eq_794,x,a/2);
Eq_794=subs(Eq_794,(a*lamda1)/2,lamda1_bar);
Eq_794=subs(Eq_794,(a*k1)/2,k1_bar);
Eq_794=simplify(Eq_794)
Eq_794 = 
% Eq7.95
Eq_795=2*diff(diff(phi,x,1),y,1)+diff(psi,x,2)-diff(psi,y,2);
Eq_795=subs(Eq_795,x,a/2);
Eq_795=subs(Eq_795,(a*lamda1)/2,lamda1_bar);
Eq_795=subs(Eq_795,(a*k1)/2,k1_bar);
Eq_795=simplify(Eq_795)
Eq_795 = 
eqns=[Eq_793==0,Eq_794==0,Eq_795==0];
S=solve(eqns,C1,C2,B1)
S = struct with fields:
C1: -(- 8*D*k1*lamda1^3*phi_o*cosh(k1*y)*cos(lamda1*y)^2*cos(lamda1_bar)^2*sinh(lamda1_bar) + 4*D*lamda1^4*phi_o*cos(lamda1*y)*sin(lamda1*y)^2*cos(lamda1_bar)*cosh(lamda1_bar)*sinh(k1_bar) + 4*S*k1^2*phi_o*cos(lamda1*y)*sin(lamda1*y)^2*cos(lamda1_… C2: (4*(- 2*D*k1*lamda1^4*phi_o*cosh(k1*y)*cos(lamda1*y)^2*cos(lamda1_bar)^2*sinh(lamda1_bar) - S*k1*lamda1^2*phi_o*cosh(k1*y)*cos(lamda1*y)^2*cos(lamda1_bar)^2*sinh(lamda1_bar) + D*lamda1^5*phi_o*cos(lamda1*y)*sin(lamda1*y)^2*cos(lamda1_bar)*cosh… B1: (2*(4*D*lamda1^4*phi_o*sin(lamda1*y)^3*cosh(lamda1_bar)^2*sin(lamda1_bar) + 4*S*lamda1^2*phi_o*sin(lamda1*y)^3*cosh(lamda1_bar)^2*sin(lamda1_bar) - 4*D*lamda1^4*phi_o*v*sin(lamda1*y)^3*cosh(lamda1_bar)^2*sin(lamda1_bar) - 4*D*lamda1^4*phi_o*co…
C1 = vpa(S.C1, 5)
C1 = 
C2 = vpa(S.C2, 5)
C2 = 
B1 = vpa(S.B1, 5)
B1 = 

답변 (1개)

Shreeya
Shreeya 2023년 9월 1일
Hi Mark
I understand that you want to implement the much greater than (>>) operator to solve the equation K >> lambda in MATLAB.
You can define a tolerance level , let’s say of value 100. If this tolerance level is satisfied, it can be concluded that K >> lambda. The MATLAB function “assume” can help enforce this assumption while solving equations.
assume(T > 100)
The above code enforces the much greater than constraints to solve the equations further.
Refer to the documentation for more details: Set assumption on symbolic object - MATLAB assume - MathWorks India
Hope this helps!

카테고리

Help CenterFile Exchange에서 Number Theory에 대해 자세히 알아보기

제품


릴리스

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by