sum and plot of symbolic error functions

2 vues (au cours des 30 derniers jours)
Hiep Hoang
Hiep Hoang le 2 Fév 2018
Commenté : Hiep Hoang le 2 Fév 2018
I have to plot a summation of series of error functions like in the following code. The value of variable n changes from negative infinity to positive infinity. I just denote them as -1000 and 1000. My program can not produce results and I can not plot either. My program is below. Thank you! I really appreciate your support!
w=70*10^-6;
h=w/2;
D=3.3*10^-10;
t=10^-5;
Co=10^-6;
syms n x
symsum(erf((h+2*n*w-x)/sqrt(4*D*t))+erf((h-2*n*w+x)/sqrt(4*D*t)),n,-1000,1000)
ezplot(ans)

Réponse acceptée

Walter Roberson
Walter Roberson le 2 Fév 2018
symsum recognizes that there is no good formula for that summation, and leaves a place-holder .
Note that symsum() is for attempting to construct a closed-form formula. If it does not find a useful one, then it returns symsum(). If you instead wanted it to return 2001 erf() functions added together, then instead of symsum() you should subs() -1000:1000 for n into the expression, and then sum() the result. It will be an ugly result with no practical use, though.
Now if you were to switch from discrete to continuous, int() of that formula is resolvable.
  1 commentaire
Hiep Hoang
Hiep Hoang le 2 Fév 2018
Thanks Walter Roberson. I got nice results without using symsum anymore. Here is the code:
w=70*10^-6;
h=w/2;
D=3.3*10^-10;
t=10^-5;
Co=10^-6;
for n=1:100000
c(n)=(Co/2)*(erf((h+2*n*w-x)/sqrt(4*D*t))+erf((h-2*n*w+x)/sqrt(4*D*t)));
b(n)=(Co/2)*(erf((h-2*n*w-x)/sqrt(4*D*t))+erf((h+2*n*w+x)/sqrt(4*D*t)));
a=(Co/2)*(erf((h-x)/sqrt(4*D*t))+erf((h+x)/sqrt(4*D*t)))
S=c(n)+b(n)+a;
end

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by