Plotting damped sine travelling wave equation in Matlab
    6 次查看(过去 30 天)
  
       显示 更早的评论
    
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 个评论
  Prasad Reddy
      
 2020-4-24
				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. 
采纳的回答
  KSSV
      
      
 2020-4-24
        
      编辑:KSSV
      
      
 2020-4-24
  
      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)
0 个评论
更多回答(2 个)
  Deepak Gupta
      
 2020-4-24
        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)
0 个评论
另请参阅
类别
				在 Help Center 和 File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



