科学计算与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  绘制[-2π,2π]区间的正弦曲线并给图形添加标题。

x=-2*pi:0.05:2*pi;

y=sin(x);

plot(x,y)

title('y=sin(x)')

title({'MATLAB', 'y=sin(x)'})


绘制[-2π,2π]区间的正弦曲线并给x轴添加标签。

x=-2*pi:0.05:2*pi;

y=sin(x);

plot(x,y)

title('y=sin(x)')

xlabel('-2\pi \leq x \leq 2\pi')

在前面的图形中添加文字说明。

text(-2*pi, 0, '-2{\pi}')

text(3, 0.28, '\leftarrow sin(x)')


例2  绘制不同频率的正弦曲线并用图例标注曲线。

x = linspace(0, 2*pi, 100);

plot(x, [sin(x); sin(2*x); sin(3*x)])

legend('sin(x)', 'sin(2x)', 'sin(3x)')

绘制正圆,并设置坐标轴

x = [0, 1, 1, 0, 0];

y = [0, 0, 1, 1, 0];

plot(x,y)

axis([-0.1, 1.1, -0.1, 1.1])

axis equal;


例3  绘制sin(x)、sin(2x)、sin(x/2)的函数曲线并添加图形标注。

x=linspace(0,2*pi,100);

y=[sin(x); sin(2*x); sin(0.5*x)];

plot(x,y)

axis([0 7 -1.2, 1.2]) 

title('不同频率正弦函数曲线'); 

xlabel('Variable X');  ylabel('Variable Y'); 

text(2.5, sin(2.5), 'sin(x)'); 

text(1.5, sin(2*1.5), 'sin(2x)');

text(5.5, sin(0.5*5.5), 'sin(0.5x)');

legend('sin(x)','sin(2x)','sin(0.5x)')

grid on


例4   用图形保持功能绘制两个同心圆。

t = linspace(0,2*pi,100);

x = sin(t);  y = cos(t);

plot(x, y, 'b')

hold on;        

plot(2*x, 2*y, 'r--')

grid on

axis([-2.2 2.2 -2.2 2.2])

axis equal


划分2×2子图

subplot(2,2,1); 

x=linspace(0,2*pi,60);

y=sin(x);

plot(x,y);

title('sin(x)');

axis ([0,2*pi,-1,1]);


划分多子图

x=linspace(0,2*pi,60);

subplot(2,2,1)     

plot(x,sin(x)-1);

title('sin(x)-1');axis ([0,2*pi,-2,0])

subplot(2,1,2)     

plot(x,cos(x)+1);

title('cos(x)+1');axis ([0,2*pi,0,2])

subplot(4,4,3)      

plot(x,tan(x));

title('tan(x)');axis ([0,2*pi,-40,40])

subplot(4,4,8)        

plot(x,cot(x));

title('cot(x)');axis ([0,2*pi,-35,35])