www.gusucode.com > 高等数学问题求解源码程序 > CH12/mtaylor.m
function T=mtaylor(fun,x0,n) %MTAYLOR 二元函数的泰勒展开式 % T=MTAYLOR(FUN) 求二元函数FUN在原点处的6阶泰勒展开式 % T=MTAYLOR(FUN,X0) 求二元函数FUN在点X0处的6阶泰勒展开式 % T=MTAYLOR(FUN,X0,N) 求二元函数FUN在点X0处的N阶泰勒展开式 % % 输入参数: % ---FUN:给定的二元函数 % ---X0:泰勒展开点,以元胞数组数组给出,形如{'x=0','y=0'} % ---N:泰勒展开阶次 % 输出参数: % ---T:返回的泰勒展开式 % % See also taylor, diff if nargin<3 n=6; end if nargin<2 || isempty(x0) x0={'x=0','y=0'}; end vars=cell(1,2); values=cell(1,2); for k=1:2 kk=strfind(x0{k},'='); vars{k}=x0{k}(1:kk-1); values{k}=sym(x0{k}(kk+1:end)); end T=subs(fun,vars,values); for m=1:n S=0; for p=0:m sigma=nchoosek(m,p)*(sym(vars{1})-values{1})^p*... (sym(vars{2})-values{2})^(m-p)*... subs(diff(diff(fun,vars{1},p),vars{2},m-p),vars,values); S=S+sigma; end T=T+S/gamma(m+1); end web -broswer http://www.ilovematlab.cn/forum-221-1.html