matlab的共轭梯度法
共轭梯度法属于求解线性方程组的一种迭代法,其计算速度不算很快,但是在一些复杂的问题下,也有比较好的下效果,因为科研需要,根据理论编写了一下共轭梯度法的程序,特此分享:
1、原理步骤如下:
2、 编程的流程如下:
3、程序如下:
function [x] = CG_solver(A,b,x0,kmax)
%使用共轭梯度法求解 A · X = b线性方程组
% A方程组系数矩阵 b系数项 X0是迭代的初值(0向量就可以) kmax最多迭代次数
% wrote by Han JIale in 2022.07.04
xk=x0;
%附上初值
r0=b-A*xk;
k=0;
rk=r0;
rk_1=rk;
rk_2=rk_1;
pk_1=r0;while sqrt(sum(rk.^2))>=10^(-5) && (k<kmax) %停机准则,可以修改k=k+1;rk_2=rk_1;rk_1=rk;pk_2=pk_1;xk_1=xk;if k==1pk_1=r0;elsebetek_2=(rk_1'*rk_1)/(rk_2'*rk_2);pk_1=rk_1+betek_2*pk_2;endalphak_1=(rk_1'*rk_1)/(pk_1'*A*pk_1);xk=xk_1+alphak_1*pk_1;rk=rk-alphak_1*A*pk_1;end
x=xk;
end
matlab的共轭梯度法相关推荐
- 用matlab实现共轭梯度法求解实例,用MATLAB实现共轭梯度法求解实例
用MATLAB 实现共轭梯度法求解实例 康福 201103710031 一.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为最小,它们都属于约 ...
- 用matlab实现共轭梯度法求解实例,用MATLAB实现共轭梯度法求解实例.doc
实用标准文案 精彩文档 用MATLAB实现共轭梯度法求解实例 康福 201103710031 无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一定的限制条件下追求某一指标为 ...
- 共轭梯度法matlab实验报告,用matlab实现共轭梯度法求解实例.doc
用matlab实现共轭梯度法求解实例.doc 用MATLAB 实现共轭梯度法求解实例 康福 201103710031 1.无约束优化方法 1.1 无约束优化方法的必要性 一般机械优化设计问题,都是在一 ...
- matlab 截断共轭梯度法,最优化作业 共轭梯度法 matlab代码
syms f x1 x2 f=(1/2)*x1^2+x2^2; x=[2;1]; a=[1 0;0 2];% A g1=diff(f,x1); g2=diff(f,x2); g=[g1;g2];%导数 ...
- matlab 狄利克雷函数图像,Poisson image editing算法实现的Matlab代码解析
之前我发了数篇系列博文来仔细研究Poisson Image Editing算法,每次重新审视和深入,仿佛都能有更为深刻的认识和很大的收获.这应该算是我这个系列的完结篇,会用用Matlab代码一点一点的 ...
- 你一定不知道的蜜月海岛-苏梅岛
蜜月圣地 提到泰国最浪漫的蜜月之岛,那一定非苏梅岛莫属.虽是泰国的第三大岛,但苏梅岛被开发得很晚,相对南部普吉岛来说,这里保留了更多自然淳朴的气息,尤其是绵密细软的白沙滩.傍晚的椰林树影.奢华舒适的临 ...
- 共轭梯度下降法matlab,用matlab实现最速下降法,牛顿法和共轭梯度法求解实例
用matlab实现最速下降法,牛顿法和共轭梯度法求解实例 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实验的题目和要求 1.所属 ...
- 利用 MATLAB 编程实现共轭梯度法求解无约束最优化问题
本文章包含以下内容 1.FR 共轭梯度法的算法流程图: 2.MATLAB 编写 FR 共轭梯度法求解无约束优化问题的函数,要求采用 黄金分割法精确一维搜索,用数值微分法计算梯度(函数式 M 文件,精度 ...
- 用共轭梯度法求极小值matlab,用MATLAB实现最速下降法_牛顿法和共轭梯度法求解实例——张小强.doc...
机电产品优化设计 课程设计报告 姓 名 :张 小 强 学 号 :201222080633 学 院 :机械电子工程学院 实验的题目和要求 一.课程名称:最优化设计方法 二.实验日期:2013年6月27日 ...
- matlab共轭梯度法_优化算法之牛顿法
牛顿法(Newton's method)是一种在实数域和复数域上近似求解方程的方法,,它使用函数f(x)的泰勒级数的前面几项来寻找方程f(y)=0的根. 牛顿法最初由艾萨克·牛顿在<Method ...
最新文章
- 如何调出matlab的debug按键
- Nagios安装与配置
- php截取字符串后编码不对,php截取字符串出现中文乱码问题的解决
- 一个ip对应多个域名多个ssl证书配置-Nginx实现多域名证书HTTPS
- 二、bootstrap table 父子表和行列调序
- 正在使用的项目,项目名那里出现了红色感叹号?怎么去除?
- 一款非常牛逼的 Java 爬虫框架!(请低调使用)
- ENVI学习总结(十五)——遥感影像分类与应用
- 在AspNetCore中json序列化日期格式自定义
- 《我和PIC单片机:基于PIC18》——2.2 MPLAB IDE集成开发环境
- 福师《计算机应用基础》在线作业三,福师《计算机应用基础》在线作业一 电子计算机主要以划分发展阶段.docx-得力文库...
- 硬件只要一块esp8266 nodemcu板+几根杜邦线实现远程PC开机,软件全开源(替代智能开关)
- 产品经理面试必问5大问题 (六)
- cad转excel插件c2e_cad表格转换器2016
- TLC固态硬盘暴力读写寿命测试
- 秉持技术普惠的华为,致力于无处不在的联接
- Power BI中的ArcGIS地图
- String.contains()方法
- QT 中“ std::cerr ”的使用方法
- Bootstrap-maxlength使用