搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
MATLAB高效编程技巧与应用:25个案例分析
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787512400832
  • 作      者:
    吴鹏编著
  • 出 版 社 :
    北京航空航天大学出版社
  • 出版日期:
    2010
收藏
编辑推荐
  《MATLAB高效编程技巧与应用:25个案例分析》是目前国内最大的MATLAB&Simulink技术交流平台,MATLAB中文论坛联合《MATLAB高效编程技巧与应用:25个案例分析》作者、编辑将为您提供所需要的问题答案和大量技术支持,让《MATLAB高效编程技巧与应用:25个案例分析》成为一个联系同行,链接相关知识点的活动载体。在线交流,有问必答。
展开
内容介绍
  《MATLAB高效编程技巧与应用:25个案例分析》是作者八年MATLAB使用经验的总结,精心设计的所有案例均来自于国内各大MATLAB技术论坛网友的切身需求,其中不少案例涉及的内容和求解方法在国内现已出版的MATLAB书籍中鲜有介绍。
  《MATLAB高效编程技巧与应用:25个案例分析》首先针对MATLAB新版本特有的一些编程思想、高效的编程方法、新技术进行了较为详细的讨论,在此基础上,以大量案例介绍了MATLAB在科学计算中的应用。内容包括:MATLAB快速入门、重新认识矢量(向量)化编程、MATLAB处理海量数据、匿名函数类型介绍、嵌套函数类型介绍、积分以及积分方程求解案例、优化及非线性方程(组)求解案例、人脸图像压缩与重建案例、有关预测分类的案例、常微分方程(组)求解案例、层次分析法及其MATLAB实现、定时器及其应用。
  《MATLAB高效编程技巧与应用:25个案例分析》可作为高等院校本科生、研究生MATLAB课程的辅助读物,也可作为从事科学计算和算法研究的科研人员的参考用书。
展开
精彩书摘
  3)程序设计方面考虑的不周,导致内存溢出。这方面的原因一般表现得比较隐蔽。我们在设计一些变量较多的复杂程序时,可能没有及时释放掉一些不再会用到的变量所占用的内存。这样随着程序的运行,变量越来越多,内存中碎片也越来越多,再要产生新的较大的矩阵,就可能发生内存溢出的问题。
  4)问题求解方法考虑欠周,导致内存溢出。同样的问题,可能由多种求解方法。不同方法的效率以及所占用的资源相差很大。问题规模小的时候,不用考虑这方面的问题,可是问题规模较大的时候就必须考虑具体的求解方法了,否则就可能会由于内存溢出而无法求解问题。
  譬如符号计算。符号计算由于其语法简单,并且和传统教科书解决问题思路一致等特点,使得许多初学者很爱使用符号计算。但是符号计算由于精确性,使得其在计算过程中要保留大量的中间结果,这样导致复杂的计算问题用符号计算很容易内存溢出,即使不溢出,对于很多复杂的计算问题,符号计算也无法给出解析解。
  还有当求解涉及较大规模的稀疏型矩阵的问题时,没有采用稀疏矩阵数据结构也容易导致内存溢出。
  (2)运行极其缓慢的原因
  这是因为大数据量的处理总是伴随着大量的计算还有频繁的对内存各地址进行访问,这些开销往往比较占用资源。如果物理内存不够,系统开始调用页面文件来供程序使用,会使得程序运行速度有很大程度的下降。
  本章后半部分将介绍不增加物理内存的情况下,可供MATLAB高效利用内存的方法。
  3.2有效设置增加可用内存,随着计算机硬件的发展,如今的内存价格较之以前低廉了很多,主流PC包括笔记本式计算机的内存配置基本都不低于4GB了,这已经达到32位操作系统的寻址极限了。虽然64位操作系统可以支持更大的内存,但由于诸多因素导致64位操作系统完全取代32位操作系统还需要一段时间,在可预见的一段时间内,使用32位操作系统的读者还会很多,因此在32位操作系统下如何有效利用内存是这节主要讨论的内容。
  本小节以windows XP 32位操作系统为例来说明如何设置boot.ini,使得MATLAB程序可以利用更多的内存。
  3.2.1系统默认下内存分配情况
  首先需要澄清一个概念——虚拟内存(virtual memory)。有很多朋友习惯把硬盘上预留出来用做内存交换和扩展内存寻址空间的“交换文件”当做“虚拟内存”。因为它不是内存芯片,却在必要的时候和物理内存进行内存页交换,所以认为是“虚拟”的内存。当然这样讲有一定道理,也可以认为是人们通常说的“虚拟内存”代表的意思。但是有的时候,“虚拟内存”还代表另一种含义。简单说来,这种含义就是特定操作系统下多路程序进程共享的计算机物理内存以及页面文件。
展开
目录
第一部分 高效编程技巧
第1章 MATLAB快速入门
1.1 熟悉MATLAB环境
1.1.1 MATLAB的启动
1.1.2 MATLABdesktop
1.1.3 MATLAB程序编辑器(Editor)
1.2 MATLAB牛刀小试
1.2.1 Hello, MATLAB
1.2.2 万能计算器用法
1.2.3 一个“囧”的动画
1.2.4 编写第一个MATLAB函数
1.2.5 用MATLAB运行Windows系统命令
1.2.6 用MATLAB发送电子邮件
1.3 M语言介绍
1.3.1 数值和变量
1.3.2 MATLAB程序流程控制
1.4 学习MATLAB的方法

第2章 重新认识矢量(向量)化编程
2.1 矢量化编程流行的一些观点
2.2 重新认识循环
2.2.1 高版本MATLAB对循环结构的优化
2.2.2 选择循环还是向量化
2.3 提高代码效率的方法
2.3.1 预分配内存
2.3.2 选用恰当的函数类型
2.3.3 选用恰当的数据类型
2.3.4 减少无谓损耗——给一些函数“瘦身”
2.3.5 变“勤拿少取”为“少拿多取”
2.3.6 循环注意事项
2.3.7 逻辑索引和逻辑运算的应用
2.4 应用高版本向量化函数提高开发效率
2.4.1 accumarray函数
2.4.2 arrayfun函数
2.4.3 bsxfun函数
2.4.4 cellfun函数
2.4.5 spfun函数
2.4.6 structfun函数

第3章 MATLAB处理海量数据
3.1 处理海量数据时遇到的问题
3.1.1 什么是海量数据
3.1.2 经常遇到的问题
3.2 有效设置增加可用内存
3.2.1 系统默认下内存分配情况
3.2.2 打开Windows3GB开关
3.3 减小内存消耗注意事项
3.3.1 读取数据文件
3.3.2 数据存储
3.3.3 减小内存其他注意事项

第4章 匿名函数类型
4.1 什么是匿名函数
4.1.1 匿名函数的基本定义
4.1.2 匿名函数的种类
4.2 匿名函数应用实例
4.2.1 匿名函数在求解方程中应用
4.2.2 匿名函数在显式表示隐函数方面的应用
4.2.3 匿名函数在求积分区域方面的应用
4.2.4 匿名函数在求数值方面的应用
4.2.5 匿名函数和符号计算的结合
4.2.6 匿名函数在优化中的应用
4.2.7 匿名函数在求积分区域方面的应用
4.2.8 匿名函数和cell数组的结合应用

第5章 嵌套函数类型
5.1 什么是嵌套函数
5.1.1 嵌套函数的基本定义
5.1.2 嵌套函数种类
5.2 嵌套函数的变量作用域
5.3 嵌套函数彼此调用关系
5.3.1 主函数和嵌套函数之间
5.3.2 不同的嵌套函数之间
5.3.3 嵌套函数调用关系总结
5.4 嵌套函数应用实例
5.4.1 嵌套函数在求解积分上限中的应用
5.4.2 嵌套函数在GUI中的应用
5.4.3 嵌套函数在3D作图中的一个应用
5.4.4 嵌套函数表示待优化的目标函数
5.4.5 嵌套函数在表示微分方程方面的应用

第二部分 案例介绍
第6章 积分以及积分方程案例
6.1 案例1:一般区域二重、三重积分MATLAB计算方法
6.1.1 概要
6.1.2 一般区域二重积分的计算
6.1.3 一般区域三重积分的计算
6.2 案例2:被积函数含有积分项的一类积分的一些求解方法
6.2.1 网格求解法
6.2.2 插值求解法
6.2.3 RBF神经网络逼近法
6.2.4 dblquad调用RBF神经网络法
6.2.5 dblquad+arrayfun方法
6.2.6 quad2d+arrayfun方法
6.3 案例3:一般区域N重积分
6.4 案例4:蒙特卡洛法计算N重积分
6.4.1 概述
6.4.2 基本的蒙特卡洛积分法
6.4.3 等分布序列的蒙特卡洛法
6.5 案例5:第二类FREDHOLM积分方程数值求解
6.5.1 概述
6.5.2 具体解法
6.5.3 实例
6.6 案例6:第一类FREDHOLM积分方程数值求解
6.6.1 概述
6.6.2 一类可以化为第二类Fredholm积分方程的第一类Fredholm积分方程求解方法
6.6.3 第一类Fredholm积分方程的直接数值积分解法讨论
6.7 案例7:第二类VOLTERRA积分方程数值求解
6.7.1 概述
6.7.2 具体解法
6.7.3 实例
6.8 案例8:第一类VOLTERRA积分方程数值求解
6.8.1 概述
6.8.2 转化为第二类Volterra积分方程
6.8.3 实例

第7章 MATLAB优化及非线性方程(组)求解案例
7.1 案例9:全局最优化的讨论
7.1.1 随机行走法寻优介绍
7.1.2 改进的随机行走法寻优
7.2 案例10:FSOLVE求非线性方程组的应用
7.2.1 概述
7.2.2 四元非线性方程组的求解
7.2.3 九元非线性方程组的求解
7.2.4 非线性积分方程的求解
7.3 案例11:渐变光波导方程求解
7.3.1 求解渐变光波导的模方程
7.3.2 二维渐变光波导方程作图
7.4 案例12:遗传算法在复杂系统可靠度和冗余度分配优化中的应用
7.4.1 问题提出
7.4.2 数学模型
7.4.3 遗传算法简介
7.4.4 实例分析
7.5 案例13:遗传算法在车间设备布局优化中的应用
7.5.1 问题提出
7.5.2 数学模型
7.5.3 算法步骤
7.5.4 求解代码
7.6 案例14:应用BENDERS分解算法求解混合0-1规划
7.6.1 概述
7.6.2 Benders分解算法
7.6.3 实例分析

第8章 案例15:人脸图像压缩与重建
8.1 概述
8.2 基本的PCA方法实现人脸图像压缩与重建
8.2.1 K-L变换
8.2.2 特征向量的选取
8.3.2 DPCA方法实现人脸图像压缩与重建
8.3.1 概述
8.3.2 2DPCA算法介绍
8.3.3 图像压缩(特征提取)
8.3.3 图像重建
8.4 MATPCA方法实现人脸图像压缩与重建
8.4.1 概述
8.4.2 MatPCA算法
8.5 MODULEPCA方法实现人脸图像压缩与重建
8.5.1 概述
8.5.2 ModulePCA算法
8.6 算法在MATLAB平台上的实现
8.6.1 概述
8.6.2 基本PCA与2DPCA和MatPCA方法GUI
8.6.2 ModulePCA方法GUI

第9章 有关预测分类的案例
9.1 案例16:北京市国民生产总值的灰色分析
9.1.1 概述
9.1.2 引言
9.1.3 灰色数据融合预测算法与灰色关联度
9.1.4 实例分析
9.2 案例17:距离判别法与BAYES判别法在分类中的应用
9.2.1 概述
9.2.2 判别方法GUI
9.2.3 判别方法GUI应用举例
9.3 案例18:支持向量机的应用
9.3.1 概述
9.3.2 支持向量机介绍
9.3.3 MATLAB所依据的支持向量机模型
9.3.4 支持向量机实现图像分割
9.3.5 支持向量机实现手写体数字识别

第10章 常微分方程(组)求解案例
10.1 案例19:常微分方程(组)解析求解案例
10.1.1 概述
10.1.2 dsolve函数
10.1.3 dsolve函数求解实例
10.2 数值求解常微分方程函数
10.2.1 概述
10.2.2 初值问题求解函数
10.2.3 延迟问题以及边值问题求解函数
10.2.4 求解前准备工作
10.3 案例20:非刚性/刚性常微分方程初值问题求解
10.3.1概述
10.3.2 非刚性问题举例
10.3.3 刚性问题举例
10.4 案例21:隐式微分方程(组)求解
10.4.1 概述
10.4.2 利用solve函数
10.4.3 利用fzero/fsolve函数
10.5 案例22:微分代数方程(DAE)与延迟微分方程(DDE)求解
10.5.1 概述
10.5.2 微分代数方程(DAE)举例
10.5.3 延迟微分方程(DDE)举例
10.6 案例23:边值问题求解
10.6.1 概述
10.6.2 求解案例
10.6.3 对bvp4c和bvp5c的改进

第11章 案例24:层次分析法及其MATLAB实现
11.1 层次分析法概述
11.2 层次分析法实现步骤
11.2.1 层次分析法的主要步骤
11.2.2 建立层次分析的结构模型
11.2.3 构造成对比较矩阵
11.2.4 单一准则下元素相对排序权重计算及比较矩阵一致性检验
11.2.5 各元素对目标层的合成权重的计算过程
11.3 应用实例

第12章 案例25:定时器及其应用
12.1 定时器介绍
12.1.1 概述
12.1.2 定时器属性介绍
12.2 定时器应用举例
参考文献
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证