《数值分析及其ATLAB实现》第二篇MATLAB快速入门word第三章 3.8
3.8 画多重线的方法
我们用迭代法求解非线性方程组的解时,需要寻找解的初始值,这就需要在同一个坐标系中画出每个方程对应的图形,找这些图形的交点(线)。在同一个坐标平面中画出许多条曲线的常用方法有三类。第一类方法是利用循环语句for作多条曲线;第二类方法是用hold on和hold off函数在原有的图形上增加曲线;第三类方法是在plot函数中,填写几条曲线。我们可以用这些方法在同一个直角坐标系或极坐标系中,画出多条隐函数的图形,显函数的图形,参数函数的图形或极坐标的函数的图形等等。下面分别给以介绍。
3.8.1 利用循环语句for作多条曲线
循环语句for的一边办形式为
for : : end
步长为1时可以省略。对于每一个参数,语句都重复执行。当作多重循环时,循环语句for可以嵌套使用。用此方法作概率与数理统计中的散点图和拟合曲线的效果特别好。下面的例题展示了如何用循环语句for作多条曲线和点。
[例19] 如果我们要画出图 3-20中“女人的项链”的图形,只需在MATLAB工作窗口中输入下面的循环语句for的程序: t 0:.02:2*pi;
y zeros 10,length t ;
x zeros size t ;
for k 1:2:19 x x + cos 2.*k*t /k; y k+1 /2,: x;
end
plot y 1:2:9,: '
title '女人的项链'
运行后可绘制出图 3-20。
图 3-20 “女人的项链”的图形
3.8.2 利用hold on和hold off画多重曲线的三种方法
在同一个坐标系中画多条曲线的另一种方法是利用hold on和hold off函数在已经画好的图形上再增加曲线。如果设置hold on,则MATLAB软件将把新的plot或者ezplot函数产生的图形画在原来的图形上。而函数hold off结束这个过程。下面通过例题分别说明这些方法的具体应用。
(一) 利用hold on,ezplot和hold off函数在原有的图形上增加曲线
这种方法适用于在同一个坐标系中画多条隐函数,,的曲线。具体用法如下面的例题。
[例20] 在同一个坐标系中画出双曲线和椭圆的图形。
解 输入程序: syms x y
F1 x^2-y^2+1;F2 8*x^2+4*y^2-16;
ezplot F1, [-3, 3] ,
hold on
ezplot F2, [-3,3]
hold off
运行后屏幕显示图 3-21。
图 3-21 双曲线和椭圆的图形
(二) 利用hold on,plot和hold off函数在原有的图形上增加曲线
这种方法适用于在同一个坐标系中画多条显函数,,的曲线。具体用法如下面的例题。
[例21] 给出一组数据点列入表 3-5中,试在同一个坐标系中画出数据点和拟合曲线及其的图形。
表 3-5 例21的一组数据点
xi-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6yi-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04
解 输入程序: xi [-2.5 -1.7 -1.1 -0.8 0 0.1 1.5 2.7 3.6];
y [-192.9 -85.50 -36.15 -26.52 -9.10 -8.43 -13.12 6.50 68.04];
x -3.5:0.1: 4.6;
F 5.0911.*x.^3-14.1905.*x.^2+6.4102.*x -8.2574;
G 2*x.^4-14.*x.^2-165;
plot xi,y,'ro' ,
hold on
plot x,F,'b-'
hold off
hold on
plot x,G,'g*'
hold off
legend '数据点 xi,yi ','拟合曲线y f x ', '函数y g x '
xlabel 'x' , ylabel 'y' ,
title '数据点 xi,yi ,拟合曲线y f x 和函数y g x 的图形'
运行后屏幕显示数据点, 拟合曲线y f x 和函数y g x 的图形,见图 3-22 。
图 3-22 例21的数据散点图和拟合曲线的图形
最后,如果你在一段程序中画了几个图形,需要逐个观察,那么应该在每两个plot函数之间加一个pause函数,它暂停函数的执行,直到你击下任何一个键。
(三) 利用hold on,polar 和hold off函数在原有的图形上增加曲线
这种方法适用于在同一个极坐标系中画多条极坐标函数,,的曲线。具体用法如