数学C语言编程,数学规划 (最速下降法,c语言编程).doc

数学规划 (最速下降法,c语言编程).doc

数 学 规 划 课 程 设 计

题目:用最速下降法求解无约束非线性规划问题

姓名:

学号:

成绩:

2011年6月

用最速下降法求解无约束非线性规划问题

摘要:无约束非线性规划问题是一类重要的数学规划问题。文主要研究了用最速下降法也就是梯度法对无约束非线性规划问题进行求解。对于一个无约束非线性规划利用最速下降法求解,首先需要确定其优化方向,此优化方向应该选择为f在当前点处的负梯度方向,利用一维搜索法找出沿此方向上的最小值及其对应点,此后将该点作为新的出发点重复上述过程,直到达到允许的误差为止。本文最后利用c++语言编程得到满足允许误差内的最优解。

本文主要对一个无约束非线性规划问题的实例,首先利用上述迭代的方法,计算出各迭代点的函数值,梯度及其模。然后应用c++语言编程,得到精确地最优解,需迭代六次才使得,得到的最优解为,。

关键词:最速下降法 无约束非线性规划 最优解

一、问题重述

用最速下降法求解无约束非线性规划问题:,设初始点取为,迭代到满足允许误差=0.01为止的精确解。

二、问题分析

2.1 无约束非线性问题的最优条件

该问题是一个无约束非线性规划问题,利用最少下降法求解该问题,无约束非线性规划问题的最优解所要满足的必要条件和充分条件是我们设计算法的依据,为此有以下几个定理。

定理1 设f:在点处可微,若存在,使,则向量p是f在点处的下降方向。

定理2设f:在点处可微,若是无约束问题的局部最优解,则

有数学分析中我们已经知道,使的点x为函数f的驻点或平稳点。函数f的一个驻点可以是极小值点;也可以是极大值点;甚至也可能既不是极小值点也不是极大值点,因此称它为函数f的鞍点,以上定理告诉我们,是无约束问题的局部最优解的必要条件是:是其目标函数f的驻点。

定理3 设f:在点处的Hesse矩阵存在,若,并且正定,则是无约束非线性问题的严格局部最优解。

一般而言,无约束非线性问题的目标函数的驻点不一定是无约束非线性问题的最优解,但对于其目标函数是凸函数的无约束凸规划,下面定理证明了它的目标函数的驻点就是它的整体最优解。

定理4设f:,,f是上的可微凸函数。若有,则是无约束问题的整体最优解。

2.2最速下降法的基本思想

最速下降法又称为梯度法,是1847年由著名数学家Cauchy给出的,他是解析法中最古老的一种,其他解析方法或是他的变形,或是他的启发得到的,因此它是最优化方法的基础。

设无约束非线性规划问题中的目标函数f:在点处可微。最速下降法的基本思想是:从当前点出发,取函数在点处下降最快的方向作为我们收索方向,由的Taylor展示知 ,略去的高阶无穷小项不计,可见取时,函数值下降的最多 ,于是,我们可以够造出最速下降法的迭代步骤。

2.3无约束非线性规划问题的迭代步骤

解无约束非线性规划问题的最速下降法计算步骤

第1步 选取初始点,给定终止误差 >0,令k=0;

第2步 计算,若,停止迭代,输出,否则进行第3步;

第3步 取;

第4步 进行一维搜索,求,使得,令,k=k+1。转第2步。

由以上计算步骤可知,最速下降法迭代终止时,求得的是目标函数驻点的一个近似点。

三、问题求解

3.1对原无约束非线性规划迭代

首先进行第一次迭代

令,即=0,解得:

所以,

此时,

又因为

则进行第二次迭代

令,代入即可解得:

所以

此时,

又因为

则进行第三次迭代

令,代入即可解得:

所以

此时,

又因为

则进行第四次迭代

令,代入即可解得:

所以

此时,

又因为

以上仍然没有达到要求,即还需继续迭代,直到满足为止。

3.2对原无约束非线性规划进行c++语言编程求解

就这样无限的迭代下去,直到为止,为此,我们可以用c++语言编程得到,其算法设计如下图(图3-1)

图(3-1)

利用c++语言编程(源代码如下):

#include

#include

double lambda(double x[2],double p[2],double a[2])

{

double lam1,lam2;

lam1=4*(pow(a[0],3)*x[0]*x[0]+pow(a[1],3)*x[1]*x[1]);

lam2=-4*(pow(a[0]*x[0],2)+pow(a[1]*x[1],2))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华三防火墙h3cf100配置双宽带_H3C新一代F100系列防火墙评测报告

【IT168评测】随着网络应用在中小企业的深入发展,中小企业对于网络安全的需求也越来越强烈。而传统的网络安全设备可以帮助中小企业防御病毒、蠕虫及应用层攻击,但是由于缺乏有效的监管,中小企业内网用户的P2P下载、在线视频等大量占用着企业…

公交查询系统 c语言,城市公交查询系统的设计任务书

主要参考文献(资料):[1] 汪光焘.畅通城市交通,实现城市的可持续发展.可持续发展,2002,(2):18-19[2] 马武定.城市化与城市可持续发展的基本问题.城市规划汇刊,2002,(2):7-9[3] 冯博.S…

matlab计算一组数的函数值_matlab中怎么求一组数据概率最大的数

好象直接使用就可以了,第一次出现就包含了定义顺便把些命令弄给你看下matlab命令matlab commands and functions listA aabs 绝对值、模、字符的ASCII码值acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割align 启动图形对象几何位置排列工…

c语言文件怎么在手机上打开,各位前辈这两个程序怎么在手机上运行

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*made by ebhrz*/#include #include #include #include #include #include #include /*---------global define---------*/int cfd; /* 文件描述符 */int recbytes;int sin_size;char buffer[1024] { 0 }; /* 接受缓冲区 */struc…

u盘启动蓝屏 索尼vaio_U盘重装系统出现蓝屏?不要急,这四个手段轻松帮你解决!...

现如今U盘重装系统是主流的重装系统方式,通过U盘PE重装系统是大多数用户重装电脑系统的第一选择。不过在用U盘重装系统的时候,进入PE系统有时候会出现一些问题。有用户进入PE系统就蓝屏,这是怎么回事呢?下面就让韩博士小编为大家带…

觅凤c语言教程,C语言程序设计教程 第1章.ppt

傣永靶莱瑞市芽星谴绥真椎匣灵租骡淬女测推谅应弥蠢仑早饲姑锗佩草隔C语言程序设计教程 第1章C语言程序设计教程 第1章第1章 绪 论??唆闽邹搔绕裂陶短噎诚贤希绞重垒嚷济酸凛委句枉鞘扁渗皋耿淮此朴胎竖C语言程序设计教程 第1章C语言程序设计教程 第1章1.1 程序设计语言的发展…

iframe懒加载_懒加载是如何实现的?

作为网页内容的一部分,图像和视频通常要消耗很多资源加载。要提高网页应用的性能,如何避免资源浪费在加载图像和视频上就很重要了。但是,很多时候我们都不愿意减少网页上的媒体资源,所以我们经常无从下手。幸运的是,我…

数据库系统工程师考c语言吗,2019年数据库系统工程师考点:DBMS的基本功能

【导语】2019年数据库系统工程师考试备考正在进行中,为了方便考生及时有效的备考,那么,无忧考网为您精心整理了2019年数据库系统工程师考点:DBMS的基本功能,欢迎大家的参考学习。如想获取更多数据库系统工程师考试的模…

redis value最大值_Redis从入门到深入-String的value

1. string类型1.1 redis数据存储类型redis本身是一个Map,其中所有的数据都是采用key:value的形式存储数据类型指的是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串1.2 string类型存储的数据:单个数据…

c语言将数据写不入文件,求大神看看为什么不能将数据写入文件

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include#include #includevoid baocunXS(struct stu *head);struct stu *creat();struct stu{int chengji;int xuhao;struct stu *next;//结构体指针自引用};void ps(struct stu *head){struct stu *p;phead;if(p!NULL){do{printf…

ipsec ip替换_[windows]利用IPSec对指定的ip进行访问限制

以win2003系统为例:操作(看图):1.任务:现在192.168.2.200可访问;目的;本地禁止对其访问2.进入:管理工具->本地安全设置->IP安全策略3.右键创建IP安全策略4.弹出向导,如下图:(一直选择[是]或者[下一步]直至完成,期间填写名称可随便填,我填的是"测试")5.完成添加…

android要求图标格式,Android设计规范 Material Design-Style(3图标)

图标系统图标定义系统图标或者UI界面中的图标代表命令、文件、设备或者目录。系统图标也被用来表示一些常见功能,比如清空垃圾桶、打印或者保存。系统图标的设计要简洁友好,有潮流感,有时候也可以设计的古怪幽默一点。要把很多含义精简到一个…

python迭代器举例_如何最简单、通俗地理解Python的迭代器?

1、什么是迭代器迭代器 指的是迭代取值的工具,迭代是一个重复的过程,每次重复都是基于上一次的结果而继续的,单纯的重复并不是迭代。比如:AB生育了C, CD>E,生育过程是迭代,克隆就不是迭代。2、为何要有迭…

android代码判断权限,安卓权限检测代码

Android 23 以后加入了新的权限检查机制,对一些危险权限,进行了新的授权管理,以让用户明确app都是用了哪些权限,这也让我们的开发多做了一些工作。public class BaseActivity extends Activity {protected static final int REQ_C…

burpsuite小米手机抓包_使用burpsuite实现Android APP的HTTPS抓包

0x00 序在对app做安全测试时,通常会需要对app的网络通信进行抓包,但是面对app使用了https包时,由于手机没有burp的证书,因此可能会导致该次通信失败,所以下面的文章主要讲述如何通过burp抓取app的https包。0x01 获取bu…

android fragment framelayout,framelayout中fragment的切换

我们在android开发中经常会用到fragment,例如侧拉栏的切换,viewPager的切换。而我们切换fragment无非就两种方法:1.replace();2.add(),hide(),show();两种发方法相比较而言,我更加推…

透明大页相关内核参数_透明大内存页Hugepage支持

目标在linux2.6.38之前,处理大容量内存工作集的高性能关键计算应用是运行在libhugetlbfs之上,必须依赖于hugetlbfs,。透明Hugepage支持是一种替代手段,它使用大内存页,并且虚拟内存页的大小可以动态变化,没…

c语言五子棋斜向判断,c语言 五子棋危险判断 求大神解释啊

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼代码#include #define right r#define lower l#define lower_right i#define lower_left e#define none oint table[19][19];int hit_space(int x, int y, char vec){if (vec right){if (x - 1 > 0 && table[x - 1][y]…

vue项目接口地址暴露_vue组件暴露和.js文件暴露接口操作

1、将同一类型的组件放在一个文件夹下2、在此文件夹下创建一个index.js3、在index.js中导入组件,并把他们暴露出去1、写法一import studentCourse1 from ./studentCourse.vueimport studentInfo1 from ./studentInfo.vueexport var studentCoursestudentCourse1expo…

linux编译lnx文件命令_linux命令dd

dd使用dd这个linux命令可以创建一定大小文件。linux创建文件命令:dd命令把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。语法:CODE:[Copy to clipboard]dd 〔选项〕QUOTE:if 输入文件(或设备名称)。of 输出文件…