taylor series method expansion

I am using the following code for taylor series
function [T,Y] = taylor(f,a,b,ya,m)
h = (b - a)/m;
T = zeros(1,m+1);
Y = zeros(1,m+1);
T(1) = a;
Y(1) = ya;
for j=1:m
tj = T(j);
yj = Y(j);
D = feval('df',tj,yj);
Y(j+1) = yj + h*(D(1)+h*(D(2)/2+h*(D(3)/6+h*D(4)/24)));
T(j+1) = a + h*j;
end
At command prompt i am giving the values as follows and getting error
>> syms x y;
>> f=4*x^3+1
f =
4*x^3 + 1
>> taylor(f,0,1,1.5,4)
Error using sym/taylor (line 99)
The value of 'x' is invalid. It must satisfy the function: @(x)isvector(x)&&isAllVars(x).

9 commentaires

> f
f =
function_handle with value:
@(x,y)x^2+y^2
>> taylor2(f,0,1,1.5,5)
Error using feval
Undefined function 'df' for input arguments of type 'double'.
Error in taylor2 (line 11)
D = feval('df',tj,yj);
Kindly suggest me how to get rid of this problem
Walter Roberson
Walter Roberson le 19 Sep 2018
... create df.m ?
There is no Mathworks provided function named df
PJS KUMAR
PJS KUMAR le 19 Sep 2018
can u suggest how to create df.m for a function
Use a function line,
function result = df(t, y)
... do appropriate calculation here
result = appropriate value to return
PJS KUMAR
PJS KUMAR le 19 Sep 2018
my intention to use 'df' is to find derivative of 'f' and evaluate it at tj and yj. Suggest me alternative code for the following statement in the above program. D = feval('df',tj,yj);
function D = df(t,y)
D(1) = 12*t^2;
D(2) = 24*t;
D(3) = 24;
D(4) = 0;
end
Walter Roberson
Walter Roberson le 19 Sep 2018
I am not clear what the parameters of your taylor represent so I do understand the meaning of t and y being passed to df.
I can say you should probably not be mixing feval with syms.
PJS KUMAR
PJS KUMAR le 19 Sep 2018
can we use 'diff' function to assign derivatives to D(1), D(2), D(3) etc.
Walter Roberson
Walter Roberson le 19 Sep 2018
Well you could if you had a variable name to take the derivative with respect to, and you had some reason for D(1) being different from D(2), D(3) etc.

Connectez-vous pour commenter.

Réponses (1)

Walter Roberson
Walter Roberson le 18 Sep 2018

0 votes

You are somehow invoking the symbolic toolbox taylor routine instead of your own. Make sure that you match file name with function name and that your path is correct to prioritize your own function.

Community Treasure Hunt

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

Start Hunting!

Translated by