matlab在科学计算中的应用1

更新时间:2023-06-06 09:19:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

matlab教程

MATLAB在科学计算中的应用 开课单位:数学学院 40学时 1学分 张敏洪(数学学院) mh_zhang@ 考试方式:平时作业完成占30%, 最后上机开卷考占70%。

有课外上机时间。

matlab教程

课程网站 参考资料、讲义、作业、作业部分参考答 案可在学校课程网站下载。以前的邮箱: gucasmatlab@ 密码: matlab123 在学校课程网站提交作业。

matlab教程

主要参考书: 高等应用数学问题的MATLAB求解 薛定宇 陈阳泉 著 清华大学出版社 精通MATLAB科学计算 王正林等编著 电子 工业出版社 科学计算引论-基于MATLAB的数值分析 [美]Shoichiro Nakamura 电子工业出版社 MATLAB与科学计算 王谟然 编著 电子工 业出版社 MATLAB6.0数学手册 蒲俊等编著 蒲东电子 出版社

matlab教程

数学相关软件– 程序设计语言:BASIC,Pascal,FORTRAN,C, C++,Java ... – 数值计算软件: Matlab, Scilab,Octave,... – 符号计算软件:Mathematica,Maple,... – 交互式数学软件:MathCAD,Calcwin,... – 统计软件:SAS,SPSS,Minitab,... – 数学规划软件:Lingo,Lindo,... – 工程计算软件:Ansys,Fluent,Phoenics,... – 其它:几何画板,MathLab, ...

matlab教程

常微 偏微实 用 性

概率 统计

高数 高代

规划

其它

理 论

数值分析、数值计算

MATLAB(可编程的高级计算器)

matlab教程

第一章 计算机数学语言概述 1.1 数学问题计算机求解概述– 数学问题求解 手工推导(只解决部分问题) 借助计算机– 用数值分析技术,从底层编写起采用成形的数值分析算法、数值软件包 与手工编程相结合的求解方法。

– 用专门计算机语言来求解MATLAB、Mathematica、Maple等

matlab教程

例:求 x ax c d 方程的解(带参数问 题的求解)3

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

matlab教程

例:求 n n 杂性)

矩阵行列式求解问题(时间复

用代数余子式方法– 一个 n 阶行列式可以表示成 n 个 n-1 阶行列式 的和,… – 可以将高阶矩阵行列式转换成1阶矩阵行列式

结论:任意矩阵行列式解析解存在 问题:忽略了可计算性 n=20, 运算次数为 9.7073 1020 , 用每秒亿 次的银河机需3000年.忽略了复杂度和可行 性.

matlab教程

例:Hilbert 矩阵,n=20 (求解精度的问题)

传统数值分析:容易得出矩阵奇异的错误结论 用MATLAB: 在双精度级别下容易快速得到 数值解

matlab教程

该矩阵行列式的精确结果 >>H=sym(hilb(20)) ;det(H)

>> det(hilb(20)) ans = 5.7671e-196

近似值

>> tic; det(hilb(20)); toc Elapsed time is 0.421610 seconds.

计算时间 0.4 秒

matlab教程

1.1.1 数学问题的解析解与数值

解 数学家和其他科学技术工作者的区别– 数学家:理论严格证明、存在性 – 工程技术人员:如何直接得出解

解析解不存在的场合– 不存在 – 数学家解决方法,引入符号erf(a) – 工程技术人员更感兴趣积分的值=>数值解

matlab教程

解析解不能使用的场合– – – – 解析解不存在:无理数,无限不循环小数 p 数学家:尽量精确地取值 工程技术人员:足够精确即可 祖充之 3.1415926—3.1415927

解析解存在但不实用或求解不可能– 高阶矩阵行列式

matlab教程

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

matlab教程

1.1.3 数学运算问题软件包发展概述 享有国际声望的软件包– – – – 线性代数LINPACK 矩阵特征值计算 EISPACK NAG (Oxford: Numerical Algorithm Group) Press W H, Flannery B P, Teukolsky S A, and Vitterling W T. Numerical recipes, the art of scientific computing. Cambridge: Cambridge University Press, 1986 (C,Fortran,Pascal算法语 言源程序软件包) – 线性代数计算 LaPACK

matlab教程

软件包作用 从历史发展角度,起了不可替代的作用 对计算机数学语言的强有力支持 但不能过多依赖 使用烦琐 应该在计算机数学语言的意义下利用之

matlab教程

考虑一个实际编程例子 如何编写一个能求出两个矩阵相乘的计算机 通用子程序?

该程序正确吗?错误,未考虑矩阵是否可乘

matlab教程

是否正确? 错误,未考虑其一为标量 加入标量判定,是否就是通用程序了? 错误,应考虑其一或二者为复数矩阵 MATLAB 实现:C=A*B 可见,用最底层的编程语言需要考虑的内 容要多得多,所以调试起来不容易,容易出现 漏洞。

matlab教程

1.2 计算机数学语言概述

计算机数学语言– MATLAB 1984 v1 The MathWorks Inc MATrix LABoratory 1980 Cleve Moler教授, New Mexico University 自动控制学科的应用(正赶上状态空间的控制理 论的兴起发展阶段)

– Mathematica(Wolfram Research公司) – Maple(Waterloo Maple公司) – SciLAB:免费,全部源代码公开

matlab教程

三个代表性计算机数学语言 MATLAB, Mathematica, Maple MATLAB– 数值运算、程序设计,广泛应用

Mathematica、Maple– 解析运算、数学公式推导、定理证明

Matlab+符号运算工具箱+Maple– 可以推导公式,可以调用Maple功能

matlab教程

MATLAB产生的历史背景MATLAB 是“ 矩阵实验室”( MATrix LABorat

ory)的缩写. 在70年代中期,Cleve Moler博士和 其同事在美国国家科学基金的资助下 开发了调用EISPACK和LINPACK的 FORTRAN子程序库.EISPACK是特征 值求解的FORTRAN程序库,LINPACK 是解线性方程的程序库.在当时,这两 个程序库代表矩阵运算的最高水平.

matlab教程

到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课 程时,想教学生使用EISPACK和 LINPACK程序库,但他发现学生用 FORTRAN编写接口程序很费时间, 为了让学生方便的调用EISPACK和 LINPACK,利用业余时间为学生编 写EISPACK和LINPACK的接口程 序。Cleve Moler给这个接口程序取 名为MATLAB (MATrix LABoratory) 。在以后的数年里, MATLAB在多所大学里作为教学辅 助软件使用,并作为面向大众的免 费软件广为流传。

本文来源:https://www.bwwdw.com/article/pv11.html

Top