MATLAB中利用牛顿法求解目标函数的局部最小值
来源:互联网 发布:mac桌面怎么建立文件 编辑:程序博客网 时间:2024/06/08 11:36
主函数(main_newton.m)
% Newton法求解目标函数的局部最小值% Meringue% 2017/4/1% ---------------------------% ---------------------------clcclear allclose all% 迭代参数x0 = -100; % 初始值err0 = inf; % 误差初始设为infiter = 0;% 迭代次数errMax = 1e-3; % 最大容许误差iterMax = 100; % 最大迭代次数% 迭代过程x(iter+1) = x0;while err0>errMax % 迭代终止条件1:达到最大迭代次数 if iter == iterMax disp('达到最大迭代次数!'); break; end % Newton迭代过程 iter = iter+1; [~,dy,d2y] = func1(x(iter)); x(iter+1) = x(iter)-dy/d2y; % 迭代终止条件2:找到满足精度要求的解 if abs(x(iter+1)-x(iter))<errMax disp('找到满足精度要求的解!') disp(['x = ',num2str(x(iter+1))]); disp(['迭代次数为',num2str(iter-1)]); break; endend% 迭代结果展示plot(x)xlabel('t');ylabel('x')
目标函数(func1.m)
function [y,dy,d2y] = func1(x)% y = x.^2-2y = x.^4-2*x^2+1;dy = 4*x^3-4*x;d2y = 12*x^2-4;
运行结果
目标函数在x = -1取得极小值
迭代次数为10
0 3
- MATLAB中利用牛顿法求解目标函数的局部最小值
- MATLAB中利用最速下降法求解多元函数的局部极小值
- 利用Newton Raphson、最陡梯度法求解函数最小值
- 利用牛顿法接非线性方程组的Matlab程序实例
- matlab中求解线性方程组的rref函数
- 模拟退火求解函数的最小值问题
- 牛顿法求解立方根
- matlab 中函数regionprops 求解区域面积的原理
- matlab实现牛顿迭代法求解非线性方程组
- matlab实现牛顿迭代法求解非线性方程组
- 牛顿法(newton's method)求解函数极值
- 局部最小值的算法
- tensorflow的局部最小值
- 利用牛顿迭代法求解非线性方程组
- 单变量线性回归中的梯度下降法求解代价函数的最小值
- 简单的梯度下降法求正玄函数局部最小值
- MATLAB 牛顿插值函数
- 牛顿法求解非线性方程
- 记广东公共交通大数据竞赛—— 公交线路客流预测
- HDU
- 从Oracle RAC角度看跨数据中心的存储双活配置注意事项
- 归并排序
- PHP mysqli 操作数据库
- MATLAB中利用牛顿法求解目标函数的局部最小值
- 动手写Makefile
- Unity之Tango运动跟踪(一)
- Queue Reconstruction by Height
- 5个人站队,每个人不在原位置有多少种站法
- IDE都是UTF-8,mysql编码也是UTF-8,仍然中文乱码
- Java中输入输出(IO)和流的基本概念
- 使用位操作实现加减乘除运算
- JavaScript创建对象的九种方式