数学应用软件实验指导书(32课时).doc_第1页
数学应用软件实验指导书(32课时).doc_第2页
数学应用软件实验指导书(32课时).doc_第3页
数学应用软件实验指导书(32课时).doc_第4页
数学应用软件实验指导书(32课时).doc_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数学应用软件实验指导书覃 义 编桂林电子科技大学数学与计算科学学院二O一三年三月一、概述本课程实验指导书是根据Holly Moore著,高会生,刘童娜,李聪聪译的MATLAB实用教程编写的。 通过上机实验,可帮助学生迅速掌握MATLAB的操作方法以及程序设计,并能够使用MATLAB解决实际问题。二、实验环境本书选择的实验环境是计算机以及软件Matlab(版本7.5以上)一套。三、实验课时安排32课时,每个实验2课时。四、实验要求上机完成实验指导书中所规定的内容,自行按实验指导书要求完成程序设计和调试,并提交每次实验的实验报告,附带算法程序清单和算法输出结果。五、实验考核要求上机完成试验内容,并提交一份算法程序清单和数值结果。实验一 MATLAB的基本操作一、实验目的1.能独立安装MATLAB软件,熟悉MATLAB的各个窗口及菜单功能,掌握其使用方法。2.能够进行一些基本运算。二、实验课时:4课时三、实验原理 1.运行MATLAB软件,打开MATLAB窗口,了解命令窗口(Command Window,输入各种操作命令)、工作空间(Workspace,用于存储各种变量和结果的内存空间,可对变量进行编辑、保存、观察和删除)、当前目录(Current Directory,MATLAB运行时的工作目录)、历史命令(Command History,自动保留所用过的命令的历史记录,通过双击,可以使历史命令再运行)、菜单栏、工具栏及start按钮(提供快速访问MATLAB的各种功能和查阅MATLAB包含的各种资源的命令菜单)的功能。2.命令输入方式在命令窗口符号后面输入命令。一般来说,一个命令行输入一条命令,命令行以回车结束。但一个命令行也可以输入若干条命令,各命令之间以逗号分隔。若前一命令后带有分号,则逗号可以省略,此时只显示最后一条命令的执行结果。例如,如果一个命令行很长,一个物理行之内写不下,可以在第1个物理行之后加上3个小黑点并按下回车键,然后接着下一个物理行继续写命令的其他部分,3个小黑点“”称为续行符,即把下面的物理行看作上一行的逻辑继续。例如,3.命令行编辑的常用控制键及其功能4.学会使用MATLAB的帮助功能使用MATLAB的帮助功能可以通过主窗口中的Help菜单项,或者在命令窗口中输入helpwin,helpdesk,doc来获取帮助页面。帮助页面左边为帮助向导,右边为对应的帮助项。在帮助向导页面中包含4个可供选择选项卡:Contents选项卡用来查看帮助的主题;Index选项卡根据指定的关键词进行查找;Search Results选项卡查找指定的单词;DeMos选项卡查看和运行MATLAB的演示程序。5.MATLAB的变量和数据操作6.变量的管理7.MATLAB的矩阵及其基本运算矩阵的生成:5.冒号表达式矩阵的拆分:矩阵的算术运算:矩阵运算常用函数常用的数学函数关系运算:逻辑运算:四、课堂演示1,计算的值 lg(10)MATLAB命令:cos(pi/4)+exp(2)+log(3)计算结果:ans = 9.1948说明:(1)在MATLAB中,有一些预留的变量,如pi,eps,i,j,k,ans,inf,Nan等等(2)计算自然底数的次幂,可以调用函数,而计算一般实数的次幂,则可以调用MATLAB命令;(3)表示以自然底数为底数的对数,若要计算以10为底的对数,则应该调用,要计算以其它实数为底的为对数时,则要经过对数性质进行转换,如:。2, 生成小于10的正奇数构成的向量,并赋给变量MATLAB命令:A = 1:2:10 或 A = 1 3 5 7 9说明:(1) 生成起始值为,步长为,终止值为的向量,即生成起始值为,公差为,终止值为的等差数列,若不是等差数列中的数,则向量的终止值为等差数列中小于的最大值;若公差为1,则可省略不写,如A=1 2 3 4 5可以写成:A = 1:5; (2)生成长度一定的等差数列时,也可以使用linspace,调用格式为linspace(a,b,n),其含义是:生成一个起始值为a,终止值为b,个数为n的等差数列。3.在MATLAB中输入矩阵,并赋给变量MATLAB命令:B = 11 12 13 14;21 22 23 24;31 32 33 34;41 42 43 44说明:(1) 在输入矩阵时,同行元素间用空格或逗号隔开,不同行间要用分号隔开;(2) 若同一行的命令太长,可以用”断行;(3) 命令ones,zeros,eye,magic等可以生成一些特殊矩阵;4. 在上一步生成的矩阵B中提取第一行第三列的元素;第二列所有元素;第四行所有元素;MATLAB命令:B(1,3), B(:,2), B(4,:)说明:(1) B(a b,c d)表示提取矩阵B的第a,b行及第c,d列交叉元素;(2) B(a,:)表示第a行所有元素,B(:,b)表示第b列所有元素;5. 在矩阵B中删去第四行的所有元素MATLAB命令:B(4,:) = 说明:(1) 要删去某列所有元素,可用命令B(:,b) = ;(2) 若要删去多行或多列,则可用B(v,:) = ,或B(:,v) = ,其中v是指定下标构成的向量;6. 矩阵A是3阶魔方阵,B是3阶随机阵,计算A+B,A-B,A*B,A2,A/B,ABMATLAB命令:A = magic(3),B = rand(3),A+B, A-B,A*B说明:这是普通的矩阵运算7. 用以上矩阵进行运算: A.*B, A.2, A./BMATLAB命令:A+B,A-B,A.*B, A.2, A./B说明:MATLAB的点运算是对应元素进行相应运算8. 将以上生成的变量保存到文件save_var.mat中MATLAB命令:save save_var.mat说明:(1) 可以指定要保存的变量,如save save_var.mat A(2) 可以指定要保存的文件的目录,如:save(F:save_var.mat,A)表示:把变量A保存到F盘的save_var.mat文件中;(3) 若要把指定的mat文件中的变量导出到命令空间,可用命令load,例如load(F;save_var.mat)9. 使用帮助命令MATLAB命令:help说明:(1) 当不知道系统有何帮助内容时,可以直接输入help命令以寻求帮助;(2) 当已知MATLAB的某信命令,但不知道具体用法时,可以输入help (命令),如:help linprog(3) 当要完成某一操作,而不知道有什么命令可以使用时,可以使用lookfor,如:lookfor line可以查找与直线、线性问题有关的函数(4) 利用demo命令可以查看某种功能的程序示例或是某个工具箱的使用方法。五、课堂练习1. 计算2. 录,时,计算式子的值:3. ,执行以下命令: A(2,3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:)A*B A.*B A2 A.2 B/A B./A4. 产生一个5阶魔方矩阵,将矩阵的第3行第4列赋给变量;将由矩阵第2,4行,第2,5列构成的子矩阵赋给变量5. 产生一个5阶魔方矩阵,然后删除第2,5行的所有元素;删除第4列的所有元素,并把所得的矩阵赋给变量6. 在F盘建立一个以自己学号命名的文件夹,把以上产生的所有变量保存到该文件夹中的文件myvar.mat7. 阶Hilbert矩阵是由构成的矩阵,查看生成Hilbert矩阵的命令hilb的帮助文件,然后生成一个5阶的Hilbert矩阵。六、实验报告要求 简述实验目的;写出实验内容中解答各个题目所需要的命令及实验结果;简写实验总结与心得体会。 实验二 MATLAB的绘图功能一、实验目的 1. 了解MATLAB的图形窗口及其基本操作。 2. 掌握MATLAB绘制二维平面图形的命令。 3. 掌握MATLAB绘制三维立体图形的命令。 4. 了解一些常用绘图命令及绘图标注。二、实验课时: 4课时三、实验原理 1. 二维基本绘图函数plot 调用格式:plot(x, y, s) 说明:x,y是向量,表示用于描绘曲线的点的横坐标和纵坐标,s表示用于指定描绘黄线的线形及曲线的颜色。 plot(x1, y1, s, x2, y2, s, xn, yn, s)可以在同一个坐标系内画多条曲线。 s可以指定的线型及颜色可以由下表给出。线型/颜色标识符线型/颜色标识符线型/颜色标识符实线-星号*六角星h点:方形S蓝色b点画线-.菱形d绿色g虚线-下三角v青色r点.上三角洋红色m圆圈o左三角黑色k加号+五角星p白色w2. 符号函数(显函数、隐函数和参数方程) (1) ezplot 调用格式:ezplot(f(x),a,b) 说明:表示在axb区间内绘制显函数f = f(x)的函数图 调用格式:ezplot(f(x,y), xmin, xmax, ymin, ymax ) 说明:表示在区间xminxxmax和yminyymax上绘制隐函数f(x,y) = 0的函数图像。 调用格式:ezplot(x(t), y(t) ,tmin, tmax) 说明:表示在区间tmint提示符,用户可以查看工作区中的变量,可以改变变量的值。输入 return 指定返回程序,继续运行。(4)在调试一个单独的函数时,可以将函数改写为脚本文件,此时可以直接对输入参数赋值,然后以脚本方式运行该 M 文件,这样可以保存中间变量,在运行完成后,可以查看中间变量的值,对结果进行分析,查找错误所在。四、课堂演示1. 分别建立命令文件和函数文件,将华氏温度f转换为摄氏温度c。程序1: 首先建立脚本文件并以文件名f2c.m存盘。clear; %清除工作空间中的变量f=input(Input Fahrenheit temperature:);c=5*(f-32)/9然后在MATLAB的命令窗口中输入f2c,将会执行该命令文件,执行情况为:Input Fahrenheit temperature:73c = 22.7778注:(1) input是屏幕输入语句,MATLAB运行到此处时会暂停,等待用户输入信息,并把输入的信息赋给变量f; (2) %后面的语句是注释语句,MATLAB不会执行这些语句,但只对此行起作用。程序2:首先建立函数文件f2c.m. function c=f2c(f)c=5*(f-32)/9然后在MATLAB的命令窗口调用该函数文件。clear;y=input(Input Fahrenheit temperature:);x=f2c(y)输出情况为:Input Fahrenheit temperature:70c = 21.1111x = 21.11112. 求一元二次方程ax2 +bx+c=0的根。程序如下:a=input(a=?);b=input(b=?);c=input(c=?);d=b*b-4*a*c;x=(-b+sqrt(d)/(2*a),(-b-sqrt(d)/(2*a);disp(x1=,num2str(x(1),x2=,num2str(x(2);注:disp函数是屏幕输出语句,其调用格式为 disp(输出项)其中输出项既可以为字符串,也可以为矩阵。3. 编程实现:输入的值,计算函数的函数值,其中程序如下:function y = f(x) if x1 y = x;elseif x f(-10)ans = -10 f(4)ans = 7 f(20)ans = 494. 输入成绩,当小于60时,输出“不及格”,当大于等于60且小于70,输出“及格”,当大于等于70小于80时,输出“良”,当大于等于80小于等于100时,输出“优”MATLAB代码:function y = chengjidengji(x) switch floor(x/10) case 8,9,10 y = 优; case 7 y = 良; case 6 y = 及格; otherwise y = 不及格;end运行结果: chengjidengji(59)ans =不及格 chengjidengji(61)ans =及格 chengjidengji(75)ans =良 chengjidengji(100)ans =优注:(1) floor是取整函数,取整方向为负无穷方向,如floor(6.1)=6; (2) 在MATLAB中,字符型的值要用单引号引起来。5. 输入自然数,计算和式MATLAB代码:function y = msum(N) y = 0;for i = 1:N y = y+1/i;end运行结果: msum(1000)ans = 7.4855注:此例是为了演示MATLAB中循环的程序编写方式,但在MATLAB中用for循环的运算效率不高,通常要考虑将其向量化,如此例可以用以下代码替换:y = sum(1./1:N);6. 编程实现n 阶Hilbert矩阵,其中MATLAB代码:function y = myHilbert(N) for i = 1:N for j = 1:N y(i,j) = 1/(i+j-1); endend运行效果: myHilbert(5)ans = 1.0000 0.5000 0.3333 0.2500 0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429 0.2500 0.2000 0.1667 0.1429 0.12500.2000 0.1667 0.1429 0.1250 0.1111注:MATLAB的循环可以多重嵌套。7. 计算斐波那契数列的和,当和大于1000时退出。斐波那契数列是指:MATLAB代码:function y = fsum() a0 = 0;a1 = 1;y = 0;while y fsumans = 1597注:(1) MATLAB的函数可以没有输入参数,也可以没有输出参数;可以有多个输入参数,也可以有多个输出参数,当输出的参数个数多于一个时,输出变量要用中括号括起来;(2) 当不知道循环次数时,可以考虑用while循环实现;各类循环之间可以相互转换;8. 计算阶乘MATLAB代码:function y = jiecheng(n)if n jiecheng(10)ans = 3628800注:函数自己调用自己叫做递归。 五、课堂练习1. 分别用脚本文件和函数文件实现以下功能:输入参数,画出函数的图像;2. 编程实现:输入的值,计算函数的函数值,其中,并计算3. 编写一个函数mylog(n,x)来计算实数x的对数,其中,当n取10,计算以10为底的对数;当n取2时,计算以2为底的对数,当n取3时,计算以自然底数为底的对数,当n取其它数时候,用换底公式进行计算。4. 编程实现求和: 5. 计算和式,当和大于1000时,退出;6. 计算组合数,用递归实现;7, 计算以下和式,并估计其求和公式以及验证: 8,估计以下级数的和,并编程验证。 9,画一个国际象棋的棋盘;10,给个人编上号:,按顺序围成一个圈坐好,从号开始报数,报到的人退出,下一个人再从开始往下报数,重复这个过程,请问最后剩下的那个人的号数是多少?请编程实现,并取进行验证;11,求出之间的所有素数;12,求出所有的水仙花数(所谓水仙花数,是满足以下条件的三位数:各位数的立方之和等于它本身,例如,);13,将一个正整数进行质因数分解,例如:;14,求两个正整数的最小公倍数和最大公因数;15,有一个已排好序的数组,现在输入一个数,请按照原来的规律将此数插入到数组中;16,将一个数组逆序输出;六、实验报告要求 简述实验目的;写出实验内容中解答各个题目的MATLAB代码及实验结果;简写实验总结与心得体会。实验四 MATLAB的符号计算一、实验目的 1. 熟悉符号变量的定义和性质; 2. 掌握符号变量的使用与运算过程; 3. 掌握MATLAB中常见的符号运算命令。二、实验课时:2课时三、实验原理 1. 符号对象的创建 (1) sym函数:用于创建单个变量或表达式,其调用格式为: 符号变量 = sym(A) 其中A是一个字符串 (2) syms函数:用于创建多个符号变量,其调用格式为: syms 符号变量1符号变量2 符号变量n 2. 常见的符号运算命令 factor(s) 对符号表达式s 分解因式 expand(s) 对符号表达式s 进行展开 collect(s) 对符号表达式s 合并同类项 collect(s,v) 对符号表达式s 按变量v合并同类项 simplify(s) 对符号表达式s按函数规则进行化简 simple(s) 调用MATLAB的其它函数对s进行综合化简,并显示化简过程 findsym(s,n) 查找一个符号表达式中的符号变量,函数返回符号表达式s中的n个符号变量,如果没有指定n,则返回所有的符号变量 subs(f,x,a) 用给定的数据替换符号表达式中指定的符号变量3. 符号微积分 (1)符号极限limit 其调用格式为: limit(f,x,a): 求符号函数f(x)当自变量x趋于a时的极限 limit(f,a): 求符号函数f(x)的极限,由于没有指定自变量,MATLAB令默认的符号变量取极限 limit(f): 求符号函数f(x)的极限,默认情况下自变量趋于0时的极限 limit(f,x,a,right): 求符号函数f(x)在a处的右极限 limit(f,x,a,left): 求符号函数f(x)在a处的左极限 (2) 符号导数diff 其调用格式为: diff(s): 求符号函数s对默认变量求一阶导数 diff(s,v):求符号函数s对变量v求一阶导数 diff(s,n):求符号函数s对默认变量求n阶导数 diff(s,x,n):求符号函数s对变量x求n阶导数 (3) 符号积分int 其调用格式为: int(s): 求符号函数s对默认变量的不定积分 int(s,v): 求符号函数s对变量v的不定积分 int(s,v,a,b): 求符号函数s对变量v的上下限分别是a和b的定积分 (4) 符号级数求和symsum 其调用格式为: symsum(s,v,n,m): 其中s是级数的通项,是一个表达式,v是求和变量,若没有指定v,则对系统默认变量进行求和,n和m是求和的开始项和正末项 (5) 函数的泰勒级数taylor 其调用格式为: Taylor(f,v,n,a):将函数f按变量v展开为泰勒级数,展开到第n项为止,n的缺省值是6,若没有指定v,则按系统默认的变量进行于展开,a指定函数在a处展开,系统默认值是0四、课堂演示1.生成符号变量xx = sym(x) 或syms x注:syms可以生成多个符号变量,如要生成符号变量x,y,z,则可用命令:syms x y z生成符号表达式f = sym(a*x2+b*x+c) 或f = a*x2+b*x+c生成符号方程ef = sym(a*x2+b*x+c=0) 或ef = a*x2+b*x+c=02. 生成符号矩阵用sym生成:A = sym(1/a,x2;abs(x),a2*x)注:矩阵元素不能是等式;符号天达式的长度可以不相同;元素间用逗号或空格分隔;用syms生成:syms a b c d;A = a b c; b c a; c a d3. 设,将f因式分解,将g展开syms xf = x3-6*x2+11*x-6;g = (x-1)*(x-2)*(x-3);factor(f)expand(g)4. 已知多项式,分别对x,y合并同类项syms x y ap = a+x*y+2*x*y2+3*x2*y;collect(p)collect(p,x)collect(p,y)5. 化简下列表达式 syms t a xy1=(sin(t)2+3*sin(t)*cos(t)+(cos(t)2y2=(a-1)*(a2+1)+a*(a+1)y3=x+(x3+1)/(x+1)s1=simplify(y1)s2=simplify(y2)s3=simplify(y3)6. 求下列极限:(1) syms x m n limit(sin(m*x)/(n*x),x,0) ans = m/n(2) syms a t y=(a-t)*tan(pi*t/(2*a); limit(y,t,a) ans = 2/pi*a7. 求下列函数的极限:(1) syms m a limit(m*(a(1/m)-1),m,inf) ans = log(a)(2) syms x a b c y1=(a*x+1)10, y2=(b*x-2)20 y3=(c*x+3)30, y=y1*y2/y3 limit(y,x,inf) ans = a10*b20/c308. 求函数的一阶,二阶导数 syms x y y=atan(x+1)/(x-1) y = atan(x+1)/(x-1) yx=diff(y,x) yx = (1/(x-1)-(x+1)/(x-1)2)/(1+(x+1)2/(x-1)2) y1=simple(yx) y1 = -1/(x2+1) yxx=diff(y,x,2) yxx = (-2/(x-1)2+2*(x+1)/(x-1)3)/(1+(x+1)2/(x-1)2)-(1/(x-1)-(x+1)/(x-1)2)/(1+(x+1)2/(x-1)2)2*(2*(x+1)/(x-1)2-2*(x+1)2/(x-1)3) y2=simple(yxx) y2 = 2*x/(x2+1)29. 求二元函数的导数 syms x y z z=x4+y4-cos(2*x+3*y) z = x4+y4-cos(2*x+3*y) zx=diff(z,x) zx = 4*x3+2*sin(2*x+3*y) zy=diff(z,y) zy = 4*y3+3*sin(2*x+3*y) zxx=diff(zx,x) zxx = 12*x2+4*cos(2*x+3*y) zxy=diff(zx,y) zxy = 6*cos(2*x+3*y) zxyx=diff(zxy,x) zxyx = -12*sin(2*x+3*y)10. 求不定积分 syms x; y = x2; int(y,x) ans = 1/3*x3注:有些初等函数是没有解析的原函数的,如 syms x int(exp(x2),x) ans = -1/2*i*pi(1/2)*erf(i*x)11. 计算定积分: syms x m int(cos(x/2),0,m*pi) ans = 2*sin(1/2*m*pi)12. 计算反常积分 syms x int(1/sqrt(x*(x+1)3),0,inf) ans = 213. 计算和式: syms n x; fn = x/n/(n+1); s100 = symsum(fn,n,1,100) s100 = 100/101*x sinf = symsum(fn,n,1,inf) sinf = x14. 将函数在作五阶Taylor展开 syms x; y = exp(x); taylor(y,5,0) ans = 1+x+1/2*x2+1/6*x3+1/24*x4五、课堂练习1. 生成符号变量、符号表达式、符号方程及符号矩阵: (1) x1,x2,x3 (2) f = x3+y3 (3) sin(x*y)+y = 0 (4) 2. 合并同类项:,要求分别按合并和按合并;3. 因式分解:(1) ;(2) 4. 化简:5. 计算极限:(1) ,(2) 6. 已知,求该函数的一阶,二阶导数,并化简。7. 已知,试计算,并化简;8. 计算以下积分:(1) ;(2) ;(3) 9. 求级数10. 试求函数在点的Taylo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论