修正牛顿法 matlab,基于MATLAB的修正牛顿法
话不多说,直接上干货。这是基于MATLAB的源代码,目标函数我选择了一个二维函数,根据自己需求,更改目标函数,初始迭代点以及收敛精度
第一部分:目标函数 根据自己需求,更改目标函数!!!
function y=ObjFun(x)
%目标函数 根据实际情况修改
%输入参数x[x1,x2,...,xn];
%输出参数y
%二维目标函数
y =60-10*x(1)-4*x(2)+x(1)*x(1)+x(2)*x(2)-x(1)*x(2);
end
第二部分:求解最优步长函数 不需要更改!!!
function a=OptStep(x,S)
%一维搜索,求最优步长
syms b %假设步长为b
x=x+b.*S;
y=ObjFun(x);
Y=diff(y); %求导,导数为0的点,即为所求最优步长
a=solve(Y==0);
a=double(a);
end
第三部分:主体程序,根据自己需求,更改函数中的初始迭代点,收敛精度,梯度,梯度的模以及里面的目标函数!!!
function [X,Y]=NewtonMethod
%修正牛顿法
% X 是最优解
% Y 是最优值
%% 第一步:给定初始迭代点x,收敛精度err,k=1
k=1;
x(:,k)=[0;0];
err=0.001;
syms x1 x2
f=60-10*x1-4*x2+x1*x1+x2*x2-x1*x2; %目标函数
%% 第二步:计算梯度和模并取搜索方向,海森矩阵以及逆矩阵
FG=gradient(f,[x1 x2]); %f的梯度
fg=sqrt(FG(1)^2+FG(2)^2); %梯度的模
Hess=hessian(f,[x1,x2]);
while(1)
%% 第三步:进行收敛判断
fgvalue=double(subs(fg,[x1,x2],x(:,k)')); %求解梯度的模
if fgvalue<=err
X=x(:,k);
Y=ObjFun(X);
break
else
%% 第四步求最优步长以及求新迭代点
HessValve=double(subs(Hess,[x1 x2],x(:,k)')); %求解x(:,k)处的海森矩阵
FGvalue=double(subs(FG,[x1,x2],x(:,k)')); %求解x(:,k)处的梯度
S=-(inv(HessValve))* FGvalue;
a=OptStep(x(:,k),S);
x(:,k+1)=x(:,k)+a.*S;
k=k+1;
end
end
end
ok,直接在命令窗口上运行 [X,Y]=NewtonMethod 就ok啦,看我不上传到资源上,索要积分,直接公开代码,点个赞,给个评论呗。
修正牛顿法 matlab,基于MATLAB的修正牛顿法相关推荐
- 电机测试matlab,基于MATLAB的电机故障诊断模型训练与测试平台
基于MATLAB的电机故障诊断模型训练与测试平台 于际河 [期刊名称]<计算机光盘软件与应用> [年(卷),期]2014(000)005 [摘要]基于MATLAB的可视化编程技术,设计电机 ...
- 同步电机调速matlab,基于matlab的永磁同步电机调速系统的仿真word格式
基于matlab的永磁同步电机调速系统的仿真word格式 摘 要本文首先介绍了永磁同步电机的国内外发展状况,然后介绍了永磁同步电机的结构及原理,接着建立了永磁同步电机的数学模型,并在此基础上用MATL ...
- 电机调速制动matlab,基于Matlab的三相异步电动机起动、调速和制动特性仿真
信息工程学院 专业方向设计任务书 专业班级 学生姓名 学 号 设计题目 基于Matlab的三相异步电动机起动.调速和制动特性仿真 设 计 任 务 书 设计要求: 以matlab软件为平台,搭建三相异步 ...
- 古塔问题matlab,基于 Matlab 对古塔变形趋势探究的数学模型
第31卷第 2期 2014年 6月 阜阳师范学院学报(自然科学版) Journal of Fuyang Teachers Co~ege(Natural Science) Vo1.31,No.2 Jun ...
- 电镀用整流电源设计matlab,基于MATLAB的三相整流电路的仿真研究毕业设计论文
基于MATLAB的三相整流电路的仿真研究毕业设计论文 西安航空职业技术学院 毕业设计论文西安航空职业技术学院毕 业 设 计(论 文)论文题目:基于 MATLAB 的三相整流电路仿真研究 所属系部:自动 ...
- 子空间迭代法 matlab,基于MATLAB的一类迭代分析
一般的计算方法教程如文献[1-5]都会介绍三种常见的迭代法,即Jacobi方法.Gauss-Seidel方法和SOR迭代.由于Gauss-Seidel方法充分利用了迭代过程的新信息[1,2],一般来说 ...
- 传输预编码matlab,基于MATLAB的MIMO系统预编码性能仿真教程.doc
基于MATLAB的MIMO系统预编码性能仿真教程 PAGE \* MERGEFORMAT - 33 - 摘要在现今的移动通信系统中,被极多的国际通信标准采纳为基础性关键技术的一种方法是多输入多输出的技 ...
- gps数据处理matlab,基于Matlab的数据处理方法在GPS高程拟合中的应用
基于Matlab的数据处理方法在GPS高程拟合中的应用 在分析GPS高程异常拟合模型实质的基础上,结合工程实例,顾及地球重力场的空间连续性特点,运用Matlab中的拟合插值函数Griddata等进行高 ...
- 动态规划生产存储matlab,基于Matlab的动态规划算法的实现及应用
龙源期刊网 http://www.doczj.com/doc/82f814a7bdd126fff705cc1755270722192e59ad.html 基于Matlab的动态规划算法的实现及应用作者 ...
最新文章
- Shared_from_this 几个值得注意的地方
- 用Pytorch实现逻辑回归分类
- IOS NSUserDefaults 讲解 用法
- 程序员真实写真:35岁前成功的12条黄金法则 (转)
- 创龙 C6000 DSP开发板众筹来袭
- Java设计模式----工厂模式-----简单工厂(静态工厂模式)
- pg数据库客户端linux,PostgresSQL客户端pgAdmin4使用
- JS中将json字符串转为json对象的三种方式
- 网易互娱2020-9月22日笔试题记录
- Android 在导航栏上添加一个截屏按键,点击进行截屏
- Windows Server 2008的介绍及其与Windows Server 2008 R2的区别
- 自动摘要生成(一):最大边界相关算法(MMR)
- 寒从足下起 冬季防病先护足
- windows7装机必备软件及设置
- WinForm PictureBox加载图片方法
- Selenium Webdriver 的使用java执行js代码 解决 ScriptEngine不支持浏览器内置对象window,document的问题
- 把宇宙138亿年压缩到1年
- 2022年年终总结---新方向,新期待
- 安装数据库显示参考服务器错误日志,Sql Server安装出错,安装程序配置服务器失败的解决方法小结...
- CIPU落地专有云:是“小众需求”还是“机会之门”?