How to plot this equation to obtain the figure?

1 Ansicht (letzte 30 Tage)
soe min aung
soe min aung am 18 Dez. 2019
Kommentiert: soe min aung am 24 Dez. 2019
Untitled.png
1-s2.0-S0307904X10002131-gr2.jpg
  1 Kommentar
Walter Roberson
Walter Roberson am 18 Dez. 2019
You have a bit of a problem: your has three independent inputs, and one output, so you need a 4-dimensional plot . The plot c that you show is for a fixed time, t1, not the general equation.
If you have the Symbolic Toolbox, probably the easiest approach is to use a piecewise() equation, subs() in a fixed time, and fplot() the result. If you do not have the Symbolic Toolbox, either use logical indexing to construct your answer, or else just compute over the three y ranges separately and concatenate them together.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 24 Dez. 2019
N = 50; %subdivisions per dimension
xmin = -1; xmax = 101;
ymin = -160; ymax = 160;
tmin = 0; tmax = 3600;
xvec = linspace(xmin, xmax, N);
yvec = linspace(ymin, ymax, N);
tvec = linspace(tmin, tmax, N);
[X, Y, T] = ndgrid(xvec, yvec, tvec);
maskx = 0 <= X & X <= 100;
masky1 = -150 <= Y & Y < -50;
masky2 = -50 <= Y & Y < 50;
masky3 = 50 <= Y & Y <= 150;
xi = zeros(size(X));
mask1 = maskx & masky1;
mask2 = maskx & masky2;
xi(mask1) = xi0 * v*T(mask1)/(2 * L) .* (1 - cos(pi/50*X(mask1))) .* (1 - cos(pi/100*(Y(mask1) + 150)));
xi(mask2) = xi0 * V*T(mask2) / L .* (1-cos(pi/50*X(mask2)));
xi(mask3) = xi0 * v*T(mask3)/(2 * L) .* (1 - cos(pi/50*X(mask3))) .* (1 - cos(pi/100*(Y(mask3) - 150)));
random_time_idx = randi(length(tvec));
random_time = tvec(random_time_idx);
x_for_t = X(:,:,random_time_idx);
y_for_t = Y(:,:,random_time_idx);
zi_for_t = xi(:,:,random_time_idx) / xi0;
surf(x_for_t, y_for_t, zi_for_t)
xlabel('x (km)');
ylabel('y (km)');
zlabel('$\frac{\zi(x,y,t1)}{\zi_0}', 'interpreter', 'latex')
title( sprintf('time = %.2f', random_time) );
  1 Kommentar
soe min aung
soe min aung am 24 Dez. 2019
Thank you for your response. I have Symbolic Toolbox. Let me show you a plot form allwayzitzme@gmail.com which is the same your figure from your code. But It is different from the above picture. I want to get as above figure. But I can't try this. So I need your advice for this code. Please try sir,
clc
clear all
m = 30 ; n = 10 ;
x = linspace(0,100,m) ;
eta0 = 2 ;
L = 100 ;
W = 100 ;
v = 0.14 ;
t = 5.95 ;
y1 = linspace(-150,-50,n) ;
[X,Y1] = meshgrid(x,y1) ;
T1 = eta0*v*t/(2*L)*(1-cos(pi/50*X)).*(1-cos(pi/100*(Y1+150))) ;
y2 = linspace(-50,50,n) ;
[X,Y2] = meshgrid(x,y2) ;
T2 = eta0*v*t/L*(1-cos(pi/50*X)) ;
y3 = linspace(50,150,n) ;
[X,Y3] = meshgrid(x,y3) ;
T3 = eta0*v*t/(2*L)*(1-cos(pi/50*X)).*(1-cos(pi/100*(Y3-150))) ;
X = [X ; X; X] ;
Y = [Y1 ; Y2 ;Y3] ;
eta = [T1 ; T2 ; T3] ;
surf(X,Y,eta) ;

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

soe min aung
soe min aung am 23 Dez. 2019
Please help me for this plot. Please
  3 Kommentare
soe min aung
soe min aung am 23 Dez. 2019
Could you please give me matlab code example for this case.
Walter Roberson
Walter Roberson am 23 Dez. 2019
Do you have the symbolic toolbox? Did you read about piecewise? Did you read about logical indexing?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Descriptive Statistics finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by