MATLAB编程入门:绘制sinc函数的立体图

需积分: 9 1 下载量 195 浏览量 更新于2024-08-22 收藏 1.97MB PPT 举报
"函数sinc(r)=sin(r)/r-MATLAB编程入门" 在MATLAB编程中,函数`sinc(r)`是数学中一个重要的特殊函数,它定义为`sin(r)`除以`r`,在r不等于0时。在描述中,我们看到了如何在MATLAB中实现这个函数并绘制其立体图。下面我们将详细讨论相关的知识点。 首先,MATLAB的基本操作,如创建一维数组`x`和`y`,都是通过等差序列来完成的。在这里,`x=-8:0.5:8`创建了一个从-8到8的等差数组,步长为0.5。`y=x'`将`x`转置成列向量`y`,这样两个数组可以进行逐元素运算。 接着,`X=ones(size(y))*x`和`Y=y*ones(size(x))`这两行代码是为了创建两个与`x`和`y`大小相同的全1矩阵,然后分别与`x`和`y`相乘,以构造出二维坐标矩阵`X`和`Y`。`size`函数用于获取矩阵的维度,这里确保`X`和`Y`的大小匹配。 然后,`R=sqrt(X.*X+Y.*Y)`计算`X`和`Y`对应元素的平方和,再取平方根,得到各个点到原点的距离`R`。`.*`是逐元素乘法运算符,确保了`X`和`Y`的对应元素相乘。 在画图部分,`z=sin(R)./R`计算`sinc(r)`函数的值。`mesh(z)`函数用来绘制三维曲面图,展示`z`的立体分布。`pause`函数暂停程序执行,让用户有机会查看和交互图形。 当`R`接近0时,`sin(R)./R`会导致`0/0`的运算,这在数学上是未定义的。为了解决这个问题,`eps`被用来提供一个很小的正值,避免除以零的情况。例如,`R=sqrt(X.*X+Y.*Y)+eps`和`R=abs(X)+abs(Y)+eps`都是为了在`R`接近0时添加一个极小的正数,从而避免`NaN`(非数字)的结果。 `surf(z1)`用于在第三个图形窗口绘制表面图,而`abs(X)`和`abs(Y)`的组合是计算向量的1范数,也就是所有元素绝对值的和,这在处理距离或大小时非常有用。 MATLAB编程入门的章节结构涵盖了从基本概念到实际应用的多个方面。第1章介绍MATLAB的背景和特点,强调其易用性、可扩展性和丰富的绘图功能。第2章深入讲解MATLAB的基本语法,包括变量、矩阵运算、逻辑控制和绘图。第3章则展示了MATLAB在电路分析中的应用,如电阻电路、动态电路、正弦稳态电路等。 MATLAB是一个强大的工具,尤其适合数值计算和可视化。通过学习和理解上述知识点,初学者可以逐步掌握MATLAB的基本操作,并进一步运用到实际的科学计算任务中。