MATLAB Answers

complementary error function (surf plot)

44 views (last 30 days)
I'm new to MATLAB and i'm trying to plot the following function with surf:
.
Parameter values:
My code so far:
x = linspace(0,10^(-6),20);
t = linspace(0,5,5);
u0 = 10^(-6);
k = 10^(-9);
dn = 2.*k.*sqrt(t);
e2 = erf( x.*(dn).^(-1) );
u = u0.*(1 - e2);
surf(x,t,u)
title('Complementary Error function from 0 to 10^(-6)')
xlabel('Distance x')
ylabel('Time t')
I'm trying to get the x between 0 to in increments of and t in increments of .
How do you fix this?

  0 Comments

Sign in to comment.

Accepted Answer

Star Strider
Star Strider on 15 Jan 2021
Add:
[X,T] = ndgrid(x,t);
and it works:
x = linspace(0,10^(-6),20);
t = linspace(0,5,5);
[X,T] = ndgrid(x,t);
u0 = 10^(-6);
k = 10^(-9);
dn = 2.*k.*sqrt(T);
e2 = erf( X.*(dn).^(-1) );
u = u0.*(1 - e2);
surf(X,T,u)
title('Complementary Error function from 0 to 10^(-6)')
xlabel('Distance x')
ylabel('Time t')
although you may want to revise the code a bit.

  4 Comments

Show 1 older comment
Paul
Paul on 15 Jan 2021
Just want to point out that the erfc function can be used directly, and it might be appropriate to use for this problem because u is getting quite small but shouldn't be identically zero. I guess it depends on what, if anything, is to be done with u down stream.
Stephanie Anderson
Stephanie Anderson on 16 Jan 2021
Thank you StarStrider and Paul for your explanations.

Sign in to comment.

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!