电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

例2-1求在点和点的梯度。VIP免费

例2-1求在点和点的梯度。_第1页
例2-1求在点和点的梯度。_第2页
例2-1求在点和点的梯度。_第3页
例2-1求在点和点的梯度。%例2-1梯度的计算symsx1x2%定义符号变量f=x1^2+x2^2-4*x1+4;%定义二维目标函数gradf=jacobian(f)%计算函数梯度Xzuobiao1=[3,2];Xzuobiao2=[2,0];%定义Xzuobiao点坐标gfk1=subs(subs(gradf,Xzuobiao1(1)),Xzuobiao1(2))%计算Xzuobiao1点的梯度值gmk1=norm(gfk1)%计算Xzuobiao1点的梯度模igk1=gfk1/gmk1%计算Xzuobiao1点的梯度单位向量gfk2=subs(subs(gradf,Xzuobiao2(1)),Xzuobiao2(2))%计算Xzuobiao1点的梯度值gmk2=norm(gfk2)%计算Xzuobiao1点的梯度模igk2=gfk2/gmk2%计算Xzuobiao1点的梯度单位向量gradf=[2*x1-4,2*x2]gfk1=24gmk1=4.4721igk1=0.44720.8944gfk2=00gmk2=0Warning:Dividebyzero.igk2=NaNNaN例2-2把函数在点展开泰勒二次近似式%例2-2Taylor展开symsx1x2f=4+4.5*x1-4*x2+x1^2+2*x2^2-2*x1*x2+x1^4-2*x1^2*x2disp('函数f的表达式:')pretty(simplify(f));%计算函数的一阶偏导数dx1=diff(f,x1);dx2=diff(f,x2);disp('函数f的一阶偏导数表达式:')pretty(simplify(dx1));pretty(simplify(dx2));%计算函数的二阶偏导数dx1x1=diff(f,x1,2);dx1x2=diff(dx1,x2);dx2x1=diff(dx2,x1);dx2x2=diff(f,x2,2);%根据函数f的二阶偏导数,构成Hessian矩阵disp('函数f的二阶偏导数表达式:')pretty(simplify(dx1));H=[dx1x1dx1x2;dx2x1dx2x2];pretty(simplify(H));%计算xk点的值x1=2.0;x2=2.5;disp('函数在xk点的函数值:')fk=subs(f)disp('函数在xk点的一节偏导数矩阵:')dk=subs([dx1dx2])disp('函数xk点的海色矩阵:')HK=subs([dx1x1dx1x2;dx2x1dx2x2])disp('函数在xk点的二阶Taylor展开式:')symsx1x2fkTL=fk+dk*[x1-2.0;x2-2.5]+0.5*[x1-2.0,x2-2.5]*HK*[x1-2.0;x2-2.5];pretty(simplify(fkTL));f=4+9/2*x1-4*x2+x1^2+2*x2^2-2*x1*x2+x1^4-2*x1^2*x2函数f的表达式:22424+9/2x1-4x2+x1+2x2-2x1x2+x1-2x1x2函数f的一阶偏导数表达式:39/2+2x1-2x2+4x1-4x1x22-4+4x2-2x1-2x1函数f的二阶偏导数表达式:39/2+2x1-2x2+4x1-4x1x2[2][2+12x1-4x2-2-4x1][][-2-4x14]函数在xk点的函数值:fk=5.5000函数在xk点的一节偏导数矩阵:dk=15.5000-6.0000函数xk点的海色矩阵:HK=40-10-104函数在xk点的二阶Taylor展开式:2232-79/2x1+4x2+20x1-10x1x2+2x2例2-3求函数的极值点和极值%例2-3求函数的极值symsx1x2x3f=2*x1^2+5*x2^2+x3^2+2*x2*x3+2*x1*x3-6*x2+3;disp('函数f的表达式:')pretty(simplify(f));latex(f);%计算函数的1阶偏导数dsx1=diff(f,x1);dsx2=diff(f,x2);dsx3=diff(f,x3);disp('函数f的1阶偏导数:')pretty(simplify(dsx1));pretty(simplify(dsx2));pretty(simplify(dsx3));%计算函数的2阶偏导数dsx1x1=diff(f,x1,2);dsx1x2=diff(dsx1,x2);dsx1x3=diff(dsx1,x3);dsx2x1=diff(dsx2,x1);dsx2x2=diff(f,x2,2);dsx2x3=diff(dsx2,x3);dsx3x1=diff(dsx3,x1);dsx3x2=diff(dsx3,x2);dsx3x3=diff(f,x3,2);%根据函数f的2阶偏导数,构成海色矩阵disp('函数f的2阶偏导数矩阵')H=[dsx1x1dsx1x2dsx1x3;dsx2x1dsx2x2dsx2x3;dsx3x1dsx3x2dsx3x3]%计算海色矩阵的正定性[D,p]=chol(subs(H));ifp==0;disp('海色矩阵为正定,函数f有极小点:');end%计算极值存在的必要条件,求极值点坐标[x1,x2,x3]=solve(dsx1,dsx2,dsx3,'x1,x2,x3');disp('极值点坐标:')fprintf(1,'x1=%3.4f\n',subs(x1));fprintf(1,'x2=%3.4f\n',subs(x2));fprintf(1,'x3=%3.4f\n',subs(x3));disp('在极值点,函数f数值:')fmb=subs(f)M文件的运行结果如下函数f的表达式:2222x1+5x2+x3+2x2x3+2x1x3-6x2+3函数f的1阶偏导数:4x1+2x310x2+2x3-62x3+2x2+2x1函数f的2阶偏导数矩阵H=[4,0,2][0,10,2][2,2,2]海色矩阵为正定,函数f有极小点:极值点坐标:x1=1.0000x2=1.0000x3=-2.0000在极值点,函数f数值:fmb=0例2-5已知二维约束问题受约束为例2-5MATLAB实现,用M文件判别函数的凸性:%例2-5判别函数的凸性symsx1x2f=60-10*x1-4*x2+x1^2+x2^2-x1*x2;disp('函数f的表达式:')pretty(simplify(f));dsx1=diff(f,x1);dsx2=diff(f,x2);disp('函数f的1阶偏导数:')pretty(simplify(dsx1));pretty(simplify(dsx2));%计算函数的2阶偏导数dsx1...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部