许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  数学软件深度分析:MATLAB为何如此强大?

数学软件深度分析:MATLAB为何如此强大?

阅读数 6
点赞 0
article_banner

一. MATLAB主要参考书

此处列举六本与MATLAB计算相关的参考书籍:

《高等应用数学问题的MATLAB求解》 薛定宇、陈阳泉著,清华大学出版社

《精通MATLAB科学计算》 王正林等编著 电子工业出版社

《科学计算引论--基于MATLAB的数值分析》 【美】Shoichiro Nakamura 电子工业出版社

《MATLAB与科学计算》王谟然编著 电子工业出版社

《MATLAB 6.0数学手册》 蒲俊等编著 蒲东电子出版社


二. 与数学有关的软件

程序设计语言

BASIC, Pascal, FORTRAN  , C, C++, Java, R, Python ······

数值计算语言

Matlab, Scilab, Octave······

符号计算软件

Mathematica, Maple······

交互式数学软件

MathCAD, Calcwin······

统计软件

SAS, SPSS, Minitab,······

数学规划软件

Lingo, Lindo······

工程计算软件

Ansys, Fluent  , Phoenics······

其他

几何画板, MathLab


三. 数学问题的计算机求解概述

借助手工推导,只能解决部分数学问题。所以,我们需要利用计算机进行求解数学问题。计算机的利用包含以下两个方向:

  • 用数值分析技术,从底层编码起:采用成形的数值分析算法数值软件包,利用纯手工编码进行解决数学问题。
  • 用专门的计算机语言进行求解:MATLAB,Mathematic,Maple等

例题1  带参数问题的求解

求以下方程的解。

x^3+ax+c=d

分析:

在a,c,d是给定数值时,数值分析的方法是可用的;

当不是给定数值时,数值分析的方式不可用。必须使用计算机数学语言来求解。


例题2 时间复杂性

n\times n矩阵的行列式。

分析:

方法:代数余子式方法。

过程:一个n阶行列式可以表示成n个n-1阶行列式的和,以此类推······。可以把高阶行列式转换为1阶矩阵行列式。

结论:任意矩阵行列式的解析解是存在的。

问题:此方法忽略了可计算性问题。例如n=20,运算次数是9.7073\times 10^{20},用每秒亿次的银河机需要3000年。所以此方法忽略了复杂度可行性


例题3  求解精度的问题

Hilbert矩阵的标准形式如下:

求n=20时,Hilbert矩阵的行列式。

分析:

如果利用传统数值分析的方法,很容易得出矩阵奇异的错误结论。

奇异矩阵:线性代数的概念,对应的行列式等于0的矩阵。

在MATLAB中,在双精度级别下容易快速得到数值解。

MATLAB双精度:double 是 MATLAB中的默认数值数据类型,数值变量自动存储为 64 位(8 字节)双精度浮点值

求解:

MATLAB代码如下:

clc;clear; %准确值H=sym(hilb(20));det1=det(H) %近似值det2=det(hilb(20)) %分析运行时间tic;det(hilb(20));toc

运行结果:

det1 =

   1/2377454716768534509091644243427616440175419837753486493033185331234419759310644585187585766816573773440565759867265558971765638419710793303386582324149811241023554489166154717809635257797836800000000000000000000000000000000000

det2 =7.453419356146346e-196

历时 0.001154 秒。


四. 解析解与数值解

4.1 两者的区别

数学家和工程技术人员的关注点是不一样的:

  • 数学家:理论严格证明,存在性
  • 工程技术人员:如何直接得出解

例如,以下积分的解析解是不存在的:

\frac{2}{\sqrt\pi}\int_0^ae^{-x^2}dx

于是,数学家就引入符号erf(a)来表示它。当然工程技术人员更关心积分的值,也就是积分的数值解。

解析解在有无理数,无限不循环小数\pi时,是不存在的。于是,数学家便尽量精确取值,而工程技术人员只需要足够精度即可。例如,工程技术人员就常常把\pi取在3.1415926~3.1415927之间。另外,对于高阶矩阵的行列式,解析解虽然存在但是不实用。

4.2 数值解应用场合

  • 在力学领域,常用有限元法求解偏微分方程
  • 在航空航天与自动控制领域,经常用到数值线性代数常微分方程的数值解法来解决实际问题
  • 在工程与非工程系统的计算机仿真中,核心问题的求解也需要用到各种差分方程,常微分方程的数值解法
  • 在高科技的数字信号处理领域,离散的快速Fourier变换(FFT)已经成为其不可或缺的工具


五. 数学运算问题的软件包

此处列举四个享有国际声望的软件包:

  • 线性代数:LINPACK
  • 矩阵特征值计算:EISPACK
  • NAG:Oxford  Numerical Algorithm Group
  • 线性代数计算:LaPACK

从历史发展的角度来讲,软件包起了不可替代的作用,同时对计算机数学语言提高了强有力的支撑。由于使用起来比较繁琐,所以我们不能过多依赖它,理应该在计算机语言的意义下更好地利用它。

例题4 设计两个矩阵相乘的计算机通用子程序

底层语言可设计如下:

for (i=0;i<n;i++){  for (j=0;j<m;j++){    c[i][j]=0;    for (k=0;k<L1;k++){      c[i][j]=c[i][j]+a[i][k]*b[k][j];}}}

很明显该矩阵是错误的,未考虑矩阵是否可乘。

添加1:If(L1==L2),相乘;else 出错信息;

很明显依旧错误,未考虑其中某个矩阵为标量。

添加2:继续添加标量判定

很明显依旧错误,未考虑矩阵为复数矩阵的情况。

可见,用最底层的 编程语言 需要考虑的内容太多,所以调试起来很不容易,容易出现漏洞。

然而,在MATLAB只需要以下命令格式即可实现:

C=A*B


六. 计算机数学语言

Mathematic由Wolfram Research公司开发,Maple由Waterloo Maple公司开发,两者均用来解析运算、数学公式推导和定理证明。

SciLAB软件纯免费,全部的源代码也已经公开。

MATLAB全称MATrix LABoratory,起源于1980年New Mexico University的教授Cleve Moler,当时正赶上状态空间的控制理论的兴起发展阶段,所以此软件主要用于自动控制学科的应用,后来该软件隶属于The Math Works Inc公司。

现如今,MATLAB主要用于数值计算、程序设计等方面,甚至利用符号运算工具箱,可以调用Maple的功能,来进行公式的推导。


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空