坐标轮换法 fortran 编程求极小值

Program zuobiao

Implicit none

Real y,y1,y2,x1,x2,x10,x20,a0,e

integer k,i,j

Write(*,*)"请输入初始点坐标x10,x20:"

Read(*,*)x10,x20

Write(*,*)"请输入精度e :"

Read(*,*)e

Write(*,*)"请输入初始步长a0:"

Read(*,*)a0

k=0

x1=x10

x2=x20

y=2*x1**2+x2**2-4*x1-4*x2+6

i=1

j=1

do while(a0>e)

k=k+1

y1=2*(x1+a0)**2+x2**2-4*(x1+a0)-4*x2+6

if (y1

do while(y1

y=y1

i=i+1

x1=x10+i*a0

x2=x20

y1=2*x1**2+x2**2-4*x1-4*x2+6

end do

x1=x10+(i-1)*a0

write(*,*) x1

else

i=-1

x1=x10+i*a0

x2=x20

y1=2*x1**2+x2**2-4*x1-4*x2+6

do while(y1

y=y1

i=i-1

x1=x10+i*a0

x2=x20

y1=2*x1**2+x2**2-4*x1-4*x2+6

end do

end if

x1=1

y=2*x1**2+x2**2-4*x1-4*x2+6

y2=2*x1**2+(x2+a0)**2-4*x1-4*(x2+a0)+6

if(y2

do while(y2

j=j+1

y=y2

x2=x20+j*a0

y2=2*x1**2+x2**2-4*x1-4*x2+6

enddo

x2=x20+(j-1)*a0

else

y2=2*x1**2+(x2-a0)**2-4*x1-4*(x2-a0)+6

do while(y2

j=j-1

y=y2

x2=x20+j*a0

y2=2*x1**2+x2**2-4*x1-4*x2+6

enddo

x2=x20+(j+1)*a0

end if

y=2*x1**2+x2**2-4*x1-4*x2+6

a0=0.5*a0

enddo

write(*,*)"最优解为:x1=",x1,"x2=",x2,"yp=",y,"迭代次数k=",k

Stop

End program

Program zuobiao

Implicit none

Real y,y1,y2,x1,x2,x10,x20,a0,e

integer k,i,j

Write(*,*)"请输入初始点坐标x10,x20:"

Read(*,*)x10,x20

Write(*,*)"请输入精度e :"

Read(*,*)e

Write(*,*)"请输入初始步长a0:"

Read(*,*)a0

k=0

x1=x10

x2=x20

y=2*x1**2+x2**2-4*x1-4*x2+6

i=1

j=1

do while(a0>e)

k=k+1

y1=2*(x1+a0)**2+x2**2-4*(x1+a0)-4*x2+6

if (y1

do while(y1

y=y1

i=i+1

x1=x10+i*a0

x2=x20

y1=2*x1**2+x2**2-4*x1-4*x2+6

end do

x1=x10+(i-1)*a0

write(*,*) x1

else

i=-1

x1=x10+i*a0

x2=x20

y1=2*x1**2+x2**2-4*x1-4*x2+6

do while(y1

y=y1

i=i-1

x1=x10+i*a0

x2=x20

y1=2*x1**2+x2**2-4*x1-4*x2+6

end do

end if

x1=1

y=2*x1**2+x2**2-4*x1-4*x2+6

y2=2*x1**2+(x2+a0)**2-4*x1-4*(x2+a0)+6

if(y2

do while(y2

j=j+1

y=y2

x2=x20+j*a0

y2=2*x1**2+x2**2-4*x1-4*x2+6

enddo

x2=x20+(j-1)*a0

else

y2=2*x1**2+(x2-a0)**2-4*x1-4*(x2-a0)+6

do while(y2

j=j-1

y=y2

x2=x20+j*a0

y2=2*x1**2+x2**2-4*x1-4*x2+6

enddo

x2=x20+(j+1)*a0

end if

y=2*x1**2+x2**2-4*x1-4*x2+6

a0=0.5*a0

enddo

write(*,*)"最优解为:x1=",x1,"x2=",x2,"yp=",y,"迭代次数k=",k

Stop

End program


相关文章

  • ansys学习-使用问答1_桥梁空间
  • ansys学习-使用问答1 2006年11月20日 星期一 08:30 Q为问A为回复 ---------------------------------------------------------------------------- ...查看


  • 计算机英语名言警句
  • 洛基提醒:英语学习已经进入互联网时代 * Real Programmers don't write specs-- users should consider themselves lucky to get any programs at ...查看


  • 计算机语言介绍(通俗易懂 中英文对照)
  • 目录: 1. 1.C语言 2.C++ 3.C++与C的抉择 4.汇编语言 5.Pascal语言 6.Visual Basic 7.Java 8.创作工具 9.结论 这是每个游戏编程FAQ里都有的问题.这个问题每星期都会在游戏开发论坛上被问上 ...查看


  • 现代设计方法 1
  • 1. 传统设计与现代设计方法的特点和 区别: ①传统设计方法的特点:静态分析.近似计算.经验设计和手工劳动. ②现代设计方法的特点:程式性.创造性.系统性.最优化和综合性. ③区别:传统设计是以经验总结为基础,以长期设计实践和理论计算形成的 ...查看


  • 加工中心 代码
  • G00定位 G01直线切削 G02顺时针方向圆弧切削 G03逆时针方向圆弧切削 G04暂停指令 G09正确停止检测 G10补正设定 G12顺时针方向圆周切削 G13逆时针方向圆周切削 G15极座标系统取消 G16极座标系统设定 G17XY平 ...查看


  • 学好计算机语言重要性
  • 作为一名当代的大学生,如何在大学期间学好有关计算机的课程,学习计算机知识的目的和要求是什么?有些什么课程?这是大家普遍关心的问题.计算机科学技术发展至今,已经形成了一个十分庞大的科学体系,如计算机的系统结构.算法语言.计算方法.操作系统.网 ...查看


  • 计算机世界最具影响力的20人
  • 转自: 计算机世界最具影响力的20人 1.约翰•冯•诺依曼 (John Von Neuman, 1903- 1957) 被誉为"电子计算机之父".他对人类的最大贡献是对计算机科学.计算机技术和数值分析的开拓性工作,194 ...查看


  • 计算机科学论坛--195本免费的在线编程类书籍全是E文
  • 195本免费的在线编程类书籍 全是E文 原作者地址:http://www.techtoolblog.com/archives/195-free-online-programming-books Thanks for everyone sub ...查看


  • 机械优化设计课本中编程实例
  • 燕山大学 机械优化设计论文 专 班 学 姓 业: 12机械工程 级: 工学部1班 号: 名: 2012年 12月 05日 摘 要: 机械优化设计是将最优化原理和计算技术应用于设计领域,为工程设计提供一种重要的科学设计方法.机械优化设计包括建 ...查看


热门内容