1、求大神..黄金分割法求f=sin(x)+cos(2x)的最小值,1<=x<=2.用matlab编程

先创建一个函数

function

[F]=f(x)

F=sin(x)+cos(2*x);

在建立一个M文件

clear;

a=1,b=2;

x1=a+0.382*(b-a);

x2=a+0.618*(b-a);

while((b-a)>0.000000000000001)

if(f(x1)

a=a;

b=x2;

x2=x1;

x1=a+b-x2;

elseif(f(x1)>f(x2))

a=x1;

b=b;

x1=x2;

x2=a+b-x1

else(f(x1)==f(x2))

a=x1;

b=x2;

x1=a+0.382*(b-a);

x2=a+0.618*(b-a);

end

end

计算出来接近于0,通过plot函数绘制出该函数的图形也专可以看属到最小值接近于0,希望对你有帮助

2、求黄金分割法求解y=x^4-4*x^3-16*x+4的最小值

x^4 。。。是下单峰函数,最小值 在区间 [-10,10]。

黄金分割法 找 最小值,x 精度 1.0E-07

#include

#include

#include

double eq(double x)

{

double y;

double x3;

x3 = x * x * x;

y = x3 * x - 4.0 * x3 - 16.0 * x + 4.0;

return y;

}

void main()

{

double x1,x2,y1,y2,a,b,x;

int i,j,n=0;

a= -10.0; // 左边界

b = 10.0; // 右边界

Lab1:

x2 = a + 0.618 * (b - a);

y2 = eq(x2);

Lab2:

x1 = a + 0.382 * (b - a);

y1 = eq(x1);

Lab3:

if (fabs(b-a) < 1.0E-07) {

x = (a + b) / 2.0;

printf("x=%lf ymin=%lf \n",x,eq(x));

exit(0);

} else {

if (y1 < y2) {b=x2; x2 = x1; y2 = y1; goto Lab2;};

if (y1 == y2) {a = x1;b=x2; goto Lab1;};

if (y1 > y2) { a = x1;x1=x2;y1=y2;

x2 = a + 0.618*(b-a); y2=eq(x2);

goto Lab3;};

};

}

x=3.355295 ymin=-74.037759

3、求大神..黄金分割法求f=sin(x)+cos(2x)的最小值,1<=x<=2.用matlab编程

先创建一个函数

function [F]=f(x)

F=sin(x)+cos(2*x);

在建立一个M文件

clear;

a=1,b=2;

x1=a+0.382*(b-a);

x2=a+0.618*(b-a);

while((b-a)>0.000000000000001)

if(f(x1)

a=a;

b=x2;

x2=x1;

x1=a+b-x2;

elseif(f(x1)>f(x2))

a=x1;

b=b;

x1=x2;

x2=a+b-x1

else(f(x1)==f(x2))

a=x1;

b=x2;

x1=a+0.382*(b-a);

x2=a+0.618*(b-a);

end

end

计算出来接近于0,通过plot函数绘制出该函数的图形也可专以看到最小值属接近于0,希望对你有帮助

4、试用黄金分割法求函数y=x+20/x的极小点和极小值

当x>0时

y=x+20/x

>=2√20=4√5

当x=20/x 即 x=2√5时取得极小值4√5.

极小点为(2√5,4√5)

当x

5、利用黄金分割法求函数在区间【0,3】的极大值点,函数为:当x《2时,f(x)=x/2,当x》2时,f(x)=-x+3.

应该是可以的,a,b的范围需要设置正确应该保证a<2

6、大神给看看用VB编程,黄金分割法 满足对于任意一个Y=f(X)的函数,均能找出给定区间(a,b)上最小值。

'主程序段写:

dim a as single

dim b as single

dim e as single

dim q as single

dim x1 as single

dim x2 as single

dim y1 as single

dim y2 as single

a=val(form1.text1.text) '从text1获取的值

b=val(form1.text2.text) '从text2获取b的值

e=val(form1.text3.text) '从text3获取e的值

q=0.618

x1=a+(1-q)*(b-a)

x2=a+q*(b-a)

y1=f(x1)

y2=f(x2)

do

if y1<=y2 then

b=x2

x2=x1

y2=y1

x1=a+(1-q)*(b-a)

y1=f(x1)

else

a=x1

x1=x2

y1=y2

x2=a+q*(b-a)

y2=f(x2)

end if

loop while b-a<=e

x=0.5*(a+b)

y=f(x)

form1.text4.text=y

'主程序结束

'自行编写任意函数关系y=f(x)的子函数代码

7、MATLAB 黄金分割法 求最小值

figure(1);clf(1);

plot(0:0.1:3,subs(y,x,[0:0.1:3]));

hold on;

ASize=size(array);

h1=plot(array(1,1),0,'r.');

h2=plot(array(1,2),0,'r.');

for index=1:ASize(1,1);

pause(0.5);

set(h1,'xdata',array(index,1));

set(h2,'xdata',array(index,2));

drawnow;

end

%

以下是输出语专句属

Miniment = (a+b)/2;

8、C语言 用黄金分割法求函数的最小值和取最小值时的x

给,已经编译运行确认: #include"math.h" #include"stdio.h" #definef(x)x*x+2*x+1//一元函数,这里按照你的要求写的是:x2+2x+1 //函数功能是用黄金分割法实现求一元函数的最优解 doublehj(double*a,double*b,doublee,int*n) {doublex1,x2,s;
if(fabs(*b-*a)<=e)
s=f((*b+*a)/2);
else
{x1=*a+0.382*(*b-*a);
x2=*a+0.618*(*b-*a);
if(f(x1)>f(x2))
*a=x1;
else
*b=x2;
*n=*n+1;
s=hj(a,b,e,n);
} returns; } main() {doubles,a,b,e;
intn=0;
scanf("%lf%lf%lf",&a,&b,&e);//输入区间[a,b]和精度e的值
s=hj(&a,&b,e,&n);//调用hj函数,其中n代表迭代次数
printf("a=%lf,b=%lf,s=%lf,n=%d ",a,b,s,n);
} 运行时: 输入:0.60.50.1 输出结果为: 0.60.50.1 a=0.600000,b=0.500000,s=2.402500,n=0

9、用黄金分割法求一元函数F(x)=2x²+3x+5的极小值点。

解:(1)∵函数f(x)=x2-3x+c经过点(0,2) 则c=2 ∴该函数的解析式为f(x)=x2-3x+2 (2)由(1)知f(x)=c=2 ∴2≤5x+5 解得x≥–3/5 ∴该不等式的解为x≥–3/5

10、matlab编写黄金分割法求f(x)=x2+2x在区间[-3,6]的极小值程序 谢谢 九万火急急急急!!! 不是c程序

你要很精确的解吗?如果不要的话那就很简单了。

x=-3:0.00001:6;中的精度你自己选,太小了会比较慢

y=x.^2+2*x;

[n m]=min(y);

这个返回的就是X和对应的最小值;

minHJ函数matlab黄金分割法,黄金分割法求极小值相关推荐

  1. 利用0.618法(黄金分割法)求极小值

    [书籍]马昌风-最优化方法与MATLAB程序设计 书中例题编程详解 利用0.618法(黄金分割法)求极小值 思路图解: MATLAB程序如下: clc,clear; epsilon=10^-4; ph ...

  2. MATLAB编写黄金分割法

    以下是使用MATLAB编写黄金分割法求解 f ( x ) = x 2 + 2 x f(x)=x^2+2x f(x)=x2+2x在区间 [ − 3 , 5 ] [-3,5] [−3,5]上的最小值的代码 ...

  3. matlab中怎么求函数的最小值,matlab求函数的最小值

    将上述各函数值进行比较,最终确定出在 D 内的最大值和最小值. 3.函数求偏导数的 MATLAB 命令 MATLAB 中主要用 diff 求函数的偏导数,用 jacobian 求 ...... 第七讲 ...

  4. matlab 不允许函数定义,MATLAB中此上下文中不允许出现函数定义,急求~

    点击查看MATLAB中此上下文中不允许出现函数定义,急求~具体信息 答:从你讲的问题,虽然没讲太清楚,但我推测,你可能写了个脚本程序文件,其中定义了子函数,在运行时就弹出了这个提示.一般情况下,在函数 ...

  5. Matlab三元隐函数求极值,matlab用三重循环求一个三元函数的最大值所对应的x1,x2,x3...

    用MATLAB实现for循环 t=2;whileS(t)>Pstrong&&t 求一个MATLAB循环语句表示这个矩阵200分 这样的,i和j是内部虚数变量,避免轻易使用.cle ...

  6. matlab对多元函数求导,MATLAB多元函数导数求极值或最优值Word版

    <MATLAB多元函数导数求极值或最优值Word版>由会员分享,可在线阅读,更多相关<MATLAB多元函数导数求极值或最优值Word版(9页珍藏版)>请在人人文库网上搜索. 1 ...

  7. 2021-01-07 matlab数值分析 非线性方程求根 牛顿法

    matlab数值分析 非线性方程求根 牛顿法 %牛顿法求非线性方程的根: % 输入:fun--非线性函数:dfun--非线性函数导数:x0--初始值:tol--精度: % 输出:x--非线性方程数值根 ...

  8. matlab绘制sign函数,MATLAB的Symbolic Math Toolbox详解

    MATLAB 符号数学工具箱 入门 创建符号数字,变量和表达式 创建符号数字 创建符号变量 创建符号表达式 重复使用符号对象名 创建符号函数 创建符号矩阵 使用存在的符号变量 创建矩阵的同时生成元素 ...

  9. matlab 中序列求极值的方法,Matlab中求序列的极值

    我们知道,在Matlab中有专门求序列最大值和最小值的函数,分别是Max 和 Min,但是有时候我们不满足于求整个序列的最值,而是对序列的极值,也就是局部的最值感兴趣.对于解析函 数,这个比较简单,只 ...

  10. matlab对多项式求导,matlab中多项式求导

    1 0.5 0 -0.5 -1 -1.5 -2 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 4.对比用多项式函数的 polyder 函数及符号函数中的 diff 函数,求导 x2+2x ...

最新文章

  1. Http环境下的保持连接方式
  2. linux查找文件命令find
  3. 吴恩达新年公开推荐这个设计师,上千人点赞
  4. Aspx页面生命周期(转)
  5. ClassLoader工作机制
  6. 2015年山石网科面试题
  7. 从无盘启动看 Linux 启动原理
  8. 李航《统计学习方法》---感知机
  9. 转载:JDBC连接数据库教程,postgreSQL
  10. 【clickhouse】clickhouse 副本与分片 副本详解
  11. 82-Spark的StandLone模式调试
  12. linux redhat 防火墙,Redhat 7 防火墙常用配置
  13. 【版本控制】git学习笔记(一)
  14. Invalid url-pattern /admin/*.jsp in filter mapping
  15. python中find函数的使用方法_详解Python中find()方法的使用
  16. 利用Volatility进行Windows内存取证分析(二):内核对象、内核池学习小记
  17. 《与韩荆州书》--李白经典求职信
  18. 【信息安全】屁股决定脑袋的COSO内控框架,一篇对COSO的趣评 [转贴]
  19. yolo-v3代码学习
  20. 移动硬盘如何分区?分区软件推荐:

热门文章

  1. 校园网显示dns服务器解析出错,天翼校园网dns解析出错怎么办
  2. java for 死循环_关于java编程死循环的应用
  3. “自贸云”+“自贸大数据”将加速辽宁自贸区建设与创新
  4. 超大源码库使用git clone --mirror克隆远程代码制作镜像失败的处理办法
  5. Mongodb数据库(上)
  6. 4、智慧变电站 - 外围电塔及电线绘制
  7. Zookeeper集群搭建(多节点,单机伪集群,Docker集群)
  8. 高德地图开放平台(js免费引入)
  9. kettle日志解析_Kettle运行日志记录
  10. [安全]在Windows日志里发现入侵痕迹(转载)