单纯形法完全c语言程序

更新时间:2017/2/8 13:37:00  浏览量:566  手机版

单纯形法完全c语言程序,能运行

#include "math.h"

#include "stdio.h"

#define N 2

void paixu(p,n)

int n;

double p[];

{ int m,k,j,i;

double d;

k=0; m=n-1;

while (k

{ j=m-1; m=0;

for (i=k; i<=j; i++)

if (p>p[i+1])

{ d=p; p=p[i+1]; p[i+1]=d; m=i;}

j=k+1; k=0;

for (i=m; i>=j; i--)

if (p[i-1]>p)

{ d=p; p=p[i-1]; p[i-1]=d; k=i;}

}

return;

}

double mubiao(double *x)

{ double y;

y=x[1]-x[0]*x[0]; y=100.0*y*y;

y=y+(1.0-x[0])*(1.0-x[0]);

return(y);

}

main()

{ int i,j,k,l,m=0;

double c,xx[N+1][N],f0[N+1],f[N+1],x0[N]={1.2,1},x1[N],s=0.0; double a,b;

double xa[N],xb[N],xc[N],xe[N],xw[N],xr[N],xo[N];

double fr,fe,fw,fc,fo;

double aef=1.0,r=1.0,eps1=1.0e-30,eps2=1.0e-30,bt=0.5,rou=0.5; c=1.0;

b=(c/(N*sqrt(2)))*(sqrt(N+1)-1);

a=b+c/sqrt(2);

//printf("a=%13.7e b=%13.7e ",a,b);

//printf("\n");

//给xx[N][N+1]赋值,每一行构成单纯形的一个定点

//***********************

for(i=0;i

xx[0]=x0;

for(i=1;i

for(j=0;j

{if(j==i-1)

xx[j]=x0[j]+a;

else

xx[j]=x0[j]+b;

}

for (i=0;i

{for (j=0;j

printf("xx[%d][%d]%13.7e ",i,j,xx[j]);

printf("\n");

}

loop1:

//求单纯形的每个定点的函数值f0,f和x1是过渡数组

printf("\n");

printf("\n");

for(i=0;i

{for(j=0;j

x1[j]=xx[j];

f0=mubiao(x1);

f=mubiao(x1);

printf("f0[%d]=%13.7e f[%d]=%13.7e\n",i,f0,i,f);

}

printf("\n");

//比较f的大小,f[0]是最小值,f[N]是最大值

paixu(f,N+1);

for(i=N;i>=0;i--)

printf("f[%d]=%13.7e \n",i,f);

//找最好点和最坏点分别是哪一个点,即xx[][]的行数

for(i=0;i

{if(f0==f[0])

k=i;

if(f0==f[N])

l=i;

}

printf("最好点k=%d\n",k);

printf("最坏点l=%d\n",l);

//终止判断条件

printf("f[N]-f[0]=%13.7e \n",f[N]-f[0]);

if((f[N]-f[0])

{printf("迭代次数m=%d\n",m);

for(j=0;j

printf("optx[%d]=%13.7e\n",j,xx[k][j]);

printf("fmin=%13.7e\n",f[0]);

}

else

{ m=m+1;

//把xx[][]中最好点移到第一行,最坏点移到最后一行

for(j=0;j

{xb[j]=xx[k][j];

xx[k][j]=xx[0][j];

xx[0][j]=xb[j];

//

xw[j]=xx[l][j];

xx[l][j]=xx[N][j];

xx[N][j]=xw[j];

}

for (i=0;i

{for (j=0;j

printf("xx[%d][%d]=%13.7e ",i,j,xx[j]);

printf("\n");

}

//求除最坏点f[N]外其余点的中点xc[]

for(i=0;i

xa=0;

for(j=0;j

for(i=0;i

xa[j]=xa[j]+xx[j];}

xa[j]=xa[j]/N;

}

for(i=0;i

printf("xa[%d]=%13.7e xb[%d]=%13.7e xw[%d]=%13.7e \n",i,xa,i,xb,i,xw); //求xw[N]的反射点xr[N];

for(i=0;i

{xr=xa+aef*(xa-xw);

printf("xr[%d]=%13.7e ",i,xr);

}

printf("\n");

//求xr[N]的函数值fr

fr=mubiao(xr);

printf("fr=%13.7e \n",fr);

//判断xr与xb的好坏

if(fr<=f[0])

{for(i=0;i

{xe=xr+r*(xr-xa);

//printf("xe[%d]=%13.7e ",i,xe); }

printf("\n");

fe=mubiao(xe);

if(fe<=f[0])

for(j=0;j

xx[N][j]=xe[j];

else

for(j=0;j

xx[N][j]=xr[j];

goto loop1;

}

else

{ fw=f[N];

if(fr>=fw)

{for(i=0;i

xc=xa-bt*(xa-xw);

fc=mubiao(xc);

if(fc>=fw)

{for(i=1;i

for(j=0;j

xx[j]=xx[0][j]-rou*(xx[j]-xx[0][j]); goto loop1;

}

else

{for(j=0;j

xx[N][j]=xc[j];

goto loop1;

}

}

else

{if(fr>=fe)

{ for(i=0;i

xo=xa+bt*(xa-xw);

fo=mubiao(xo);

if(fo>=fr)

{for(i=1;i

for(j=0;j

xx[j]=xx[0][j]-rou*(xx[j]-xx[0][j]); goto loop1;

}

单纯形 c语言 程序,单纯形法完全c语言程序相关推荐

  1. c语言编程 构建围墙,c语言程序设计朝盛 综合程序练习题.ppt

    c语言程序设计朝盛 综合程序练习题 综合程序练习题 综合程序练习题 大型程序设计的要求 综合程序练习题 综合程序练习题 大型程序设计题目分析: 1 打字练习 2 电子琴 3 简易画图板 4 贪吃蛇 5 ...

  2. 用c语言运行程序的优点,C语言学习与总结---第一章:C语言概述

    第一章:C语言概述 1.绪论 2.计算机程序 3.计算机语言 4.C语言的发展及其特点 5.最简单的C语言程序 6.运行C语言程序的方法与步骤 7.程序设计任务 1.绪论 C语言是计算机基础语言,本次 ...

  3. 背口诀14天精通c语言pdf下载,C语言必背18个经典程序

    C语言必背18个经典程序 1./*输出9*9口诀.共9行9列,i控制行,j控制列.*/ #include "stdio.h" main() {int i,j,result; for ...

  4. 关于python中程序流程结构-Python语言程序设计(第4章:程序结构设计)

    4.1 算法 [1]计算机程序可视为数据结构和算法的集成,这种集成体现为以下两方面的内容:数据是程序实现的基础:算法要依靠程序来完成功能. [2]算法的特点:有穷性:确定性:零个或多个输入:一个或多个 ...

  5. python语言程序设计嵩天-Python语言程序设计基础(第2版)嵩天课后答案

    嵩天.礼欣.黄天羽Python语言程序设计基础(第2版)习题答案本书提出了以理解和运用计算生态为目标的Python语言教学思想,在系统讲解Python语言语法的同时介绍了从数据理解到图像处理的14个P ...

  6. python语言程序设计基础网课-Python语言程序设计基础答案

    [填空题]逻辑型数据在参与算术运算的过程中可以被当作整数进行操作,通常True的值对应整数1,False的值对应整数____________. [单选题]在Python中,不可以用来表示字符串的符号是 ...

  7. c语言报告程序分析报告,2012C语言程序分析报告.doc

    2012C语言程序分析报告 C语言程序设计专周 专 周 报 告 班级:10611 学号:20 姓名: 设计时间:2011-5-30至2011-6-3 一.设计题目:职工工资管理小软件 二.实习目的 1 ...

  8. c语言程序结果 856400,C语言程序设计答案(黄保和编)第3章.pdf

    厦门大学本科生公共课 C 程序设计基础 教材习题答案 第三章 结构化程序设计 第 1 页 共 4 页 一 思考题一 思考题 1 顺序结构的语句有哪些 顺序结构的语句有哪些 表达式语句 空语句 复合语句 ...

  9. python语言采用编译执行方式_Python程序的执行过程 解释型语言和编译型语言

    我初学Python时,听到的关于Python的第一句话就是,Python是一门解释性语言,我就这样一直相信下去,直到发现了*.pyc文件的存在.如果是解释型语言,那么生成的*.pyc文件是什么呢?c应 ...

最新文章

  1. layoutSubviews 调用情况
  2. python argparse库_Python的argparse库使用详解
  3. UOJ37. 【清华集训2014】主旋律
  4. CTFshow php特性 web97
  5. 机器学习系列之手把手教你实现一个决策树
  6. 【项目管理】记第一次出差到客户现场推进项目验收感悟
  7. notepad++ tcl_TCL科技前三季度净利20亿元,投资并购超200亿元
  8. scala mysql连接池_Java与Scala的两种简易版连接池
  9. pc端rem适配_自适应PC端网页制作使用REM
  10. X协议 mysql_MySQL X协议分析
  11. UESTC_神秘绑架案 CDOJ 881
  12. PPT实现单页点名的方式
  13. k2p openwrt路由部署阿里云aliyun-ddns
  14. CSS——run-in元素
  15. 阿丹的1234投资策略
  16. 财务大数据比赛代码例子
  17. addobe dwcs6静态表格
  18. Sublime 中快速打开网页
  19. CentOS7.6(1810)安装
  20. 单片机学习 9-直流电机实验

热门文章

  1. mybatis入门配置——基于xml配置
  2. 安装sql server 2008 报错
  3. Sharepoint Caml查询中时间格式
  4. CISCO路由器配置手册--第五章 虚拟局域网(VLAN)路由
  5. Master/Slave知识
  6. Java:一个分数类的简单设计
  7. mongodb 导出 带条件_将 MongoDB 导出成 csv
  8. 华为鸿蒙系统推出的背景美国,鸿蒙系统+麒麟芯片,流畅度相当ios,手机性能不输苹果芯片...
  9. 前端能读取压缩包内容吗?_解决前端多环境部署的痛点
  10. IT人员健康信号之大脑保养