my plot is not sinusoidal wave

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')

 Accepted Answer

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

More Answers (1)

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 Comment

Ok thank you for your help
I see now where is my mistake

Sign in to comment.

Categories

Find more on Geology in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!