hello can you please help me?? when i type this code i only get an horizontal line
i don`t know where is my mistake
the code
clc
sigma0=0;
sigma1=100;
sigma2=500;
el=0.5*0.0001;
L=1*0.0001 ;
h=0.5*0.0001;
a=1;
rho=1000;
g=10;
t=300;
m=4;
n=4;
x=0:100:5000;
A=(pi*((m/el)^(2)+(n/L)^(2))^(0.5));
B0=(g*A+(sigma0/rho).*A^3).*atan(A*h);
C0=B0^(0.5);
Z0=a*cos(C0.*t).*cos((m*pi.*x)/el);
B1=(g*A+(sigma1/rho)*A^3)*atan(A*h*1/180);
C1=B1^(0.5);
Z1=a*cos(C1.*t).*cos((m*pi.*x)/el);
B2=(g*A+(sigma2/rho)*A^3)*atan(A*h);
C2=B2^(0.5);
Z2=(a*cos(C2.*t).*cos((m*pi.*x)/el));
subplot(2,2,1)
plot(x,Z0,'r',x,Z1,'g',x,Z2,'b');
xlabel(' paroi x');
ylabel(' elevation z');
legend('sigma=0',' sigma=100',' sigma=500')

 Akzeptierte Antwort

darova
darova am 15 Feb. 2020

0 Stimmen

Your argument for cos is too big
Try
x = linspace(0,5e-5,50);
The result

Weitere Antworten (1)

Giuseppe Inghilterra
Giuseppe Inghilterra am 15 Feb. 2020

1 Stimme

Hi,
the argument of cosine "(m*pi.*x)/el" returns you always one.
This happens because your cosine argument is expressed in the form 'k*pi' with k = even integer number. In this case cos(k*pi) (with k = even integer number) returns you always one.
If you try to change parameter m or el or step of x such that m*x/el is not an even interger number you obtain a wave plot.
For example with: x = 0:pi:5000, you obtain the following result:

1 Kommentar

MOUNIBA REDAH
MOUNIBA REDAH am 16 Feb. 2020
Ok thank you for your help
I see now where is my mistake

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by