Effacer les filtres
Effacer les filtres

Table with for loops taylor

3 vues (au cours des 30 derniers jours)
Ursula Trigos-Raczkowski
Ursula Trigos-Raczkowski le 21 Jan 2020
Commenté : Walter Roberson le 22 Jan 2020
Hi
I want to create a table
column 1 will be the value of n from 1 to 20 n= 1, 2, 3, ... , 20
column 2 will be the nth (respectively) taylor approximation of a function [ so n terms of a taylor approximation of ]
column 3 will be the error of this taylor approximation compared to the real value of erf(2) so [erf(2)-nth term taylor approx]
column 4 will be a different series approximation of the same function erf(2) [asymptotic series ] where the double !! means only odd numbers, i.e. .
column 5 will be the error of this second approximation, i.e. [erf(2) minus my n-term asymptotic approximation]
Below is my try. my tayterm doesn't work, neither does my asymterm. The values given are incorrect.
:( thank you.
i would also like gridlines on the table...not sure how to do that.
format long
syms k x t X
%tayt =[taylor(erf(x),x,'Order',2),taylor(erf(x),x,'Order',3),taylor(erf(x),x,'Order',4),taylor(erf(x),x,'Order',5),taylor(erf(x),x,'Order',6),taylor(erf(x),x,'Order',7),taylor(erf(x),x,'Order',8),taylor(erf(x),x,'Order',9),taylor(erf(x),x,'Order',10),taylor(erf(x),x,'Order',11),taylor(erf(x),x,'Order',12),taylor(erf(x),x,'Order',13),taylor(erf(x),x,'Order',14),taylor(erf(x),x,'Order',15),taylor(erf(x),x,'Order',16),taylor(erf(x),x,'Order',17),taylor(erf(x),x,'Order',18),taylor(erf(x),x,'Order',19)];
for n=1:18
N(n)=n;
tayterm(n)=taylor(erf(x),x,'Order',n);
ercol2(n) = erf(2)-tayterm(n);
asymterm(n)=1-2/sqrt(pi)*exp(-2^2)*(symsum((-1)^k*x^(2*k+1)/((2*k+1)*factorial(k)),k,0,n-1));
ercol4(n) = erf(2)-asymterm(n);
end
format long
T = table(transpose(N),transpose(double(tayterm)),transpose(ercol2), transpose(asymterm),transpose(ercol4));
T.Properties.VariableNames = {'n' 'n-term Taylor Approx for erf(2)' 'Error in col 2' 'n-term asymptotic approx of erf(2)' 'Error in col 4'}
  7 commentaires
Ursula Trigos-Raczkowski
Ursula Trigos-Raczkowski le 22 Jan 2020
Okay, this is giving me the following error:
Error using symengine
Unable to convert expression into double array.
Error in sym/double (line 700)
Xstr = mupadmex('symobj::double', S.s, 0);
Error in testing (line 19)
T = table(transpose(N),transpose(double(tayterm)),transpose(ercol2), transpose(asymterm),transpose(ercol4));
Sindar
Sindar le 22 Jan 2020
You are trying to turn a symbolic expression into a number. That doesn't work. You can either leave the symbolic expression alone or evaluate it for a particular input (using subs), depending on what you want in the table

Connectez-vous pour commenter.

Réponse acceptée

Walter Roberson
Walter Roberson le 21 Jan 2020
syms X
tayterm(n) = taylor(erf(X),X,x,'Order',n)
You always need to taylor() a function, not a constant.
  5 commentaires
Ursula Trigos-Raczkowski
Ursula Trigos-Raczkowski le 22 Jan 2020
where? in the table? inside transpose? in the loop?
Walter Roberson
Walter Roberson le 22 Jan 2020
syms t
tayterm(n) = subs( taylor(erf(t),t,0,'Order',n), t, x );
That would taylor around 0 but evaluate at 2

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