Table with for loops taylor
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Ursula Trigos-Raczkowski
am 21 Jan. 2020
Kommentiert: Walter Roberson
am 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
]
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/264780/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/264798/image.png)
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.
.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/264782/image.png)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/264783/image.png)
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 Kommentare
Sindar
am 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
Akzeptierte Antwort
Walter Roberson
am 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 Kommentare
Walter Roberson
am 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
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Calculus finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!