首页 用MATLAB求极值

用MATLAB求极值

举报
开通vip

用MATLAB求极值用MATLAB求极值 用MATLAB求极值 灵活的运用MATLAB的计算功能,可以很容易地求得函数的极值。 2344xx,,例3.6.1 求的极值 y,2xx,,1 解 首先建立函数关系: syms s y=(3*x^2+4*x+4)/( x^2+x+1); ? 然后求函数的驻点: dy=diff(y); ? xz=solve(dy) ? xz= [0] [-2] 知道函数有两个驻点x=0和x=-2,考察函数在驻点处二阶导数的正负情况: 12 d2y=diff(y,2); ? z1=limit...

用MATLAB求极值
用MATLAB求极值 用MATLAB求极值 灵活的运用MATLAB的计算功能,可以很容易地求得函数的极值。 2344xx,,例3.6.1 求的极值 y,2xx,,1 解 首先建立函数关系: syms s y=(3*x^2+4*x+4)/( x^2+x+1); ? 然后求函数的驻点: dy=diff(y); ? xz=solve(dy) ? xz= [0] [-2] 知道函数有两个驻点x=0和x=-2,考察函数在驻点处二阶导数的正负情况: 12 d2y=diff(y,2); ? z1=limit(d2y,x,0) ? z1= -2 z2=limit(d2y,x,-2) ? z2= 2/9 于是知在x=0处二阶导数的值为z=-2,小于0,函数有极大值;在x=-2处二阶导数的值112 为z=2/9,大于0,函数有极小值。如果需要,可顺便求出极值点处的函数值: 2 y=limit(y,x,0) ? 1 y= 1 4 y=limit(y,x,-2) ? 2 y= 2 8/3 事实上,如果知道了一个函数的图形,则它的极值情况和许多其它特性是一目了然的。而借 助MATLAB的作图功能,我们很容易做到这一点。 例3.6.2画出上例中函数的图形 解 syms x ? y=(3*x^2+4*x+4)/( x^2+x+1); ?得到如下图形 ezplot(y) ? 如何用MATLAB求函数的极值点和最大值 比如说y=x^3+x^2+1,怎样用matlab来算它的极值和最大值, 求极值: syms x y >> y=x^3+x^2+1 >> diff(y) %求导 ans = 3*x^2 + 2*x >> solve(ans) %求导函数为零的点 ans = -2/3 0 极值有两点。 求最大值,既求-y的最小值: >> f=@(x)(-x^3-x^2-1) f = @(x)(-x^3-x^2-1) >> x=fminunc(f,-3,3)% 在-3;-3范围内找 Warning: Gradient must be provided for trust-region method; using line-search method instead. > In fminunc at 354 Optimization terminated: relative infinity-norm of gradient less than options.TolFun. x = -0.6667 >> f(x) ans = -1.1481 在规定范围内的最大值是1.1481 由于函数的局限性,求出的极值可能是局部最小(大)值。 求全局最值要用遗传算法。 如何用matlab求多元函数的极值 求 在 0> dzy=diff(z,y) dzy = sin(x)*cos(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y) >> [xx,yy]=solve('cos(x)*sin(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)=0',... 'sin(x)*cos(y)*sin(x+y)+sin(x)*sin(y)*cos(x+y)=0','x','y') %%%'x','y'可以不用, A=diff(z,x,2); %对于定义域内的驻点求解二阶偏导函数 B=diff(diff(z,x),y); C=diff(z,y,2); D=A*C-B^2; %判别极大值点 D1=subs(subs(D,'x',xx(1)),'y',yy(1))%% subs含义见补充部分 A1=subs(subs(A,'x',xx(1)),'y',yy(1)) D2=subs(subs(D,'x',xx(2)),'y',yy(2)) A2=subs(subs(A,'x',xx(2)),'y',yy(2)) %极大值点和极大值 [xx(2) yy(2)] JDZ=subs(subs(z,'x',xx(2)),'y',yy(2)) 程序运行结果 ans = [ 1/3*pi, 1/3*pi] JDZ = 3/8*3^(1/2) 补充 matlab中的绘图函数很多,三维的有好几个呢,下面我给出两种绘制方法 1.使用ezmesh或者ezsurf这两个函数是简易绘图函数,可以直接使用字符串绘图 ezmesh('x*y-(1/3)*(x^3)+1/4*((x^2)*(sqrt(2*(x^2-y*2))))-1/2*(y*(sqrt(2*(x^2-y*2))))') 2.先计算坐标点数据,再绘图,可以使用mesh和surf函数 [x,y]=meshgrid(0:0.1:10); z=x.*y-(1/3)*(x.^3)+1/4*((x.^2).*(sqrt(2*(x.^2-y*2))))-1/2*(y.*(sqrt(2*(x.^2-y*2)))); z(imag(z)~=0)=nan; mesh(x,y,z) subs是赋值函数,用数值替代符号变量 替换函数 例如: 输入subs(a+b,a,4) 意思就是把a用4替换掉,返回 4+b 也可以替换多个变量,例如:subs(cos(a)+sin(b),{a,b},[sym('alpha'),2]) 分别用字符alpha替换a和2替换b,返回 cos(alpha)+sin(2) 用法很灵活,仔细看帮助,会得到你想要的形式的 matlab subs如何用 悬赏分:0 - 解决时间:2008-12-3 17:36 在解一个模型,其中: Qd=(-2*x-2*wd+2*a-a*k+y*k+wf*k+td*k)/(4*b-2*b*k^2) 现在求出来 x = 1/2*(48*a+32*k+16*wd-16*cdu-4*wf*k-4*td*k-12*a*k-10*a*k^2+td*k^3-8*k^3+4*k ^2*cdu-4*k*cfu+cfu*k^3+3*a*k^3-6*wd*k^2+wf*k^3)/(5*k^2-16) y = (-8*a+a*k^2-2*wd*k+10*a*k+8*wf-3*wf*k^2-3*td*k^2+2*cfu*k^2+4*k^2+8*td-8*cf u-2*k*cdu)/(5*k^2-16) 要把x和y代回Qd,请教达人,用matlab的subs怎么写啊, 万分感谢~ 问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 补充: Qd=(-2*x1-2*wd+2*a-a*k+y1*k+wf*k+td*k)/(4*b-2*b*k^2) x1=1/2*(48*a+32*k+16*wd-16*cdu-4*wf*k-4*td*k-12*a*k-10*a*k^2+td*k^3-8*k^3+4*k^2*c du-4*k*cfu+cfu*k^3+3*a*k^3-6*wd*k^2+wf*k^3)/(5*k^2-16) y1=(-8*a+a*k^2-2*wd*k+10*a*k+8*wf-3*wf*k^2-3*td*k^2+2*cfu*k^2+4*k^2+8*td-8*cfu-2*k *cdu)/(5*k^2-16) subs(Qd,{x1,y1},{x,y}) 以上输入之后报错为:Undefined function or variable 'x1'. 请问是哪里除了问题, 提问者: nxdviola - 一级 最佳 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 syms x1,y1 Qd Qd=(-2*x1-2*wd+2*a-a*k+y1*k+wf*k+td*k)/(4*b-2*b*k^2) subs(Qd,{x1,y1},{x,y}) 为何Matlab用subs后给出的结果是个代数式而不是数字, 悬赏分:0 - 解决时间:2009-10-8 22:16 使用 d=subs(f4,{x,y,z},{2,3,1})后, 结果给出了一个很长的代数式,里面有pi和 atan,但都没有计算,为什么不给出一个最终的 数字结果, 提问者: 再见长江 - 二级 最佳答案 subs函数就是替换符号 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式的函数,要计算需要用eval函数 急询:Matlab中 subs(S)的应用疑问, 悬赏分:5 - 解决时间:2006-6-29 12:57 急询:Matlab中 subs(S)的应用疑问, 1.subs(S)到底是什么函数,其什么作用,谢谢~ 2.下段绘图程序如下的话就画出不来: syms x t; t=0:pi/60:2*pi; y1=int(sin(x),x,0,t); y2=int(cos(x),x,0,t); plot(y1,y2) 而把 plot(y1,y2) 改成 plot(subs(y1),subs(y2)) 就可以运行成功画出来了。 (1)为什么, (2)subs 在此起到什么作用, (3)而不加 subs 为什么运行不了,画不出来,,,,, 急,多谢~ (上次提问时候把y1写成y1=sin(x)了,现在改为int(sin(x),x,0,t); 抱歉) 问题补充: (上次提问时候把y1写成y1=sin(x)了,现在改为int(sin(x),x,0,t); 抱歉) 请具体讲一下subs(S)到底是什么意思,(我知道subs(f,x,t)是什么意思,但我不明白sub(S)在此到底具体是什么意思,请详细一下,谢谢~) 提问者: wanglicun - 二级 最佳答案 subs(S)的意思是: S以前是sym变量,subs(S)为double变量,plot只能对double变量作图。 求函数极值的一般步骤:z,f(x,y) f(x,y),0,f(x,y),0第一步 解方程组xy 求出实数解,得驻点. 第二步 对于每一个驻点,(x,y)00 求出二阶偏导数的值A、B、C. 2第三步 定出的符号,再判定是否是极值.AC,B 曲线极值的标注:用matlab中plot 绘制的曲线时,把曲线上峰值的大小标注在上 面 你指的是离散点的最大和最小值吧,给你个简单的例子看看: 代码:x=0:pi/50:2*pi; y=sin(x); y1=max(y); x1=x(find(y==y1)); y2=min(y); x2=x(find(y==y2)); plot(x,y); hold on plot(x1,y1,'r*'); plot(x2,y2,'g*'); 离散数据就极值点 %方法一 x=0:0.01:20; y=2*sin(x/2)+cos(2*x)/2; % indmax=find(diff(sign(diff(y)))<0)+1;%极大值点 % indmin=find(diff(sign(diff(y)))>0)+1;%极小值点 ind=find(diff(sign(diff(y)))~=0)+1;%极值点 plot(x,y,x(ind),y(ind),'ro') %方法二 x=0:0.01:20; y=2*sin(x/2)+cos(2*x)/2; indmax=intersect(find(diff(y)>0)+1,find(diff(y)<0));%极大值点 intersect(find(diff(y)<0)+1,find(diff(y)>0));%极小值点 indmin= plot(x,y,x(indmax),y(indmax),'ro',x(indmin),y(indmin ),'go') %方法三 x=0:0.01:20; y=2*sin(x/2)+cos(2*x)/2; yf=y(2:end-1)-y(1:end-2); %前向差分 yb=y(2:end-1)-y(3:end); %后向差分 I=find(yf.*yb>=0)+1; %寻找极值点(不考虑首尾两点) plot(x,y,'b',x(I),y(I),'r*'); function [zhudian,n]=T jizhi(x,y,z,J) ezsurf(x,y,z,J); dx=diff(z,x); dy=diff(z,y); zhudian=solve('dx=0','dy=0','x','y'); zhudian=zhudia n'; n=length(zhudia n) d2y=diff(dy); function [zhudian,n]=Tjizhi(x,y,z,J)%(x,y)%计算函数的极值 ezsurf(x,y,z);%ezplot(y); dx=diff(x,x); dy=diff(x,y))%dy=diff(y); zhudian=solve('dx=0','dy=0','x','y')%solve(dy); zhudian=zhudian'; %disp(zhudian); n=length(zhudiam); %disp(n); d2y=diff(dy); disp(d2y); for i=1:n if double(subs(d2y,x,zhudian(i)))<0 disp(zhudian(i)); disp('is a Max-extremun point') else if double(sub(d2y,x,zhudian(i)>0 disp(zhudian(i)) else if
本文档为【用MATLAB求极值】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_180829
暂无简介~
格式:doc
大小:95KB
软件:Word
页数:12
分类:企业经营
上传时间:2017-10-17
浏览量:21