课程概述

       MATLAB代表了当今国际科学计算软件的先进水平,它将数值计算、符号计算、图形处理、系统仿真和程序流程控制等功能集成在统一的系统环境中,已发展成为适合多学科、广泛应用于科学研究和工程技术领域的程序设计语言。使用MATLAB作为计算工具,人们不需关注各种数值计算方法的具体细节和计算公式,也不需要繁琐的底层编程,从而可以专注于实际问题的分析和设计,大大提高工作效率和质量,为科学研究与工程应用提供重要手段。在高等学校,MATLAB已经成为许多课程的基本计算工具,颇受广大大学生、研究生的青睐。
       本课程主要介绍科学计算问题的MATLAB实现方法,包括MATLAB基础知识、MATLAB矩阵处理、MATLAB程序流程控制、MATLAB绘图、数据分析与多项式计算、数值微积分与方程求解、MATLAB符号计算共7个学习专题。

证书要求

        本课程总成绩由平时学习+线上考核成绩+期末线上考核成绩组成,分别占35%+35%+30%。平时学习包括:前两周线上课堂签到、讨论、课程学习记录,之后为正常教学,请自带电脑上课,完成课堂签到、练习;线上考核包括线上作业6次,要求每人应完成5份他人作业的互评,未参加互评的学生,将给所得分数的60%;参加互评但未达到5份,将给所得分数的80%。期末线上考核,考试内容分为客观题、解答题,考试时间内上传代码和运行结果,或发至教师指定邮箱。




预备知识

高等数学,线性代数。

授课大纲

专题〇 初识MATLAB

课程导入

专题一 MATLAB基础知识

1.1 MATLAB系统环境

1.2 MATLAB数值数据

1.3 变量及其操作

1.4 MATLAB矩阵的表示

1.5 矩阵元素的引用

1.6 MATLAB基本运算

1.7 字符串处理

专题一总结

专题一单元作业

专题二 MATLAB矩阵处理

2.1 特殊矩阵

2.2 矩阵变换

2.3 矩阵求值

2.4 矩阵的特征值与特征向量

*2.5 稀疏矩阵

专题二总结

专题二单元作业

专题三 MATLAB程序流程控制

3.1 顺序结构程序

3.2 用if语句实现选择结构

3.3 用switch语句实现选择结构

3.4 用for语句实现循环结构

3.5 用while语句实现循环结构

3.6 函数文件的定义与调用

3.7 函数的递归调用

3.8 函数参数与变量的作用域

专题三总结

专题三单元作业

专题四 MATLAB绘图

4.1 二维曲线

4.2 绘制图形的辅助操作

4.3 其他形式的二维曲线

4.4 三维曲线

4.5 三维曲面

4.6 图形修饰处理

*4.7 交互式绘图工具

专题四总结

专题四单元作业

*专题五 数据分析与多项式计算

*5.1 数据统计分析

*5.2 多项式计算

*5.3 数据插值

*5.4 数据插值应用举例

*5.5 曲线拟合

*5.6 曲线拟合应用举例

*专题五总结

*专题五单元作业

专题六 数值微积分与方程求解

6.1 数值微分与数值积分

6.2 线性方程组求解

6.3 线性方程组应用举例

6.4 非线性方程求解与函数极值计算

6.5 常微分方程数值求解

6.6 常微分方程应用举例

专题六总结

专题六单元作业

专题七 MATLAB符号计算

7.1 符号对象

7.2 符号微积分

7.3 级数

7.4 符号方程求解

专题七总结

专题七单元作业

参考资料

刘卫国主编,MATLAB程序设计与应用(第3版),ISBN 978-7-04-047813-6,普通高等教育“十一五”国家级规划教材,教育部大学计算机课程改革项目规划教材,湖南省普通高等学校优秀教材,高等教育出版社,2017年8月。




常见问题

Q1:本课程的适用对象有哪些?

A1:本课程作为高等学校信息技术系列课程,适合理、工、农、医、经济管理等专业本科生和研究生学习。中南大学从2000年开始开设该课程,在历次人才培养方案制定中,很多学院开设了该课程。此外,本课程也适用于广大工程技术人员、科学研究工作者学习参考。

Q2:MATLAB也算一门程序设计语言吗?

A2:当然算,因为MATLAB具备程序设计语言的基本特征,能实现程序流程控制。但MATLAB语言又有别于传统意义上的程序设计语言,它出现的初衷是为了做矩阵运算,因此我们更愿意将MATLAB作为一种科学计算软件推荐给大家。MATLAB主要还是在学科应用层面使用,而且具备和学科应用结合的天然优势,所以本课程是助力“新工科”建设的重要课程(但MATLAB的应用范围绝不限于“工科”)。

Q3:本课程使用什么MATLAB版本?

A3:本课程使用MATLAB R2016a版本,但不妨碍大家使用别的版本,因为在不同MATLAB版本中大部分功能是一样的。在实际操作中,也要注意不同MATLAB版本的差异,因所使用的版本不同而可能使得有些函数或功能不完全相同,甚至不能使用,这时可以借助于MATLAB的帮助信息来分析不同版本的差异。

Q4:学习本课程是否需要先学习计算机程序设计?

A4:没有此要求,但如果具有高等数学、线性代数方面的基本知识对本课程的学习是有帮助的。