matlab数值计算案例分析的目录

matlab数值计算案例分析的目录,第1张

第1章MATLAB编程基础1

11 矩阵的基本 *** 作与基本运算1

111 矩阵的基本 *** 作1

112 矩阵的基本运算2

113 与 和/与/ 的区别3

114 使用find函数索引符合某些特定条件的矩阵元素3

115 eps函数与避免除以0的方法4

12 MATLAB的数据结构4

13 变量、脚本与函数8

131 变 量8

132 全局变量使用例子9

133 局部变量不会被替代的例子10

134 函数与脚本10

135 函数的构成11

136 函数的类型12

137 函数调用与函数句柄14

138 可变参数函数调用14

14 MATLAB技巧15

141 MATLAB的函数重载15

142 冒号(:) *** 作符17

143 Tab键自动补全17

144 上下箭头回调17

145 可变参数个数的函数的占位符17

146 whos 查看18

147 whos 通配符的例子18

148 程序调试18

15 MATLAB工具箱函数ode23剖析18

16 MATLAB的帮助文档导航22

17 MATLAB常见错误23

171 常见写法错误23

172 字符串连接出错24

173 矩阵维数不同的例子25

174 赋值出错26

第2章数值分析的基本概念27

21 数值分析的研究对象27

22 误差与有效数字30

221 误差的产生及分类30

222 误差的相关概念30

23 近似计算中的注意事项31

24 数值算法的稳定性34

25 机器精度35

第3章数据插值37

31 插值与多项式插值37

32 Lagrange插值37

321 Lagrange插值的定义37

322 Lagrange插值的MATLAB实现38

33 Newton插值40

331 Newton插值定义40

332 有限差商40

333 Newton插值的MATLAB实现41

34 Hermite插值42

341 Hermite插值定义42

342 Hermite插值的MATLAB实现43

35 分段低次插值45

351 高次插值的Runge现象45

352 分段低次Lagrange插值45

353 interp1函数46

36 三次样条插值47

361 三次样条插值47

362 三次样条函数48

第4章数据拟合50

41 数据的曲线拟合50

411 曲线拟合的误差50

412 曲线拟合的最小二乘法51

42 多项式拟合52

421 多项式曲线拟合52

422 多项式曲线拟合的MATLAB实现52

423 MATLAB多项式曲线拟合应用的扩展54

43 圆拟合的例子讲解57

431 圆拟合问题描述(使用最小二乘方法)57

432 圆拟合的MATLAB实现58

44 cftool自定义拟合60

45 cftool代码自动生成与修改62

第5章数值积分66

51 数值积分的基本思想66

511 数值求积的基本思想66

512 几种常见的数值积分公式66

52 数值求积公式的构造67

521 代数精度68

522 插值型求积公式68

523 Newton-Cotes求积公式69

53 复化积分公式70

531 复化Simpson公式70

532 复化求积公式及其MATLAB实现70

533 MATLAB的trapz函数72

54 Romberg求积公式73

541 数值积分公式误差分析73

542 Romberg算法74

543 Romberg求积公式的MATLAB实现76

55 Gauss求积公式77

551 Gauss积分公式77

552 Gauss-Legendre求积公式的MATLAB实现及应用实例78

56 积分的运算选讲79

561 二重积分79

562 三重积分79

563 变上限积分79

564 符号积分81

565 MATLAB常见积分函数列表82

第6章常微分方程83

61 常微分方程分类及其表示形式83

611 MATLAB关于ODE的函数帮助简介83

612 MATLAB ODE suite中关于ODE的分类83

62 典型常微分方程举例84

621 一阶常微分方程84

622 二阶常微分方程84

623 高阶常微分方程85

624 边值问题85

625 延迟微分方程85

63 解的存在性、唯一性和适定性86

631 初值问题的存在性与唯一性86

632 MATLAB中常微分方程的通用形式及其向量表示87

633 刚性常微分方程87

64 常微分方程的时域频域表示以及状态方程表示89

641 时域与频域表示形式89

642 状态空间表示形式90

65 单步多步和显式隐式概念91

66 常微分方程数值求解方法构造思想举例92

67 常微分方程数值解的基本原理93

671 一阶常微分方程与一阶微分方程组93

672 求解区间[a,b]的离散93

673 微分方程的离散93

674 Taylor展开法94

675 常微分方程数值求解的欧拉方法97

676 欧拉方法的MATLAB实现97

677 改进的欧拉方法98

678 改进的欧拉方法的MATLAB实现99

679 四阶龙格库塔公式的MATLAB实现99

6710 Adams预测校正公式100

68 常微分方程工具箱102

681 总体介绍102

682 各个求解器的特点与比较103

683 使用odefilem模板求解常微分方程103

684 odefilem模板使用105

69 单自由度振动系统例子106

691 单自由度二阶系统基于传递函数与状态空间的simulink模型求解106

692 总 结110

610 三自由度振动系统例子110

6101 三自由度振动系统simulink模型求解以及状态方程的ode45求解器求解110

6102 总 结114

第7章线性方程组的迭代解法115

71 线性方程组的迭代法概述115

711 迭代法概述及压缩原理115

712 迭代法基本概念115

713 MATLAB的相关命令117

72 常见的线性方程组的迭代法118

721 Jacobi迭代法118

722 Gauss-Seidel迭代法120

723 SOR迭代法123

73 迭代法的收敛性125

731 迭代法的收敛性定理125

732 主对角优势125

733 SOR迭代法的收敛性126

第7章线性方程组的直接解法127

81 线性方程组的消元法127

811 线性方程组的直接求解方法127

812 Gauss消去法127

813 Gauss主元素法130

814 Jordan消去法133

82 矩阵的三角分解135

821 LU分解136

822 LU分解的MATLAB实现136

823 对称正定矩阵的Cholesky分解138

824 Cholesky分解法的MATLAB实现139

825 改进平方根法141

826 改进平方根法的MATLAB实现142

83 MATLAB的相关命令144

831 逆矩阵144

832 矩阵的左除及最小二乘解145

833 欠定方程的解145

第9章非线性方程求解147

91 求解非线性方程的MATLAB符号法147

92 二分法149

921 二分法原理149

922 二分法的MATLAB程序149

93 迭代法151

931 迭代法原理151

932 迭代法的几何意义151

933 迭代法的MATLAB程序152

94 切线法153

941 切线法的几何意义154

942 切线法的收敛性154

95 割线法(弦截法)155

951 割线法的几何意义155

952 割线法的MATLAB程序155

96 常见非线性方程数值方法的优缺点156

97 方程f(x)=0数值解的MATLAB实现157

971 求函数零点指令fzero157

972 fzero的使用举例157

98 求解非线性方程组MATLAB命令160

981 符号方程组求解160

982 求解非线性方程组的基本方法161

983 求方程组的数值解162

第10章偏微分方程数值解166

101 基本概念166

102 有限差分法167

1021 椭圆方程的差分形式167

1022 抛物方程的差分形式168

1023 双曲方程的差分形式170

103 MATLAB的pdepe函数171

1031 pdepe函数的说明171

1032 pdepe函数的实例172

104 MATLAB的PDEtool工具箱173

1041 PDEtool的界面174

1042 PDEtool的使用174

第11章数值优化177

111 单变量函数优化177

1111 基本数学原理177

1112 黄金分割法178

1113 牛顿法181

1114 最速下降法185

1115 共轭梯度法188

112 多变量函数优化191

1121 Nelder-mead方法191

1122 Nelder-mead方法的MATLAB实现192

1123 Powell方法193

1124 Powell方法的MATLAB实现194

113 MATLAB最优化函数197

1131 MATLAB最优化工具箱介绍197

1132 MATLAB最优化函数介绍198

1133 MATLAB最优化工具介绍201

1134 MATLAB最优化函数应用实例204

第12章特征值和特征向量208

121 特征值与特征向量208

1211 特征值与特征向量的定义208

1212 特征值与特征向量的计算208

1213 MATLAB的eig命令209

122 幂法与反幂法209

1221 幂法的原理210

1222 幂法的MATLAB实现210

1223 反幂法212

1224 反幂法的MATLAB实现213

123 对称矩阵的特征值——Jacobi方法214

1231 Jacobi方法的原理214

1232 Jacobi方法的MATLAB实现215

124 Householder方法217

1241 初等反射矩阵218

1242 用正交相似变换约化矩阵218

1243 算法的MATLAB实现220

125 QR分解与QR方法221

1251 矩阵的QR分解221

1252 计算矩阵特征值的QR方法222

1253 QR方法的MATLAB实现222

参考文献224

fun=inline('sqrt(1+(cos(x)^2)')

这里x是向量 要用点乘或者点幂

fun=inline('sqrt(1+(cos(x)^2))')

fun =

Inline function:

fun(x) = sqrt(1+(cos(x)^2))

>> [R,T]=Romberg(fun,[0 4],1e-6)

R =

49666

T =

52178 0 0 0 0 0 0

47752 46276 0 0 0 0 0

49314 49834 50072 0 0 0 0

49578 49667 49656 49649 0 0 0

49645 49667 49667 49667 49667 0 0

49661 49666 49666 49666 49666 49666 0

49665 49666 49666 49666 49666 49666 49666

1、在matlab中,积分运算有多种方式,为了便于查看不同方式处理异同,以下面这个积分为例:

2、梯形积分法

第一种,采用最简单的方式,以函数trapz为例,z = trapz(x,y) 其中x表示积分区间的离散化向量,y是与x同维数的向量,表示被积函数,z是返回的积分近似值。

clc;clear;

% 梯形积分法

x = -1:0001:1;

y = exp(-x^2);

s = trapz(x,y)

% 计算结果: s =  14936

3、高精度数值积分(1)

为了克服梯形积分法精度低的问题,可以采用高精度积分方式,第一种可以采用 z = quad(Fun,a,b) 该方式是自适应步长Simpson计分法求得函数Fun在区间[a,b]上定积分,如下:

clc;clear;

% 梯形积分法

s = quad(inline('exp(-x^2)'),-1,1)

% 计算结果: s =  14936

4、高精度数据积分(2)

采用高精度Lobatto积分法,格式: z = quadl(Fun,a,b)

clc;clear;

% 梯形积分法

s = quadl(inline('exp(-x^2)'),-1,1)

% 计算结果: s =  14936

% 注:在编写完代码后,要按如下图红色箭头所指处运行程序才会有输出!

都是比较复杂的函数,可以先借助help、type和edit命令查看函数源代码;数学三大库GNU的GSL,blitz++以及MTL对积分也有支持;

要实现像matlab一样输入灵活的函数,个人感觉还是很不容易的,但是面向具体的业务问题,在函数及条件给定前提下获得符号积分、数值积分近似解的实现还不是很难的,因为流程不外乎就是矩形法、梯形法和抛物线法,eg:用梯形法(1000等份)求以下三个函数的定积分(当然如果作为工业使用这个for循环需要解决累加溢出和性能问题):

f1(x)=1+xx(积分区间0到1)

f2(x)=1+x+xx+xxx(积分区间0到2)

f3(x)=x/(1+xx)(积分区间0到35)

#include "iostreamh"

#define N 1000

double f1(double x)//f1(x)=1+xx

{

 return(1+xx);

}

double f2(double x)//f2(x)=1+x+xx+xxx

{

return(1+x+xx+xxx);

}

double f3(double x)//f3(x)=x/(1+xx)

{

return(x/(1+xx));

}

double integral(double( fun)(double),double a,double b)//求fun在a,b区间定积分

{

double s,h;

int i;

s=(( fun)(a)+( fun)(b))/20;

h=(b-a)/N;

for(i=1;i<N;i++)

 s+=(fun)(a+ih);

return(sh);

}

main()

{

double y1,y2,y3;

y1=integral(f1,00,10);

y2=integral(f2,00,20);

y3=integral(f3,00,35);

cout<<"y1= "<<y1<<"; y2= "<<y2<<"; y3= "<<y3<<endl;

return 0;

}还可以参考课本上的这些积分算法:

常用数值积分算法实现:

   1 梯形求积法(TRAPZD->QTRAP)

   2 辛普森(Simpson)求积法(QSIMP)

   3 龙贝格(Romberg)求积法(QROMB)

   4 反常积分(MIDPNT, MIDINF, MIDSQL, MIDEXP->QROMO)

   5 高斯求积法(QGAUS, GAULEG)

   6 三重积分(QUAD3D)

Newton-cotes型求积公式与Romberg算法都是在梯形法的基础上进行改进得到的算法,特别是Romberg算法,它是由梯形法进行组合使得得到的值精度逐渐提高,Newton-cotes就是Romberg算法对梯形法进行2次组合得到的结果。

Gauss型求积公式思想跟前面两种算法不同,它的思想是通过找特殊点来近似代替积分值。

以上就是关于matlab数值计算案例分析的目录全部的内容,包括:matlab数值计算案例分析的目录、matlab中 sqrt(1+(cos(x))^2)的积分、如何用matlab求积分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10129907.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存