用共轭梯度法求极小值matlab,用MATLAB实现最速下降法_牛顿法和共轭梯度法求解实例——张小强.doc...
机电产品优化设计
课程设计报告
姓 名 :张 小 强
学 号 :201222080633
学 院 :机械电子工程学院
实验的题目和要求
一.课程名称:最优化设计方法
二.实验日期:2013年6月27日
三.实验目的:掌握最速下降法,牛顿法和共轭梯度法的算法思想,并能上机编程实现相应的算法。
四.实验要求:用MATLAB实现最速下降法,牛顿法和共轭梯度法求解实例。
五.实验原理:最速下降法是以负梯度方向最为下降方向的极小化算法,相邻两次的搜索方向是互相直交的。牛顿法是利用目标函数在迭代点处的Taylor展开式作为模型函数,并利用这个二次模型函数的极小点序列去逼近目标函数的极小点。共轭梯度法它的每一个搜索方向是互相共轭的,而这些搜索方向仅仅是负梯度方向与上一次搜索方向的组合。
五.运行结果如下:
题目:f=(x-2)^2+(y-4)^2
①.最速下降法:
M文件:
function [R,n]=steel(x0,y0,eps)
syms x;
syms y;
f=(x-2)^2+(y-4)^2;
v=[x,y];
j=jacobian(f,v);
T=[subs(j(1),x,x0),subs(j(2),y,y0)];
temp=sqrt((T(1))^2+(T(2))^2);
x1=x0;y1=y0;
n=0;
syms kk;
while (temp>eps)
d=-T;
f1=x1+kk*d(1);f2=y1+kk*d(2);
fT=[subs(j(1),x,f1),subs(j(2),y,f2)];
fun=sqrt((fT(1))^2+(fT(2))^2);
Mini=Gold(fun,0,1,0.00001);
x0=x1+Mini*d(1);y0=y1+Mini*d(2);
T=[subs(j(1),x,x0),subs(j(2),y,y0)];
temp=sqrt((T(1))^2+(T(2))^2);
x1=x0;y1=y0;
n=n+1;
end
R=[x0,y0];
调用黄金分割法:
M文件:
function Mini=Gold(f,a0,b0,eps)
syms x;format long;
syms kk;
u=a0+0.382*(b0-a0);
v=a0+0.618*(b0-a0);
k=0;
a=a0;b=b0;
array(k+1,1)=a;array(k+1,2)=b;
while((b-a)/(b0-a0)>=eps)
Fu=subs(f,kk,u);
Fv=subs(f,kk,v);
if(Fu<=Fv)
b=v;
v=u;
u=a+0.382*(b-a);
k=k+1;
elseif(Fu>Fv)
a=u;
u=v;
v=a+0.618*(b-a);
k=k+1;
end
array(k+1,1)=a;array(k+1,2)=b;
end
Mini=(a+b)/2;
输入:
[R,n]=steel(0,1,0.0001)
输出:
R = 1.99999413667642 3.99999120501463
n = 1
②.牛顿法:
M文件:
syms x1 x2;
f=(x1-2)^2+(x2-4)^2;
v=[x1,x2];
df=jacobian(f,v);
df=df.';
G=jacobian(df,v);
epson=1e-12;x0=[0,0]';g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)});G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)});k=0;mul_count=0;sum_count=0;
mul_count=mul_count+12;sum_count=sum_count+6;
while(norm(g1)>epson)
p=-G1\g1;
x0=x0+p;
g1=subs(df,{x1,x2},{x0(1,1),x0(2,1)});
G1=subs(G,{x1,x2},{x0(1,1),x0(2,1)});
k=k+1;
mul_count=mul_count+16;sum_count=sum_count+11;
end;
k
x0
mul_count
s
用共轭梯度法求极小值matlab,用MATLAB实现最速下降法_牛顿法和共轭梯度法求解实例——张小强.doc...相关推荐
- 共轭梯度下降法matlab,用matlab实现最速下降法,牛顿法和共轭梯度法求解实例
用matlab实现最速下降法,牛顿法和共轭梯度法求解实例 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实验的题目和要求 1.所属 ...
- 数值计算方法 matlab用二分法或简单迭代法求_牛顿法和二分法介绍及其在空气处理当中的应用...
二分法 如上图所示,对于区间[a,b]上连续不断且f(a)·f(b)<0的函数y=f(x),通过不断地把函数f(x)的零点所在的区间一分为二,使区间的两个端点逐步逼近零点,进而得到零点近似值的方 ...
- c语言割线法求方程跟,分别用牛顿法和割线法求解方程 x^3-6x^2+9x-2=0在区间[3,4]上的近似根.要求满足精度|x*-xk|...
% clc; clear all; global fnq dfnq fnq = @(x) x^3 - 6*x^2 + 9*x - 2; dfnq = @(x) 3*x^2 - 12*x + 9; to ...
- matlab求多元函数的极小值,[转载]利用MATLAB求多元函数的极值(2)
利用MATLAB求多元函数的极值分两种情况,(1)无约束条件:(2)有约束条件. (2)有约束条件下求极小值的方法: 假设多变量非线性函数的数学模型为 min f(x) c(x)<=0 ceq( ...
- 用matlab实现共轭梯度法求解实例,用MATLAB实现共轭梯度法求解实例.doc
实用标准文案 精彩文档 用MATLAB实现共轭梯度法求解实例 康福 201103710031 无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为 ...
- 共轭梯度法matlab实验报告,用matlab实现共轭梯度法求解实例.doc
用matlab实现共轭梯度法求解实例.doc 用MATLAB 实现共轭梯度法求解实例 康福 201103710031 1.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一 ...
- 用matlab实现共轭梯度法求解实例,用MATLAB实现共轭梯度法求解实例
用MATLAB 实现共轭梯度法求解实例 康福 201103710031 一.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为最小,它们都属于约 ...
- matlab中怎么求函数的最小值,matlab求函数的最小值
将上述各函数值进行比较,最终确定出在 D 内的最大值和最小值. 3.函数求偏导数的 MATLAB 命令 MATLAB 中主要用 diff 求函数的偏导数,用 jacobian 求 ...... 第七讲 ...
- 多元函数的极值matlab,利用MATLAB求多元函数的极值(2)
利用MATLAB求多元函数的极值分两种情况,(1)无约束条件:(2)有约束条件. (2)有约束条件下求极小值的方法: 假设多变量非线性函数的数学模型为 min f(x) c(x)<=0 ceq( ...
最新文章
- css 选择器 伪元素_CSS伪元素-解释选择器之前和之后
- Python--粒子滤波定位案例程序
- 什么是 Angular 的多级注入器
- 小 X 的 AK 计划
- 在每天下午五点使用计算机,邮件攻击主要是_每天下午5点使用计算机_apt的攻击目标一般不是...
- 单片机的模拟智能灌溉系统
- 在FLEX中获得当前PLAYER版本等信息.
- UEditor实战分享(二)定制
- 【Firewalld(Iptables)】
- winfrom软件开发汽车测试_从事汽车电子软件开发岗,我们最近还没那么愁
- 高校科研项目管理系统
- Android App开发基础
- 使用VS Code开发AngularJS 2 第一个应用程序
- compact php,php compact 通过变量创建数组
- canvas --用循环画圆
- 动力节点Dubbo学习笔记
- 这个工具也能做到像分析牛文章收录批量查询功能
- 解决chrome浏览器图标缓存问题
- 1.2 词向量计算的工具——word2vec (有趣解释+代码)
- 联想460A笔记本ubuntu下关闭独立显卡
热门文章
- GNU Stow 是ds6000com19908836661在 Linux 中移除
- 不知名大牛二十六个月Android学习工作总结(整理)
- 爬虫框架Scrapy(10)下载文件与图片
- pyqt api 学习
- 铂配合物蓝色/黄色/红色/绿色磷光材料|双核环金属铂配合物CnFPt和CnPtpiq|fppyBTPA|dfppyBTPA四配位硼配合物齐岳试剂
- “爱运动管理系统”诞生记(12)
- 云集财务业务 TiDB 实践
- Missing separate debuginfos, use: debuginfo-install 解决方法如下----笛风读书笔记系列
- 服务器常清理空间用命令
- 通过HSDB来了解String值的真身在哪里