Plotting damped sine travelling wave equation in Matlab

19 Ansichten (letzte 30 Tage)
Jesse
Jesse am 20 Feb. 2015
Beantwortet: Jesse am 24 Apr. 2020
Greetings all,
Please correct me if I am wrong on any of this, but I am trying to plot a damped/attenuating sine wave of the form y(x,t)=Ae^-alpha(x) * sin(wt-Bx + phi).
Granted the sin is not in the exponential, I've been trying to code this up knowing that travelling waves have spatial as well as temporal dimensions.
The code I have after user input is:
x=0:.001:1;
Beta = 2*pi/lambda; %(lambda is user input)
y1=zeros(100,100);
for t=0:.001:1
y1(t,:)=A*sin(Beta*x-w*t + phi).exp(-alpha*x)
end
%A, alpha, w, and phi are user input as well
So I'm getting a "Subscript indices must be either real positive integers or logicals." Where am I going wrong?
Also, I am trying to plot this damped wave - do I need to use plot3? If so, why?
Thanks!
-J
  1 Kommentar
Prasad Reddy
Prasad Reddy am 24 Apr. 2020
y1(t,:)=A*sinBeta.*x-w*t+phi).*exp(-alpha.*x)
please check the above equation. it may work.
you need not to use plot3 command.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

KSSV
KSSV am 24 Apr. 2020
Bearbeitet: KSSV am 24 Apr. 2020
You index t, is taking zero for the first time. Indices cannot be negative and zero in MATLAB. You need not to use loop, you can follow as below.
clc; clear al ;
A = rand ;
lambda = rand ;
w = rand ;
phi = rand ;
alpha = rand ;
x=0:.001:1;
Beta = 2*pi/lambda; %(lambda is user input)
t=0:.001:1 ;
[X,T] = meshgrid(x,t) ;
Y1 = A*sin(Beta*X-w*T + phi).*exp(-alpha*X) ;
surf(X,T,Y1)

Weitere Antworten (2)

Deepak Gupta
Deepak Gupta am 24 Apr. 2020
Your y1 seems to be function of two variables x and t so yes, you will need to use plot3 at it will plot y1 against two variables.
You can try below code to find value of y1:
x=0:.001:1;
t =(0:.001:1)';
Beta = 2*pi/lambda; %(lambda is user input)
y1=zeros(1001,1001); % y1 should have same dimention as x*t matrix.
y1=A*sin(Beta*x-w*t + phi).*exp(-alpha*x)
plot3(t, x, y1)

Jesse
Jesse am 24 Apr. 2020
Thanks all but this question was posted 5 years ago, and I think it had to do with some project I was working on at the time.
Thank you again for the responses and your time.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by