写给
Matlab
小白的教程。如果你已经安装了Matlab
,手头有一堆Matlab
教程,面对书中一堆术语和命令不知所措,那么,请看本教程,从零开始,快速上手。
1 本文要点
-
初等代数计算:求函数值,求代数方程的根;
-
画函数图像;
-
代数运算符号:
+、
、*,/,sqrt,^
;常数: pi -
命令:
roots, fplot.
Karl最近对Matlab产生了浓厚的兴趣,刚刚在电脑上安装了Matlab
他随便找了一本电子书教程,浏览了一下前两章,对Matlab有了一个基本的了解。
他决定在电脑上实际操作一下。正好,上中学的儿子问他数学问题,他就尝试用Matlab
给儿子讲数学。
开始之前,先得认识一下Matlab
界面,Karl打开Matlab
软件:
这里顶部工具栏下方的主窗口分成了三个部分:(1)正中是命令行窗口:命令在这里输入并执行;(2)右边是工作区:显示变量名称和它们的值;(3)左侧是文件夹窗口:显示当前文件夹内容;
除了这三个窗口,还有一个默认被隐藏的窗口:“命令历史记录窗口”,可以点击工具栏中的“布局—命令历史记录—停靠”将它唤出,它停靠在工作区下方。
2 代数计算
例1 已知球的半径, 计算球的体积。如果已知球的体积为17,计算球的半径。
这是一个函数的自变量和函数值互求的问题。函数表达式为:。
Karl从书上了解到,Matlab
有科学计算器的功能,当然,这种计算功能对功能强大的Matlab
来说是大材小用了,不过,这正是初学者快速上手的好例子。
只要告诉Matlab
自变量取值,以及函数表达式,它就能算出结果了。Karl发现Matlab
语句与数学中用到几乎没有差别,例如简单的代数运算符号如下表:
在命令行窗口输入:
r=2,V=4/3*pi*r^3
按回车键,马上得到计算结果:
已知的值,计算半径, 思路一是可以将反解出来,然后像上面一样计算。这里,还可以用另一种思路:多项式求根。因为此时是代数方程的根。
计算多项式的根的命令是:roots([多项式系数])
,其中多项式系数是按降幂排列,缺项的要补0。
在命令行窗口继续输入:
roots([4/3*pi 0 0 -17])
得到结果:
这里前两个根是虚根,第三个等于球的半径,所以,,当然这是一个近似值。
3 函数作图
Karl希望将函数图像展示给儿子看,让他体会函数值随自变量变化而变化的函数本质。
Karl查了一下书中作图的部分,作图的命令有好几个,这里用fplot
比较方便,f代表function, plot是画图的意思。fplot
的语法如下:
fplot(@(自变量)函数表达式,[a,b],'r')
-
@(自变量)
定义自变量; -
[a,b]
代表定义域; -
'r'
代表曲线颜色设置为红色(red
)。
注意:圆括号里三个项目用逗号隔开,区间用方括号,颜色用单引号括起来,所有符号都必须是英文输入状态下的符号。
Karl在这里踩了一个坑,他输入:
fplot(@(r)4/3*pi*r^3,[0,5],'r')
发现虽然画出了正确的图像,但是命令行窗口却出现了一大段红色警告,这有点令他不舒服。
他看不懂警告中的内容,于是搜索了一下,终于明白了,Matlab
作图的原理是描点法,就是在定义域区间内,每隔一小段距离取一个图像上的点,当步长足够小的时候,就连成了一条曲线。
所以,这里r本质上是一个行矩阵(或称为数组), 本质上是数组运算,而数组运算的符号要在乘号前加一个句点,也就是修改为如下语句:
fplot(@(r)4/3*pi.*r^3,[0,5],'r')
这里符号.*
是一个整体,表示前面的常数乘以一个数组。
Karl不喜欢Matlab
的函数图像外面的那个方框,此外,他还想添加一谢文字说明,这些都不难:
fplot(@(r)4/3*pi*r.^3,[0,5],'r') ; %球的体积函数的图像
title('球的体积函数图像:V=4/3 \pi r^3');
xlabel('r');
ylabel('V');
box off;
grid on;
-
title、xlabel、ylabel
分别用来添加图的标题,横纵轴的标签。由于标签的属性都是字符串,字符串需要用英文的单引号括起来。 -
box off
是关闭图像外框。 -
grid on
是添加网格。
得到的图像如下: