我没有从数学方面处理你的问题的知识,但从编程的角度来看,有一点我可以注意到.

确实你是对的.在获得结果之前需要进行太多次迭代:

Elapsed time is 6.487824 seconds.

count =

292945

定义步长以接近最终结果时,必须优化步长.否则你要么接近答案要么太慢,要么你已经多次通过最佳答案并绕着它做一个曲折,因为你的步长太大了.

为了优化步长,我首先根据你的脚本形成一个函数(加上一些小的修改):

function [solution, count, T] = SDhilb(d, step)

h = hilb(d);

tic

b = ones(d, 1);

solution = zeros(d, 1);

residual = h * solution - b;

res2 = residual' * residual;

tol = 10^(-6);

count = 0;

while res2 > tol;

roe = res2/(residual' * h * residual);

solution = solution - step * roe * residual; % here the step size appears

residual = h * solution - b;

count = count + 1;

res2 = residual' * residual; % let's calculate this once per iteration

end

T = toc;

现在将此函数用于一系列步长(0.1:0.1:1.3)和一对希尔伯特矩阵(d = 2,3,4,5),显然1不是有效的步长:

相反,步骤= 0.9似乎更有效率.让我们看看hilb(5)的效率如何:

[result, count, T] = SDhilb(5, 0.9)

result =

3.1894

-85.7689

481.4906

-894.8742

519.5830

count =

1633

T =

0.0204

这比两个数量级快了两个数量级.

以类似的方式,你可以尝试不同的tol值来看看它对速度的影响有多大.在这种情况下,没有最佳值:公差越小,您需要等待的时间越长.

matlab求解线性系统的解,matlab – 最速下降,找到具有希尔伯特矩阵的线性系统的解...相关推荐

  1. matlab求解微分式,如何用Matlab求微分方程de符号解

    1.dsolve()函数 求解常微分方程的通解在求通解问题 % syms y(x) % y=dsolve(x^2+y+(x-2*y)*diff(y)==0)这里插入代码片 求解常微分方程的初边值问题% ...

  2. matlab求解不等式方程组解集,matlab求不等式方程组的可行解

    求高手用matlab解一个三元的方程组 我算的你这个解都是无穷大.具体过程如下:第一步:建立M文件函数myf.mfunctionf=myf(x)f(1)=600+x(1)*cos(10)+x(2)*s ...

  3. matlab求解全微分函数,利用MATLAB求解微分方程的方法探索

    引言 科学问题和工程问题经常需要求取微分方程的解,MATLAB 的强大数值运算和符号运算能力,能够方便地进行各种解析运算,是方便实用.功能强大的数学软件之一. 1线性微分方程求解 1.1线性常微分方程 ...

  4. matlab求解常系数线性差分方程,用matlab实现线性常系数差分方程的求解

    用matlab实现线性常系数差分方程的求解 数字信号处理课程设计 题目: 试实现线性常系数差分方程的求解 学院: 专业: 班级: 学号: 组员: 指导教师: 题目:用Matlab实现线性常系数差分方程 ...

  5. matlab求解常系数线性差分方程,基于matlab的线性常系数差分方程求解

    基于matlab的线性常系数差分方程求解 数字信号处理课程设计 题目: 基于MATLAB的线性常系数差分方程求解 学院: 专业: 班级: 学号: 姓名: 指导教师: 目 录 摘 要.1 第一章 背景3 ...

  6. matlab求解多项式系数,C++和MATLAB混合编程求解多项式系数(矩阵相除)

    摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...

  7. matlab求解非线性常微分方程组,Matlab数值求解非线性常微分方程 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...

    我最近也在用牛顿迭代解一个非线性方程组 Newton迭代有程序 我拷给你你 编写Newton迭代法的M文件NewtonIterate.如下: function s=NewtonIterate(x,ep ...

  8. 偏微分方程matlab求解,偏微分方程组的MATLAB解法.pdf

    偏微分方程组的MATLAB解法.pdf 第第3737 卷第卷第23 期期··学术学术 湖南农机湖南农机 年年35 月月 第37 卷第3 期 张向利:户县拖拉机及驾驶员年度检审现状及对策 Vol.37V ...

  9. matlab求解极限与倒数,matlab实验二__极限与导数

    实验二 极限与导数 [实验目的] 1.了解函数极限.导数的基本概念. 2.学习.掌握MATLAB 软件有关求曲线.导数的命令. [实验内容] 1.判断极限00 11lim cos ,limsin x ...

最新文章

  1. c语言地理坐标存储 转发,纬度/经度坐标的2个列表之间的地理距离
  2. VC++ 单文档项目显示打开的文件
  3. 把Qt的界面文件(.ui文件)生成源文件(.h或.cpp)封装成链接库
  4. Java堆转储:您可以完成任务吗?
  5. 基于JAVA+SpringBoot+Mybatis+MYSQL的在线动漫信息平台
  6. 安装问题的审计(产生漏洞,抓包)
  7. 数值补码和原码计算方法介绍
  8. Atitit 查找算法 艾提拉大总结 目录 1. 查找算法分类 1 1.1. 简单查找算法之折半查找、插值查找、斐波那契查找 1 1.2. 按照数据结构查找法分类 hash 表 1 2. 第8章查找
  9. 流程图软件用哪款: Draw.io, 亿图图示, ProcessOn. 做最适合你的流程图
  10. 云主机-本地内网通信OPEN-V
  11. 桌面图标有阴影,教给你怎么去掉
  12. 反汇编代码分析--函数调用
  13. 4. Python脚本学习实战笔记四 新闻聚合
  14. PAT-1032 挖掘机技术哪家强
  15. 罗永浩将举办“老人与海”黑科技发布会;京东正式宣告:全面向技术转型;英特尔因CPU短缺向PC厂商道歉 | EA周报...
  16. Windows 中的 redis安装、设置密码,做成服务
  17. 使用Hilo做一个H5接金币类小游戏
  18. android应用程序开发!BTAJ大厂最新面试题汇集,挥泪整理面经
  19. Tips系列:为啥西门子HMI的I/O域显示“#”?
  20. 信号处理算法(4):全球最快的傅里叶变换算法(FFTW)

热门文章

  1. 微信公众号推广的31个方式,最厉害的是最后一个
  2. #713. 徐老师的学习计划(思维贪心题)
  3. 设计模式之 工厂方法模式&&抽象工厂模式
  4. 干细胞领域国际大佬盘点
  5. 计算机视觉学习(六):标定手机相机参数
  6. PDF图片大小怎样调整?
  7. 通过matlab实现基于永磁同步电机的电机绕组故障的实验仿真
  8. 建议:为所有导出的API元素编写文档注释。
  9. Python代码/画布画爱心/动态爱心
  10. 云计算搭建全部内容总结,保证可以搭建一个完整的云计算服务器,包括节点安装、实例的分配和网络的配置等内容