Matlab在高等数学和线性代数中的应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 2 ( x 2 ln x) , 1 x 4 ,画出 4 此曲线绕 oy 轴旋转所得到的旋转曲面,并求旋转面面积的数值解(精确值为 24 ) 。 解 旋转面的方程为 1 y ( x2 z 2 ln( x2 y 2 )) , 1 x2 z 2 16 . 4 旋转面的面积
z
sin( xy ) xy
的三维网格图。 x0=-3:0.1:3; y0=-4:0.1:4; [x,y]=meshgrid(x0,y0); z=(sin(x.*y)+eps)./(x.*y+eps);
2
subplot(1,2,1),mesh(x,y,z) subplot(1,2,2),surf(x,y,z) 或使用 ezmesh,ezsurf 绘图。Matlab 程序如下 clc, clear z=@(x,y)sin(x.*y)./(x.*y); subplot(121), ezmesh(z), title('') subplot(122), ezmesh('sin(x*y)/(x*y)'), title('') 例4 画椭圆柱面
例 5 在 xoy 平面上有一段曲线,其方程为 y
S
1 x 2 z 2 16
2 2 1 yx yz dxdz ,
利用 Matlab 程序求得的旋转面面积 S 75.3930 ,旋转面的图形见图 1。
3.5 3 4 3.5 2.5 3 2.5 2 2 1.5 1.5 1 0.5 1 0 4 0.5 2 0 0 -2 0 1 1.5 2 2.5 3 3.5 4 z -4 -4 -2 x 2 4
例 6 解 已知 f (t , h) e
t h
h [10,10] 时, g (h) 的图形。
cos( t h) (t h) 2 sin(t h) , g (h) f (t , h)dt ,画出
0
10
编写 Matlab 程序如下。
f=@(t,h) exp(t+h).*cos(t+h)+(t+h).^2.*sin(t+h); h=-10:0.1:10; n=length(h); for i=1:n gh(i)=quadl(@(t)f(t,h(i)),0,10); end plot(h,gh) 1.3.3 等高线 例 7 已知平面区域 0 x 1400 , 0 y 1200 的高程数据见表 3(单位: m) 。
图 1 原曲线及旋转面图形
3百度文库
画图及求解的 Matlab 程序如下 clc, clear y=@(x)(x.^2-2*log(x))/4; subplot(1,2,1),fplot(y,[1,4]) y=@(x,z)(x.^2+z.^2-log(x.^2+z.^2))/4.*(x.^2+z.^2>=1 & x.^2+z.^2<=16); subplot(1,2,2), ezsurf(y), title('') syms x z y=(x^2+z^2-log(x^2+z^2))/4; yx=diff(y,x); yz=diff(y,z); ds=sqrt(1+yx^2+yz^2) f=@(x,z)((x/2 - x./(2*(x.^2 + z.^2))).^2 + (z/2 - z./(2*(x.^2 + z.^2))).^2 + 1).^(1/2).*(x.^2+z.^2>=1 & x.^2+z.^2<16); I=quad2d(f,-4,4,-4,4) %注意这里使用 dblquad 无法求出结果
x2 y 2 1。 4 9
解 椭圆柱面无法化成单支的显函数,必须化成参数方程
x 2 cos t , y 3 sin t , z z.
clc, clear x1=@(t,z)2*cos(t) y1=@(t,z)3*sin(t) z1=@(t,z)z subplot(121), ezsurf(x1,y1,z1), title('') t=0:0.05:2*pi; z=-6:0.1:6; [t2,z2]=meshgrid(t,z); x2=2*cos(t2); y2=3*sin(t2); subplot(122), surf(x2,y2,z2) %比较 ezsurf 与 surf 的差异
1
n1 n2
randperm(n)产生 1 到 n 的一个随机全排列。 perms([1:n])产生 1 到 n 的所有全排列。 1.3 绘图命令 1.3.1 二维绘图命令 二维绘图的基本命令有 plot,loglog,semilogx, semilogy 和 polar。它们的使用方法基 本相同,其不同特点是在不同的坐标中绘制图形。 plot 命令使用线性坐标空间绘制图形; loglog 命令在两个对数坐标空间中绘制图形; 而 semilogx(或 semilogy)命令使用 x 轴 (或 y 轴) 为对数刻度,另外一个轴为线性刻度的坐标空间绘制图形;polar 使用极坐标空间绘制图形。 二维绘图命令 plot 为了适应各种绘图需要,提供了用于控制线色、数据点和线型的 3 组基本参数。它的使用格式如下: plot(x,y,’color_point_linestyle’) 该命令是绘制 y 对应 x 的轨迹的命令。y 与 x 均为向量,且具有相同的元素个数。用字 符串‘color_point_linestyle’完成对上面 3 个参数的设置。 线色 ( r-red, g-green, b-blue, w-white, k-black,i-invisible, y-yellow) ,数据点(., o, x, +,* ,S, H,D ,V ,^, >,<,p)与 线型(-, -.,--,:)都可以根据需要适当选择。 subplot 命令使得在一个屏幕上可以分开显示 n 个不同坐标系,且可分别在每一个坐标 系中绘制曲线。其命令格式如下 subplot(r,c,p) Matlab 函数画图的命令是 fplot。 命令 ezplot 既可以执行符号函数画图,也可以执行匿名函数画图。 例 1 用多种命令画出抛物线 y 3 x 的图形。 clc, clear x=-6:0.05:6; y=3-x.^2; subplot(2,2,1), plot(x,y) yy=@(x)3-x.^2; subplot(2,2,2), fplot(yy,[-6,6]) subplot(2,2,3), ezplot(yy,[-6,6]) subplot(2,2,4), ezplot('3-x^2',[-6,6]), title('')
表 1 高程数据表
1200 1100 1000 900 800 700 600 500 400 300 200 100 0 1350 1370 1380 1420 1430 950 910 880 830 740 650 510 370 0 1370 1390 1410 1430 1450 1190 1090 1060 980 880 760 620 470 100 1390 1410 1430 1450 1460 1370 1270 1230 1180 1080 880 730 550 200 1400 1430 1450 1480 1500 1500 1500 1390 1320 1130 970 800 600 300 1410 1440 1470 1500 1550 1200 1200 1500 1450 1250 1020 850 670 400 960 1140 1320 1550 1600 1100 1100 1500 1420 1280 1050 870 690 500 940 1110 1280 1510 1550 1550 1350 1400 400 1230 1020 850 670 600 880 1050 1200 1430 1600 1600 1450 900 1300 1040 830 780 620 700 800 950 1080 1300 1600 1550 1200 1100 700 900 800 720 580 800 690 820 940 1200 1600 1380 1150 1060 900 500 700 650 450 900 570 690 780 980 1550 1070 1010 950 850 700 300 500 400 1000 430 540 620 850 1500 900 880 870 810 780 500 200 300 1100 290 380 460 750 1500 1050 1000 900 380 750 550 300 100 1200 210 300 370 550 1550 1150 1050 936 780 650 480 350 150 1300 150 210 350 500 1550 1200 1100 950 750 550 350 320 250 1400
第1讲
Matlab 在高等数学和线性代数中的应用
司守奎 烟台市,海军航空工程学院数学教研室 Email:sishoukui@163.com
1 Matlab 软件入门 1.1 Matlab 帮助的使用 (1)help help %帮助总揽 help elfun %关于基本函数的帮助信息 help exp %指数函数 exp 的详细信息 (2)lookfor 指令 当要查找具有某种功能但又不知道准确名字的指令时, help 的能力就不够了,lookfor 可以根据用户提供的完整或不完整的关键词,去搜索出一组与之相关的指令。 lookfor integral %查找有关积分的指令 (3)超文本格式的帮助文件 在 Matlab 中,关于一个函数的帮助信息可以用 doc 命令以超文本的方式给出,如 doc eig %eig 求矩阵的特征值和特征向量 (4)pdf 帮助文件 可从 MathWorks 网站上下载有关的 pdf 帮助文件。 1.2 特殊向量和特殊矩阵 (1)特殊向量 t=[0:0.1:10] %产生从 0 到 10 的行向量,元素之间间隔为 0.1 t=linspace(n1,n2,n) %产生 n1 和 n2 之间线性均匀分布的 n 个数 (缺省 n 时,产生 100 个数) t=logspace(n1,n2,n) (缺省 n 时,产生 50 个数) %在 10 和 10 之间按照对数距离等间距产生 n 个数。 (2)特殊矩阵 i)单位矩阵 eye(m), eye(m,n) 可得到一个可允许的最大单位矩阵而其余处补 0, eye(size(a)) 可以得到与矩阵 a 同样大小的单位矩阵。 ii)所有元素为 1 的矩阵 ones(n),ones(size(a)),ones(m, n)。 iii)所有元素为 0 的矩阵 zeros(n),zeros(m,n)。 iv)空矩阵是一个特殊矩阵 ,这在线性代数中是不存在的。例如 q=[ ] 矩阵 q 在工作空间之中 ,但它的大小为零。通过空矩阵的办法可以删除矩阵的行与列。 例如 a(:,3)=[] 表示删除矩阵 a 的第 3 列。 ⅴ)随机数矩阵 rand(m,n) 产生 m×n 矩阵,其中的元素是服从[0,1]上均匀分布的随机数。 normrnd(mu,sigma,m,n)产生 m×n 矩阵,其中的元素是服从均值为 mu,标准差为 sigma 的正态分布的随机数。 exprnd(mu,m,n) 产生 m×n 矩阵,其中的元素是服从均值为 mu 的指数分布的随机数。 poissrnd(mu,m,n) 产生 m×n 矩阵,其中的元素是服从均值为 mu 的泊松(Poisson)分布 的随机数。 unifrnd(a,b,m,n) 产生 m×n 矩阵,其中的元素是服从区间 [a,b]上均匀分布的随机数。 ⅵ)随机置换
2
1.3.2 三维绘图命令 Matlab 也提供了一些三维基本绘图命令,如三维曲线命令 plot3,三维网格图命令 mesh 和三维表面图命令 surf。 plot3(x,y,z)通过描点连线画出曲线, 这里 x,y,z 都是 n 维向量, 分别表示该曲线上点集的 横坐标、纵坐标、竖坐标。 命令 mesh(x,y,z)画网格曲面。这里 x,y,z 是三个同维数的数据矩阵,分别表示数据点的 横坐标、纵坐标、竖坐标,命令 mesh(x,y,z)将该数据点在空间中描出,并连成网格。 命令 surf(x,y,z)画三维表面图,这里 x,y,z 是三个同维数的数据矩阵,分别表示数据点的 横坐标、纵坐标、竖坐标。 例 2 在区间 [0,10 ] 画出参数曲线 x sin(t ) , y cos(t ) , z t ,并分别标注。 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) xlabel('sin(t)'), ylabel('cos(t)'), zlabel('t') 例 3 绘制二元函数