欢迎来到天天文库
浏览记录
ID:1624706
大小:26.00 KB
页数:2页
时间:2017-11-12
《理查森外推算法求函数的导数》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、理查森外推算法求函数的导数functiondf=Richason(func,x0,n,h)ifnargin==3 h=1;elseif(nargin==3&&h==0.0) disp('h不能为0!'); return; endendfor(i=1:n) y1=subs(sym(func),findsym(sym(func)),x0+h/(2^i)); y2=subs(sym(func),findsym(sym(func)),x0-h/(2^i)); G(i)=2^(i-1)*(y1-y2)/h; %求得金字塔的底
2、层值endG1=G;for(i=1:n-1) for(j=(i+1):n) G1(j)=(G(j)-(0.5)^(2*i)*G(j-1))/(1-(0.5)^(2*i));%求得金字塔的每层值 end G=G1;end df=G(n); %顶层值就是所需得导数值%三次样条法求函数的二阶导数functiondf0=Diff2BSample(func,x0,n,h)formatlong;node_num=2*n+1;fori=1:node_num y(i)=subs(sym(func),findsym(sym(func)),x0-n*h+i*h
3、-h);endy_1=(-3*y(1)+4*y(2)-y(3))/(2*h);y_N=(3*y(2*n+1)-4*y(2*n)+3*y(2*n-1))/(2*h);c=SubBSample(h,2*n,y,y_1,y_N);df0=(y(n+1)-c(n+2))*6/h/h;formatshort;functionc=SubBSample(h,n,y,y_1,y_N)f0=0.0;c=zeros(n+3,1);b=zeros(n+1,1);A=diag(4*ones(n+1,1));I=eye(n+1,n+1);AL=[I(2:n+1,:);zeros(1,n+1)];AU=[
4、zeros(1,n+1);I(1:n,:)];A=A+AL+AU; %形成系数矩阵fori=2:n b(i,1)=6*y(i);endb(1)=6*y(1)+2*h*y_1;b(n+1)=6*y(n+1)-2*h*y_N;d=followup(A,b); %用追赶法求出系数c(2:n+2)=d;c(1)=c(2)-2*h*y_1; %c(-1)c(n+3)=c(3)+2*h*y_N; %c(n+1)
此文档下载收益归作者所有