413计算精度可控的数值积分 重积分( quadrature精度可控): Sl=quad(fun,a2b,to)%自适应 Simpson法 S2= quadI(fun,a,b,tol)%自适应罗巴托 Lobato法 二重积分(精度可控): S3=dblquad(fun, xmin, xmax, ymin, ymax, tol) 三重积分(精度可控): S4=triplequad(fun, xmin, Xmax, ymin, ymax, zmix, zmax, tol) fun:可为字符串,内联对象,名函数函数句柄注意乘除法 运算一定加点用数组运算 默认积分的绝对精度为10 2021/1/26 第11页
2021/1/26 第11页 4.1.3 计算精度可控的数值积分 一重积分(quadrature精度可控): S1=quad(fun,a,b,tol) %自适应Simpson法 S2=quadl(fun,a,b,tol) %自适应罗巴托Lobatlo法 二重积分(精度可控) : S3=dblquad(fun,xmin,xmax,ymin,ymax,tol) 三重积分(精度可控) : S4=triplequad(fun,xmin,xmax,ymin,ymax, zmix,zmax,tol) fun:可为字符串,内联对象,匿名函数,函数句柄,注意乘除法 运算一定加点.用数组运算 tol: 默认积分的绝对精度为10-6
例415:求r=「e2x (1) syms x lsym=vpa(int(exp(x^2),x,0,1)%X^2数组乘方亦可 sym 074682413281242702539946743613185 %(2)梯形法积分 format long d=0001:X=0:d:1 Trapa= d"trapz(exp(-x*x)%X*x必须为数组乘 Trapa 0.746824071499185 (3) fxe'exp(-X. %一定用数组乘 Ic=quadfx,0,1,1e-8) c 20 0.746824132854452%实际精度控制到1e-10 第12页
2021/1/26 第12页 (1) syms x Isym=vpa(int(exp(-x^2),x,0,1)) % x.^2数组乘方亦可 Isym = 0.74682413281242702539946743613185 例4.1-5:求 . − = 1 0 2 I e dx x % (2) 梯形法积分 format long d=0.001;x=0:d:1; Itrapz=d*trapz(exp(-x.*x)) % x.*x必须为数组乘 Itrapz = 0.746824071499185 (3) fx=‘exp(-x.^2)’; %一定用数组乘 Ic=quad(fx,0,1,1e-8) Ic = 0.746824132854452 %实际精度控制到1e-10
例41-6:求 21 (1)符号计算法 syms x y s=vpa(int(int(x y, x,0, 1),y, 1, 2)) Warning: Explicit integral could not be found 0.40546510810816438197801311546435 (2)数值积分法 format long s_n= biquad(@(xy)x^y,0,1,1,2)%匿名函数表示被积函数 shE 0405466267243508 %一定为数组乘 sn= dblquad(x.y,0,1,1,2)%字符串表示被积函数 s_n=db|quad( inline(X.^y",0,1,1,2)%内联函数表示被积函数 2021/1/26 第13页
2021/1/26 第13页 (1)符号计算法 syms x y s=vpa(int(int(x^y,x,0,1),y,1,2)) Warning: Explicit integral could not be found. s = 0.40546510810816438197801311546435 例4.1-6:求 . 2 1 1 0 y s x dxdy = (2)数值积分法 format long s_n=dblquad(@(x,y)x.^y,0,1,1,2) %匿名函数表示被积函数 s_n = 0.405466267243508 s_n=dblquad('x.^y',0,1,1,2) %字符串表示被积函数 s_n=dblquad(inline('x.^y'),0,1,1,2) %内联函数表示被积函数 % 一定为数组乘
4.14函数极值的数值求解 X, fval, exitflag, output]=fminbnd(fun, x1, x2, options) %一元函数在区间 bound(x1,x2)中极小值 x,val:极值点坐标和对应目标函数极值 x, fval,exitflag, output=fiminsearch(fun, XO, options) %单纯形法求搜索起点x0附近多元函数极值点 %x每列代表一个候选极值点,各列按目标函数极小值递增顺序 %x(;1)对应的目标函数极小值点由a给出 fun:字符串,内联函数,名函数,函数句柄注意乘除法运 算一定加点用数组运算 options:配置优化参数,可略 exitflag:给出大于0的数,则成功搜索到极值点 output:给出具体的优化算法和迭代次数
2021/1/26 第14页 4.1.4 函数极值的数值求解 [x,fval,exitflag,output]=fminbnd(fun,x1,x2,options) %一元函数在区间bound(x1,x2)中极小值 [x,fval]: 极值点坐标和对应目标函数极值 [x,fval,exitflag,output]=fminsearch(fun,x0,options) %单纯形法求搜索起点x0附近多元函数极值点 % x每列代表一个候选极值点,各列按目标函数极小值递增顺序 %x(:,1)对应的目标函数极小值点由fval给出 fun: 字符串,内联函数,匿名函数,函数句柄,注意乘除法运 算一定加点.用数组运算 options: 配置优化参数,可略 exitflag: 给出大于0的数,则成功搜索到极值点 output: 给出具体的优化算法和迭代次数
【例41-7】已知y=esin2x-0.5(x+0.1)sinx, 在-10三x三10区间,求函数的最小值。 (1)用“导数为零法”求极值点 syms x y=sin(x)^2*exp(-0.1*×)-0.5′sn(x)*(x+0.1) yd=dify4×)};%求导函数 Xs0= solved,x)%求导函数为零的根,即极值点 ydxs0=vpa(subs(yd,X,xs0)%验证极值点处导函数为零 y_xs0=vpa(subs(yxXs0)%求极值点处极值 XS0E matrix([0.050838341410271656880659496266968]) yd Xso 2.2958874039497802890014385492622*104(-41) Xs0 0.001263317776974196724544154344118 无法判断是否最小值 2021/1/26 第15页
2021/1/26 第15页 【例4.1-7】已知 , 在-10≦x≦10区间,求函数的最小值。 0.1 2 sin 0.5( 0.1)sin x y e x x x − = − + (1)用“导数为零法”求极值点 syms x y=sin(x)^2*exp(-0.1*x)-0.5*sin(x)*(x+0.1); yd=diff(y,x); %求导函数 xs0=solve(yd,x) %求导函数为零的根,即极值点 yd_xs0=vpa(subs(yd,x,xs0)) %验证极值点处导函数为零 y_xs0=vpa(subs(y,x,xs0)) %求极值点处极值 xs0 = matrix([[0.050838341410271656880659496266968]]) yd_xs0 = 2.2958874039497802890014385492622*10^(-41) y_xs0 = -0.001263317776974196724544154344118 无法判断是否最小值