'测试表达式 x^2+2*x'测试区间[-3 5]'
测试精度e=0.2
'书上最小值x=-1.0255 f=-0.999
Function RESULT(ByVal expression As String, ByVal x As String) As Single 
Dim tmpStr As String      
tmpStr = Replace(UCase(expression), "LN", "Log")     
tmpStr = Replace(tmpStr, "X", x)     
Dim OBJ As Object     
Set OBJ = CreateObject("MSScriptControl.ScriptControl")    
OBJ.Language = "vbscript"    
RESULT = OBJ.Eval(tmpStr)     
Set OBJ = Nothing 
End Function
Private Sub Command1_Click()
Dim e As Single
Dim a1 As String
Dim a3 As String
Const r = 0.618
Dim f As String
f = InputBox("输入表达式")
a1 = InputBox("输入区间左则值")
a3 = InputBox("输入区间右则值")
e = CSng(InputBox("输入允许误差值"))
a11: a11 = CStr(CSng(a3) - r * (CSng(a3) - CSng(a1))) 
f1 = RESULT(f, a11)  
a12:  a12 = CStr(CSng(a1) + r * (CSng(a3) - a1)) 
f2 = RESULT(f, a12)
22: If Abs((f2 - f1) / f1) <= e Then        
If Abs((CSng(a12) - CSng(a11)) / CSng(a11)) <= e Then     
GoTo 33    
Else           
a1 = CStr(a11)    
a3 = CStr(a12)   
GoTo a11       
End If  
Else            If f1 > f2 Then       
a1 = CStr(a11)         
a11 = CStr(a12)        
f1 = f2          
GoTo a12         
Else     
a3 = CStr(a12)    
a12 = CStr(a11)  
f2 = f1        
a11 = CStr(CSng(a3) - r * (CSng(a3) - CSng(a1)))      
f1 = RESULT(f, a11)    
GoTo 22      
End If  
End If
33: If f1 > f2 Then
ax = CSng(a12) 
fax = RESULT(f, a12)  
Else  
ax = CSng(a11) 
fax = RESULT(f, a11) 
End If
Print "最小值ax=" & ax Print "
最小值fax=" & fax
End Sub
Private Sub Form_Load()
Form1.WindowState = 2
End Sub

黄金分割法求函数最小值相关推荐

  1. boost::math模块使用 Brent 方法求函数最小值的示例

    boost::math模块使用 Brent 方法求函数最小值的示例 实现功能 C++实现代码 实现功能 boost::math模块使用 Brent 方法求函数最小值的示例 C++实现代码 #inclu ...

  2. 用模拟退火算法(simulated annealing / SA)求函数最小值

    #用模拟退火算法(simulated annealing / SA)求函数最小值 已知函数 f(x) = (x-1)^2 + 3,是求其在[ -2,2 ]的最小值时刻的解 下面为运用模拟退火算法求解上 ...

  3. 基于遗传算法求函数最小值

    一.遗传算法概述 遗传算法( genetic algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的"物竞天择.适者生存"的演化法则.遗传算法是把问题参数编码为染色体 ...

  4. 【Machine Learning 六】梯度下降法(基于Matlab 求函数最小值)

    算法原理 梯度下降法是一个最优化算法,可以用来求一个函数的最小值,最大值等,也常用于人工神经网络中更新各个感知器之间的权值,求出cost function的最小值等,应用广泛.  其原理简单,就求函数 ...

  5. 遗传算法求函数最小值(多维)1

     目标函数:  代码: %%实值遗传算法求函数极值%%%% %%%%%初始化参数%%%%% clear all; %清除所有变量 close all; %清图 clc; %清屏 NP=100; %染色 ...

  6. 遗传算法求函数最小值(多维)2

     目标函数:  代码: function o=func21(x) o=sum(x.^2-10*cos(2*pi.*x)+10); end %%实值遗传算法求函数极值%%%% %%%%%初始化参数%%% ...

  7. 梯度下降求函数最小值C++样例

    强力推荐大家阅读<深度学习的数学>一书,日本作家所写(通俗易懂),可当作课外读物阅读 #include<iostream> #include<cmath> usin ...

  8. MATLAB之用黄金分割法求函数极小点

    函数:,初始点,精度 主程序: clc clear f=@(x) (x-3)*sqrt(x); fplot(f) a=-100; b=100; [fx,x]=huangjin(f,[a b],100) ...

  9. matlab遗传算法求多元函数最小值,matlab遗传算法求函数最小值

    function obj=yichuan(lb,ub,px,pm) %lb,ub为自变量的下界与上界,px为杂交概率,pm为变异概率 popsize=40; %设定种群大小为40 maxgen=500 ...

最新文章

  1. 近期数据挖掘学习_计划安排及相关资料(定期更新)
  2. Python调用外部程序——os.system()和subprocess.call()
  3. DirectShow Filter 基础与简单的示例程序
  4. BZOJ2131 免费的馅饼【线段树优化DP】
  5. Mysql 分区介绍(二) —— RANGE分区
  6. bose耳机信号断续_最强真无线降噪耳机?BOSE QC Earbuds消噪耳塞上手评测
  7. JavaScript试题练习题
  8. java 马克思_单链表-Java
  9. CentOS7 下安装 Redis
  10. MIT计算机专业本硕连读几年,2020年麻省理工学院读研要多久
  11. JavaScript中的六种错误类型
  12. 2.分布式服务架构:原理、设计与实战 --- 彻底解决分布式系统一致性的问题
  13. 深圳中专计算机专业排名,深圳十大民办中专排行2019
  14. 【PAT】1105 Spiral Matrix(柳婼的思想详细解读)
  15. 小米6X 线刷兼救砖_解账户锁_纯净刷机包_教程
  16. 不小心把移动硬盘设置为活动分区后的解决方法
  17. NOIP提高组【JZOJ4809】挖金矿
  18. Android:异步处理之Handler+Thread的应用(一)
  19. 2019年,把时间分给靠谱的人和事!(三月复盘)
  20. addonsmaker怎么制作_我的世界addons制作器

热门文章

  1. vue Elementui 引入第三方icon(阿里矢量库)
  2. 除了 P站,还有这些 站 ~~
  3. 【机器学习】五种超参数优化技巧
  4. html中的div是什么意思?
  5. Cesium解决传感器抖动问题
  6. chrome上字体模糊问题处理
  7. Windows下运行python脚本报错“ImportError: No Module named ...”的解决方法
  8. HDU2058 The sum problem(数学问题)
  9. 企业快速寄件打单教程
  10. unity传统文化交互以及摄像头移动和旋转