%函数文件
function y=fun(x1,x2)
y=2*x1^2+x2^2-x1*x2;
%Powell主程序
clear;clc;
x0=[2 2];
xk=x0;
ideal_error=10^(-4);
actural_error=1;
d1=[1 0];
d2=[0 1];
k=1;
MaxLoopNum=20;
while(actural_error>ideal_error&&MaxLoopNum>k)%沿d1方向进行一维搜索syms a1 x1 x2;xk1=xk+a1*d1;x1=xk1(1);x2=xk1(2);fun1=fun(x1,x2);fxa=diff(fun1,'a1')==0;a1=solve(fxa,'a1');%计算中间点xk1=xk+a1*d1;%沿d2方向进行一维搜索syms a2 x1 x2;xk2=xk1+a2*d2;x1=xk2(1);x2=xk2(2);fun1=fun(x1,x2);fxa=diff(fun1,'a2')==0;a2=solve(fxa,'a2');%计算终点xk2=xk1+a2*d2;%计算映射点x3=2*xk2-xk;%计算实际收敛精度xkerror=eval(x3-xk);actural_error=norm(xkerror);%输出迭代数据fprintf('第%d次迭代结果如下:\n',k)fprintf('起始点:x%d0=[%f %f]\n',k,xk(1),xk(2))fprintf('中间点:x%d1=[%f %f]\n',k,xk1(1),xk1(2))fprintf('终点:x%d2=[%f %f]\n',k,xk2(1),xk2(2))fprintf('映射点:x%d3=[%f %f]\n',k,x3(1),x3(2))fprintf('第一个步长:a%d1=%f\n',k,a1)fprintf('第二个步长:a%d2=%f\n',k,a2)fprintf('第一个方向:d%d1=[%f %f]\n',k,d1(1),d1(2))fprintf('第二个方向:d%d2=[%f %f]\n',k,d2(1),d2(2))fprintf('实际收敛精度:%f\n',actural_error)%求出起始点,中间点,终点,映射点处的函数值syms x1 x2;fun1=fun(x1,x2);fun1=inline(fun1);f0=feval(fun1,xk(1),xk(2));f1=feval(fun1,xk1(1),xk1(2));f2=feval(fun1,xk2(1),xk2(2));f3=feval(fun1,x3(1),x3(2));%确定函数值下降最多的方向Inc(1)=f0-f1;Inc(2)=f1-f2;[Incm,column]=max(Inc);%判断是否更换搜索方向F1=f0;F2=f2;F3=f3;temp1=(F1-2*F2+F3)*(F1-F2-Incm)^2;temp2=0.5*Incm*(F1-F3)^2;if(Inc(1)>Inc(2)&&F3<F1&&temp1<temp2)    d1=d2;d2=xk2-xk;xk=x3;elseif(Inc(1)<Inc(2)&&F3<F1&&temp1<temp2)d2=xk2-xk;xk=x3;elsexk=xk2;endk=k+1;
end

Matlab程序——修正鲍威尔Powell法相关推荐

  1. 鲍威尔方法c语言程序,鲍威尔法编程-powell法编程-c语言编程-c++6.0.doc

    鲍威尔法编程-powell法编程-c语言编程-c++6.0.doc include stdio.hdefine N 2float gsfloat zNfloat f;f10*z0z1-5*z0z1-5 ...

  2. 鲍威尔c 语言程序,鲍威尔法编程-powell法编程 c语言编程 c++6.0

    fafu js 优化 #include #define N 2 float gs(float z[N]) { float f; //f=10*(z[0]+z[1]-5)*(z[0]+z[1]-5)+( ...

  3. anp的matlab程序实现,ANP 网络分析法(ANP)作为一种决策过程 联合开发网 - pudn.com

    ANP 所属分类:matlab例程 开发工具:matlab 文件大小:5KB 下载次数:30 上传日期:2018-10-18 16:51:49 上 传 者:xiji 说明:  网络分析法(ANP)作为 ...

  4. 牛顿-拉普森法求解线性方程组原理及matlab程序

    牛顿-拉普森法求解线性方程组原理及matlab程序 牛顿-拉普森法原理 Nowton-Raphson方法matlab程序? 牛顿-拉普森法原理   在多变量微积分和矩阵理论的交叉点是求解非线性代数方程 ...

  5. matlabff2函数_罚函数法MATLAB程序.doc

    罚函数法MATLAB程序 一.进退法.0.618法.Powell法.罚函数法的Matlab程序设计罚函数法(通用)function y ff x,k y -17.86*0.42*x 1 / 0.8+0 ...

  6. 用POWELL法求极小值:Rosenbrock函数

    函数: 一.题目分析: 在数学最优化中,Rosenbrock 函数是一个用来测试最优化算法性能的非凸函数,由 Howard Harry Rosenbrock 在 1960 年提出 .也称为 Rosen ...

  7. matlab欧拉法程序,欧拉法matlab程序.doc

    欧拉法matlab程序.doc 1.Euler法function[x,y]=naeuler(dyfun,xspan,y0,h)x=xspan(1):h:xspan(2);y(1)=y0;forn=1: ...

  8. 用matlab计算潮流牛拉法,matlab潮流计算

    <matlab潮流计算>由会员分享,可在线阅读,更多相关<matlab潮流计算(14页珍藏版)>请在人人文库网上搜索. 1.附录 1使用牛顿拉夫逊法进行潮流计算的Matlab ...

  9. 鲍威尔法源程序码matlab,鲍威尔算法matlab程序f.doc

    鲍威尔算法matlab程序f.doc functionf=fun(x)f=10*(x(1)+x(2)-5)^2+(x(1)-x(2))^2;functionf=fx(x0,alpha,s)x1=x0+ ...

  10. matlab dfp法,DFP算法及Matlab程序(最新整理)

    <DFP算法及Matlab程序(最新整理)>由会员分享,可在线阅读,更多相关<DFP算法及Matlab程序(最新整理)(7页珍藏版)>请在人人文库网上搜索. 1.作 业 二用 ...

最新文章

  1. Java 内部类及其原理
  2. python zen_Python的宗旨(Zen of Python)
  3. Android如何把 内容复制到剪贴板
  4. api可以主动采集用户数据吗_现在的前端框架全是通过API获得数据,如何记录用户登录状态?...
  5. Spring Boot(一)—— Spring Boot 入门
  6. CodeForces - 1538G Gift Set(二分)
  7. 讲讲 group by 的plus版
  8. getContentResolver().query()方法selection参数使用详解(转)
  9. C# 9 Lambda 小幅升级
  10. 20160828_第4周周报
  11. 运算符优先级与结合性
  12. 备战520|Python花式表白的几种姿势
  13. ComboBox信息读取
  14. Linux基于升序链表的定时器
  15. 指数分布的极大似然估计
  16. QT入门学习(一):什么是QT
  17. python里创建数据库表Column常用参数总结
  18. 三阶魔方CFOP还原方法图解
  19. 正大国际期货:什么是黄金保证金交易?黄金保证金交易包含哪些要点?
  20. SemanticKITTI 数据集(ICCV 2019)

热门文章

  1. Office 2010 新特性 (二) Word 2010
  2. 图像处理中调用matlab自带均值滤波、高斯滤波和中值滤波函数的案例以及自编均值滤波的案例。
  3. 海外服务器IP为什么被封以及解决方案
  4. 关于人工智能不会使大脑变懒惰的议论文_模拟人类大脑 :人工智能的救赎之路 ?...
  5. c语言源程序最多可能由组成,一个c语言源程序是由什么组成_后端开发
  6. JAVA开发的人力资源管理系统
  7. (附源码)计算机毕业设计SSM旅游网站设计
  8. Java移位运算符原来这么简单
  9. Android 键盘映射
  10. 修改jar包中的配置文件