matlab最优化 课程总结matlab最优化 课程总结.doc

matlab最优化 课程总结matlab最优化 课程总结.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
matlab最优化 课程总结matlab最优化 课程总结

Matlab的数值运算基础 矩阵运算的符号表示: det()--行列式 Inv()--逆运算 pinv()--伪逆运算 rank()--秩 d=eig(a)--返回a的特征值,是列向量形式 [v,d]=eig(a)----v是特征向量矩阵,d是特征值对角阵 R=Chol(a)--对称正定矩阵的分解(cholesky), [R,p]=Chol(a)r的阶数为p-1,若a是正定矩阵,p=0 [l,u]=lu(a)---矩阵的lu分解,l 是下三角矩阵,u 是上三角矩阵,a 是任何方阵 [q,r]=qr(a)----将a分解为正交矩阵Q和上三角矩阵R 符号运算 1、s=sym(a)---建立符号对象s,建立符号变量 2、s=sym(a,flag)--flag:’d’’e’’f’ 3、str=class(object) 何种对象类型 4、findsym(f,n)---确定符号函数f中的n个自变量, 5、symdiv()等同于/, 6、n=numeric(e)----将符号对象转化成数值形式 7、factor(e)---恒等变换函数,将e进行因式分解, 8、expand(e)---将e 展开,在多项式、三角函数、指对函数常用 9、simplify()---综合化简 10、simple()---得到对象的长度最短的表达形式,若对象为一个矩阵,结果是全矩阵的最短 Matlab程序设计 M文件分为 a脚本文件:无输入和返回参数,数据为脚本中的数据 b函数文件: 高级运筹学----运用matlab 最优化方法 作业:试错法、斐波那契、黄金分割法 设计程序 定理 概念:梯度、海赛矩阵、凸集、凸函数、k.t条件、迭代法 matlab 输出参数在左边[] 输入变量() 线性规划类: 无约束条件:fminsearch;fminunc-[x,fval] = fminunc(@myfun,x0) 有约束条件:有非线性约束条件要加写M文件 fmincon----X=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) 求最优值类:编写程序 试错法 例:f(x)=x^2-x+2 在[-1,3]内的近似点,dt=0.05 function xval=shicuofa(a,b,h,dt) format long; x0=a+(b-a)*rand; x=x0; f1=fval(x); f2=fval(x+h); cishu=0; while 1 cishu=cishu+1; if f2f1 x=x+h; f1=f2; h=2*h; f2=fval(x+h); else if abs(h)dt xval=x; fval(xval) break else h=-h/4;f2=fval(x+h);f1=fval(x); end end end cishu 黄金分割法 function xval=huangjin(a,b,dt) format long; while 1 x2=a+(b-a)*0.618; x1=b-0.618*(b-a); f1=fval(x1); f2=fval(x2); if f1f2 a=x1; else b=x2 end if b-adt xval=(a+b)/2 break end end 切线法 找定义的区间 function[x,y]=shicuofa2(f,x0,buchang); a=x0; b=a+buchang; c=x0; while 1 if subs(f,findsym(f),b)subs(f,findsym(f),a) buchang=-buchang; c=b, b=a+buchang; a=c; if subs(f,findsym(f),b)subs(f,findsym(f),x0) x=b;y=a; break end else buchang=2*buchang; c=b; b=a+buchang; a=c; if subs(f,findsym(f),b)subs(f,findsym(f),x0) x=a,y=b break

您可能关注的文档

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档