科学计算与MATLAB语言

刘卫国 蔡旭晖 吕格莉 何小贤

目录

  • 1 初识MATLAB
    • 1.1 课程导入
    • 1.2 单元测验
  • 2 MATLAB基础知识
    • 2.1 MATLAB系统环境
    • 2.2 MATLAB数值数据
    • 2.3 变量及其操作
    • 2.4 MATLAB矩阵的表示
    • 2.5 矩阵元素的引用
    • 2.6 MATLAB基本运算
    • 2.7 字符串处理
    • 2.8 单元测验
  • 3 MATLAB矩阵处理
    • 3.1 特殊矩阵
    • 3.2 矩阵变换
    • 3.3 矩阵求值
    • 3.4 矩阵的特征值与特征向量
    • 3.5 稀疏矩阵
    • 3.6 单元测验
  • 4 MATLAB程序流程控制
    • 4.1 顺序结构程序
    • 4.2 用if语句实现选择结构
    • 4.3 用switch语句实现选择结构
    • 4.4 用for语句实现循环结构
    • 4.5 用while语句实现循环结构
    • 4.6 函数文件的定义与调用
    • 4.7 函数的递归调用
    • 4.8 函数参数与变量的作用域
    • 4.9 单元测验
  • 5 MATLAB绘图
    • 5.1 二维曲线
    • 5.2 绘制图形的辅助操作
    • 5.3 其他形式的二维曲线
    • 5.4 三维曲线
    • 5.5 三维曲面
    • 5.6 图形修饰处理
    • 5.7 交互式绘图工具
    • 5.8 单元测验
  • 6 数据分析与多项式计算
    • 6.1 数据统计分析
    • 6.2 多项式计算
    • 6.3 数据插值
    • 6.4 数据插值应用举例
    • 6.5 曲线拟合
    • 6.6 曲线拟合应用举例
    • 6.7 单元测验
  • 7 数值微积分与方程求解
    • 7.1 数值微分与数值积分
    • 7.2 线性方程组求解
    • 7.3 线性方程组应用举例
    • 7.4 非线性方程求解与函数极值计算
    • 7.5 常微分方程数值求解
    • 7.6 常微分方程应用举例
    • 7.7 单元测验
  • 8 MATLAB符号计算
    • 8.1 符号对象
    • 8.2 符号微积分
    • 8.3 级数
    • 8.4 符号方程求解
    • 8.5 单元测验
  • 9 MATLAB图形用户界面设计
    • 9.1 图形窗口与坐标轴
    • 9.2 曲线与曲面对象
    • 9.3 图形用户界面设计方法
    • 9.4 用户界面设计工具
    • 9.5 APP设计工具
    • 9.6 图形用户界面应用举例
    • 9.7 单元测验
  • 10 Simulink系统仿真
    • 10.1 Simulink仿真基础
    • 10.2 子系统的创建与封装
    • 10.3 S函数的设计与应用
    • 10.4 Simulink仿真应用举例
    • 10.5 单元测验
  • 11 外部程序接口
    • 11.1 在Excel中使用MATLAB
    • 11.2 MATLAB文件操作
    • 11.3 在其他语言程序中读写MATLAB的数据文件
    • 11.4 在MATLAB中调用其他语言编写的程序
    • 11.5 在其他语言程序中调用MATLAB函数
    • 11.6 单元测验
  • 12 课外阅读
    • 12.1 阅读
其他形式的二维曲线

视频


拓展学习

例1  绘制1/的直角线性坐标图和三种对数坐标图。

x=0:0.1:10;

y=1./x;

subplot(2,2,1)

plot(x,y) 

title('plot(x,y)');grid on

subplot(2,2,2)

semilogx(x,y)    

title('semilogx(x,y)');grid on

subplot(2,2,3)

semilogy(x,y) 

title('semilogy(x,y)');grid on

subplot(2,2,4)

loglog(x,y) 

title('loglog(x,y)');grid on


例2  按极坐标方程ρ=1-sin t绘制心形曲线。

t = 0:pi/100:2*pi;

r = 1-sin(t);

subplot(1,2,1)

polar(t,r)

subplot(1,2,2)

t1 = t-pi/2;

r1 = 1-sin(t1);

polar(t,r1)


例3  绘制分组条形图。

y=[1,2,3,4,5; 1,2,1,2,1; 5,4,3,2,1];

subplot(1,2,1)

bar(y)

title('Group')

subplot(1,2,2)

bar(y, 'stacked')

title('Stack')


例4  下表是某公司2015~2017年家电类商品1月份的销售数据,绘制条形图对比数据。

x=[2015,2016,2017];

y=[68,80,115,98,102;

75,88,102,99,110;

81,86,125,105,115];

bar(x, y)

title('Group');


例5  绘制服从高斯分布的直方图。

y=randn(500,1);

subplot(2,1,1); 

hist(y); 

title('高斯分布直方图');

subplot(2,1,2); 

x=-3:0.2:3;

hist(y,x); 

title('指定区间中心点的直方图')')


例6  绘制高斯分布数据在极坐标下的直方图。

y=randn(500,1);

theta=y*pi;

rose(theta)

title('在极坐标下的直方图')


例7  某次考试优秀、良好、中等、及格、不及格的人数分别为:7、17、23、9、4,试用扇形统计图作成绩统计分析。

score = [5, 17, 23, 9, 4];

ex = [0,0,0,0,1];

pie(score, ex)   

legend('优秀', '良好', '中等’, '及格', '不及格', …

'location', 'eastoutside')


例8  以散点图形式绘制桃心曲线

t = 0:pi/50:2*pi;

x = 16*sin(t).^3;

y = 13*cos(t)-5*cos(2*t)-2*cos(3*t)-cos(4*t);

scatter(x,y,'rd','filled')


例9  已知向量A、B,求A+B,并用矢量图表示。

A=[4,5]; B=[-10,0]; C=A+B;

hold on;

quiver(0, 0, A(1), A(2));

quiver(0, 0, B(1), B(2));

quiver(0, 0, C(1), C(2));

text(A(1),A(2),'A');text(B(1),B(2),'B'); text(C(1),C(2),'C'); 

axis ([-12, 6, -1, 6])

grid on