中点公式法五点公式法求数值微分.docVIP

  • 467
  • 0
  • 约4.75千字
  • 约 14页
  • 2016-12-07 发布于贵州
  • 举报
中点公式法五点公式法求数值微分

《MATLAB程序设计实践》 1、编程实现以下科学计算算法,并举一例应用之。 “中点公式法和五点公式法求数值微分” 解:中点公式法和五点公式法求数值微分如下: :中点公式法求导数应用实例。采用中点公式法求函数f=在x=4处的导数。 解:在MATLAB命令窗口中输入: df=MidPoint(sqrt(x),4) 输出结果为: df= 0.2500 采用中点公式法求函数f=在x=4处的导数为0.25,而导数的精确值也是0.25 . 详见以下: 中点公式法流程图: If nargin=2,h=0.1 if nargin=3,h=0 源代码: function df=MidPoint(func,x0,h) if nargin == 2 h = 0.1; else if (nargin == 3 h == 0.0) disp(h2??ü?a0£?); return; end end y1 = subs(sym(func), findsym(sym(func)),x0+h); y2 = subs(sym(func), findsym(sym(func)),x0-h); df = (y1-y2)/(2*h); 运行结果如下: :五点公式法求导数应用实例。采用五点公式法求函数f=sin(x)在x=2处的导数。 解:在MATLAB命令窗口中输入: df1=FivePoint(sin(x),2,1); df2=FivePoint(sin(x),2,2); df3=FivePoint(sin(x),2,3); df4=FivePoint(sin(x),2,4); df5=FivePoint(sin(x),2,5); 用五种方法得到的结果为: df1= -0.4161 df2= -0.4161 df3= -0.4161 df4= -0.4161 df5= -0.4161 而函数在f=sin(x)在x=2的导数为cos(2)=-0.4161,从上面的结果来看,五点公式的精度是很高的。 详见以下: 五点公式法流程图: If nargin=3,h=0.1 if nargin =4,h=0 源代码: function df=FivePoint(func,x0,type,h) %??μ?1?ê?·¨,?óè?oˉêyfunc?úx0′|μ?êy ×£íòê?è?òa %oˉêy??£ofunc %?óμ?μ?£ox0 %1?ê?μ?D?ê?£otype£¨è?1,2,3,4,5,£? %à?é¢2?3¤£oh %μ?êy?μ£odf if nargin ==3 h=0.1; else if (nargin ==4h==0.0) disp(h2??ü?a0); return; end end y0 = subs(sym(func),findsym(sym(func)),x0); y1 = subs(sym(func),findsym(sym(func)),x0+h); y2 = subs(sym(func),findsym(sym(func)),x0+2*h); y3 = subs(sym(func),findsym(sym(func)),x0+3*h); y4 = subs(sym(func),findsym(sym(func)),x0+4*h); y_1 = subs(sym(func),findsym(sym(func)),x0-h); y_2 = subs(sym(func),findsym(sym(func)),x0-2*h); y_3 = subs(sym(func),findsym(sym(func)),x0-3*h); y_4 = subs(sym(func),findsym(sym(func)),x0-4*h); switch type case 1, df=(-25*y0+48*y1-36*y2+16*y3-3*y4)/(12*h);%ó?μúò???1?ê??óμ?êy case 2, df=(-3*y_1-10*y0+18*y1-6*y2+y3)/(12*h);%ó?μú?t??1?ê??

文档评论(0)

1亿VIP精品文档

相关文档