数学模型与数学实验讲义精品资料.doc

上传人:封****n 文档编号:96698948 上传时间:2024-03-10 格式:DOC 页数:245 大小:11.24MB
返回 下载 相关 举报
数学模型与数学实验讲义精品资料.doc_第1页
第1页 / 共245页
数学模型与数学实验讲义精品资料.doc_第2页
第2页 / 共245页
点击查看更多>>
资源描述

《数学模型与数学实验讲义精品资料.doc》由会员分享,可在线阅读,更多相关《数学模型与数学实验讲义精品资料.doc(245页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一章 MATLAB软件的基本操作1.1 矩阵的建立和基本运算一、实验目的熟悉MATLAB软件中关于矩阵的建立以及矩阵运算的各种名命令。二、实验内容与要求1.启动与退出双击MATLAB图标,进入MATLAB命令窗口,即可输入命令,开始运算。单击File菜单中Exit,或使用MATLAB的Exit命令退出。2.数、数组、矩阵的输入(1)数的输入 a=5回车:a = 5输入复数2-5i b=2-5ib = 2 - 5i(2)数组的输入 b=1,3,5,7,9,11b = 1 3 5 7 9 11 c=1:2:11c = 1 3 5 7 9 11 d=linspace(1,11,6)d = 1 3

2、5 7 9 11问题:体会以上输入方法有什么区别和联系。若b为在02(用pi表示)之间均匀分布的22个数据,c=(1.3,2.5,7.6,2,-3),d=(23,20,17,14,11,8,5,2),b、c、d各用何种方法输入较简单(3)矩阵的输入 A=2,3,5;1,3,5;6,9,4 %行之间要用分号隔开A = 2 3 5 1 3 5 6 9 43.矩阵大小的测试和定位 A=3,5,6;2,5,8;3,5,9;3,7,9A = 3 5 6 2 5 8 3 5 9 3 7 9 d=numel(A) %测试定矩阵A的元素数d = 12 n,m=size(A) %测试A的行(n)、列(m)数n

3、= 4m = 3 i,j=find(A3) %找出A中大于3的元素的行列数4.矩阵的块操作 A(2,:) %取出A 的第2行的所有元素ans = 2 5 8 A(1,3,:) %取出A的第1、3行的所有元素ans = 3 5 6 3 5 9A(2:3,1:2) %取出A的2、3行与1、2列交叉的元素ans = 2 5 3 5 A(1,3,:)=A(3,1,:) %将A的第1行和第3行互换问题:如何将A的2、3列互换? A(2,:)=4 %将A的第2行的所有元素用4取代 A(find(A=3)=-3 %将A中等于3的所有元素换为-3 A(2,:)= %删除A的第2行reshape (A,2,6)

4、 %返回以A的元素重新构造的26维矩阵ans = 3 3 5 5 9 6 4 3 4 7 4 9 A(4,5)=3 %扩充A的维数,A成为45维矩阵,未定义元素为3注意:“:”表示全部5.矩阵的翻转操作flipud (A) %A进行上下翻转fliplr(A) %A进行左右翻转rot (A) %A逆时针旋转问题:尝试操作 rot90(A,2)和 rot90(A,-2),结果有区别吗?6.特殊矩阵的产生 A=eye(n) %产生n维单位矩阵 A=ones(n,m) %产生nm维1矩阵 A=zeros(n,m) %产生nm维0矩阵 A=rand(n,m) %产生nm维随机矩阵(元素在01之间)7.数

5、的运算4+2424/2 %4右除2,等于242 %4左除2,等于0.543 %4的3次方sqrt(4) %4的算术平方根exp(3) %e的三次方,不能输成e3log(4) %4的自然对数,log10(4)是以10为底,log2(4)是以2为底8.矩阵的运算 % A的转置det(A) % A的行列式,A必须是方阵rank(A) % A的秩3A %常数与矩阵相乘A+B %A、B必须是同维矩阵,和3+A进行比较A-B %A、B必须是同维矩阵,和3-A进行比较AB %和A. B进行比较A/B %(和A./B进行比较)AB %(和A.B进行比较)A2 % A2相当于AA(和A.2进行比较)三、练习与思

6、考(1) 熟悉MATLAB的启动和退出(2)自找23个例子,熟悉数和数组的各种运算,以及它们的各种函数值。(3)自找23个例子,熟悉矩阵的加减乘除及其它运算,注意和点运算的区别。(4)输入一个矩阵A,取出A的第2行第1列的元素;取出A的第1,3,4列的所有元素;让A的第1列和第3列互换;删除A的第2列。(5)产生3 4的1矩阵,产生42的随机矩阵,产生4维的单位矩阵。(6)将A的第2行元素扩大2倍,再增加3后作为A的第3行元素。1.2 多项式和线性方程组的求解一、实验目的学会用MATLAB软件求解多项式和线性方程组二、 实验内容与要求1 多项式的表达方式(1) 用降幂排列的多项式的数向量表示例

7、1 对多项式和,用多项式的系数表示为 p=1,2,0,-5,6 s=1,2,3(2) 由根创建多项式 r=1,4,8 %已知多项式的根为(1,4,8) p=poly(r)p = 1 -13 44 -32 p=poly2sym(p) %将多项式的向量表示转变为符号形式p =x3-13*x2+44*x-322 多项式的加减乘除例2 求例1中多项式p,s的和、差、积、商。 p=1,2,0,-5,6 s=0,0,1,2,3 p+s %多项式加法,向量p,s必须同维,s扩维成s=0,0,1,2,3ans = 1 2 1 -3 9 p-s %多项式减法,向量p,s必须同维conv(p,s) %求多项式p和

8、s的乘积,也是向量p,s的卷积问题:向量的除法,除数不能为零,这里s的第一个元素为零,怎么办?解决方法有两种,当s=0,0,1,2,3时,输入q,r=deconv(p,s(3:5),或把s仍输为s=1,2,3,则q,r=deconv(p,s)p=1,2,0,-5,6;s=1,2,3 q,r=deconv(p,s) %求多项式p除以s的商q和余项rq = 1 0 -3r = 0 0 0 1 153 求多项式的根r=roots(p) %求多项式p的根,即方程p(x)=0的解。pc=compan(p) %求多项式p的伴随矩阵。例3 求多项式的根解: p=1,2,6r=roots(p)4 多项式的微分

9、和赋值运算d=polyder(p) %求多项式p的一阶微分 d=polyder(p,s) %求多项式p,s乘积的一阶微分q,d=polyder(p,s) %求多项式p,s商p/s的一阶微分,q为分子,d为分母y=polyval(p,a) %计算x=a时多项式p的值例4 求例1中多项式p的一阶导数,求x=1,3,5时多项式p(x)的值。解: p=1,2,0,-5,6 d=polyder(p)结果为:d = 4 6 0 -5x=1:2:5 %x取3个值y=polyval(p,x) %计算对应x的多项式p的3个值结果为y = 4 126 8565 非齐次线性方程组求解X=Ab %用矩阵左除法求线性方

10、程组AX=b的解C=A,b %由系数矩阵A和常数列向量b构成增广矩阵C D=rref(C) %将C化成行最简行,则D的最后一列元素就是所求的解例5 用矩阵左除法求解A=2,3,5;3,6,8;6,5,4b=12;34;43R=rank(A) X=Ab结果为:R = 3X = 0.2759 12.3793 -5.1379注意:b是列向量,求解前先检验A是否为满秩方阵解二:用函数rref求解C=A,b D=rref(C)结果为:D = 1.0000 0 0 0.2759 0 1.0000 0 12.3793 0 0 1.0000 -5.1379则D的最后一列元素就是所求的解,同解一结果相同6 线性

11、齐次方程组的求解例6 求解方程组的通解:解:A=1,2,2,1;2,1,-2,-2;1,-1,-4,-3format rat %指定有理式格式输出B=null(A,r) %求解空间的有理基B = 2 5/3 -2 -4/3 1 0 0 1注意:format rat是有理格式输出,小数用最接近的分数表示;若输入format long 则输出格式是长格式,显示15位数;缺省格式是format short(短格式),显示到小数点后面4位。7 利用矩阵的LU,QR和Cholesky分解求方程组的解(1) LU分解LU分解又称为Gauss消去分解,可把任意方阵A分解为下三角矩阵L和上三角矩阵U的乘积,即

12、A=LU,命令L,U=lu(A)可求得L与U。则方程AX=b变成LUX=b所以,X=U(Lb)(2) Cholesky分解若A为对称正定矩阵,则Cholesky分解可将矩阵A分解成上三角矩阵和其转置的乘积,即,其中,R为上三角阵,命令R=chol(A)可求得R。则方程AX=b变成所以,(3) QR分解对于任何长方矩阵A,都可以进行QR分解,其中Q为正交矩阵,R为上三角矩阵的初等变换形式,即A=QR,命令Q,R=qr(A)可求得Q,R则方程AX=b变形QRX=b所以,说明:这3种分解,在求解大型方程组时很有用,其优点是运算速度快、可以节省磁盘空间、节省内存。例7 用上述(1)(3)两种方法求解例

13、5中的线性方程组。解一: L,U=lu(A)L = 1/3 8/21 1 1/2 1 0 1 0 0 U = 6 5 4 0 7/2 6 0 0 29/21 X=U(Lb)X = 8/29 359/29 -149/29解二:Q,R=qr(A)Q = -2/7 -361/1469 -1495/1614 -3/7 -351/422 271/768 -6/7 1127/2264 341/2577 R = -7 -54/7 -58/7 0 -4625/1428 -4130/701 0 0 -1361/1064X=R(Qb)X = 8/29 359/29 -149/29 三、 练习和思考(1)输入任意两

14、个多项式,并进行加减乘除运算,注意它们的结果(2)求上面的两个多项式的根,并进行逆运算(3)求上面的两个多项式的一阶导数,并求x=0:0.2:2对应多项式的值。(4)求解下列线性方程组 1.3 符号运算一、 实验目的学会MATLAB符号运算的基本功能二、 实验内容与要求1 字符型变量、符号变量、符号表达式、符号方程的建立用单引号设定字符串变量的方法如下:例1 a=u+4 定义a为字符型变量a =u+4创建字符型变量有如下两种方法。方法一:用命令sym()创建单个符号变量、符号表达式、符号方程。例2 x=sym(m+n+i) 定义x为符号型变量 x = m+n+i y=sym(d*x2+x-4)

15、 定义y为符号表达式 y = d*x2+x-4 e=sym(a*x2+b*x+c=0) 定义e为符号方程 e = a*x2+b*x+c=0问题:继续输入 (命令是将符号变量或字符变量转换为数值变量),找出字符型变量和符号型变量之间的区别和联系。方法二:用命令syms创建多个符号变量、符号表达式。例3 syms a b x y 定义为符号变量, s=a*x4+b*cos(y)-x*y 定义为符号表达式 s = a*x4+b*cos(y)-x*y注意:sym()中的单引号不要漏,syms后的符号变量之间不能用逗号,用syms不能建立符号方程。 2 合并同类项格式:collect(S) 是对S中的每

16、一函数,按缺省变量x的次数合并系数。 collect(S,v) 是对制定的变量v计算,操作同上。例4 syms x y 定义x,y为符号变量 R1=collect(exp(x)+x)*(x+2); 结果为x2+(exp(x)+2)*x+2*exp(x) R2=collect(x+y)*(x2+y2+1),y); 结果为y3+x*y2+(x2+1)*y+x*(x2+1)3 复合函数计算格式: 返回复合函数,其中,例5 syms x y f=1/(1+x2*y);g=sin(y); C=compose(f,g,x,y) 结果为1/(1+sin(y)2*y)问题:例119中若,结果如何?,结果又如何

17、?4 符号表达式的展开格式:R=expand(S) 展开符号表达式S中每个因式的乘积。例6 syms x y t E=expand(x-2)*(x-4)*(y-t) 结果为x2*y-x2*t-6*x*y+6*x*t+8*y-8*t5 符号因式分解格式:factor(S) S可以是正整数、符号表达式或符号整数。例7 syms x y F1=factor(x4-y4) 结果为(x-y)*(x+y)*(x2+y2)问题:若F2factor(sym(12345678901234567890),结果如何?F2=(2)*(3)2*(5)*(101)*(3803)*(3607)*(27961)*(3541)

18、,分解为质因数之积。6.符号表达式的通分格式:N,D=numden(S) 将符号表达式S中的每一元素进行通分,其中N为分子的表达式,D为分母的表达式。例8 syms x y N,D=numden(x/y+y/x) 结果为N =x2+y2 ,D = x*y6 符号表达式的化简7 格式:Rsimplify(S) 运用多种恒等式转换对符号表达式S进行综合化简。例9 syms x a b c R=simplify(exp(c*log(sqrt(a+b) 结果为(a+b)(1/2*c)8 搜索符号表达式的最简形式格式:rsimple(S) 运用包括simplify在内的各种指令找出符号表达式S的代数上的

19、最简短形式,多次使用,可找到最少字母的简化式。例10化简 syms x f=(1/x3+6/x2+12/x+8)(1/3); f1=simple(f),f2=simple(f1) f1 = (2*x+1)/x f2 = 2+1/x问题:分别用simple,simplify命令两次化简,试比较命令simple,simplify命令之间的区别和联系。9 将复杂的符号表达式显示成我们习惯的数学书写形式格式:pretty(S) 用缺省的线型宽度79显示符号矩阵S中的每一元素。例11 y=sym(log(x)/sqrt(x); dy=diff(y) pretty(dy)计算结果为:dy = 1/x(3/

20、2)-1/2*log(x)/x(3/2)10.函数的反函数格式:g=finverse(f) 返回函数f的反函数,其中f为单值的一元数学函数,如。若f的反函数存在,设为g,则有。例12 f=sym(1+3*x); v=finverse(f) 结果为-1/3+1/3*x11.符号表达式求和格式: 对S中制定的符号变量从到求和。例13 syms n r=symsum(n2,1,n) 结果为1/3*(n+1)3-1/2*(n+1)2+1/6*n+1/6 simple(r) 上式化简为1/6*n*(n+1)*(2*n+1)问题:若结果如何(按列求和)?12确定符号表达式中或矩阵中的符号变量格式: 以字母

21、表的顺序返回表达式S中所有符号变量(除了与)。若S中没有任何的符号变量,则findsym返回一空字符串。 从S中返回靠最近的个符号变量,若大于S中符号变量的个数,则按字母表的顺序返回符号变量。例14 syms a x y z t s1=findsym(x+i*y-j*z+eps-nan) s2=findsym(a+t-y,2) s3=findsym(a+t-y,4) s1 =NaN, x, y, z s2 =y,t s3 =a, t, y13置换符号变量格式: 用置换S中的。例15 syms a x y t S=a*sin(x)+y; S1=subs(S,x,t) S2=subs(S,x,pi

22、/3)结果为:S1 = a*sin(t)+yS2 = 1/2*a*3(1/2)+y14字符变量、符号变量和数值变量之间的转换格式: 若S是字符变量,转换为S中相应字符的值;若S是符号变量,转化为数值形式,若有非数字符号(除),则给出错误信息。 将字符变量转换为数值变量 将数值变量转换为变量字符 将转换为符号变量 设置返回有效数字个数为的近似解精度 求符号表达式S在精度下的数值解 执行符号表达式S的功能例16 syms x t=1+x;x=1/3 s=eval(t) 结果为1.3333 vpa(s,7) 结果为1.333333,vpa(t,7)结果为1.+x sym(0,3) 结果为0.3 sy

23、m(0.3) 结果为3/10 double(s) 结果为1.3333, double(t)是不合法的三、 练习与思考(1) 化简:(2) 求证:(3) 求展开式中系数最大的项(4) 因式分解:(5) 求,1.4 二维绘图一、 实验目的学习MATLAB软件中二维绘图的方法。二、 实验内容与要求1 基本命令格式1:说明:以对应元素为坐标绘二维图,注意,的维数要匹配。例1 x=0:pi/18:2*pi; 给出横坐标 y=sin(x); 计算出纵坐标 plot(x,y) 绘制图形,如图1.1所示 图1.1 二维绘图问题:当时,命令画出几条线,如何画出的?当时,有何规律?当时,又有何规律?格式2:若Y为

24、m维向量,则等价于,其中,X1:m。格式3:将按顺序分别画出由3个参数定义的线条,其中,参数指明了线条的类型,标记符号,和画线用的颜色。说明:(1)线型,有实线,虚线,划线,点划线,例如,-就表示画实线。 (2)线条宽度LineWidth,取值为整数,例如,LineWidth,2就表示线宽为两个像素。 (3)线条颜色,常用8种颜色,例如,b-就表示画蓝色划线。 (4)标记类型,表示数据点标记的类型,常见13种,例如,*r就表示红色星号。 (5)标记大小MarkerSize制定标记符号的大小尺寸,取值为整数(单位为像素). (6) 标记面填充颜色MarkerFaceColor制定用于填充标记符面

25、的颜色,颜色配比方案见表1.10,例如,MarkerFaceColor,就表示标记面填绿色。 (7)标记周边颜色,例如,MarkerFaceColor,k表示周边用黑色,以上参数意义详见表1.61.10例2 t=0:pi/20:2*pi; plot(t,t.*cos(t),-.r*) hold on plot(exp(t/100).*sin(t-pi/2),-mo) hold off图形结果如图1.2所示,注意hold on表示继续在当前图形上画图。 图1.2 例1.49图形结果2 函数绘图格式:在制定的范围内画出函数名为的一元函数图形,其中,是一个制定x轴范围的向量或者是x轴和y轴的范围的向

26、量例3 fplot(sin(3*x),0,pi) 画出x在0pi之间的y=sin3x的图形 fplot(sin(x),cos(x),-2*pi,2*pi) 在同一张图上绘制正弦曲线3 符号函数的绘图格式: 绘出符号函数从到区间的图形。例4 y=sym(cos(x); ezplot(y,-2*pi,2*pi) 画出在之间的的图形。4 对数图形格式: 对轴,轴的刻度用常用对数值(以10为底)。 对轴的刻度用常用对数值,而轴为线性刻度。 对轴的刻度用常用对数值,而轴为线性刻度。例5 x=logspace(-1,2); loglog(x,10*exp(x),-s) grid on图形结果见图13 图1

27、3 例152图形结果5 图形修饰与控制 axis square 将图形设置为正方形 axis equal ,轴单位刻度相等 title(字符串) 图形标题 axis(xmin,xmax,ymin,ymax) 轴范围在轴在 xlabel(字符串) 轴标注 ylabel(字符串) 轴标注 text(x,y,字符串) 在处标注说明文字 grid on 加网格线 grid off 消除网格线 hold on 保持当前图形 hold off 解除hold on命令 legend(First,Second,n) 对一个坐标系上的两幅图形做出图例注解 subplot(m,n,p) 将当前窗口分成m行n列区域

28、,并指定在p区绘图例6 subplot(2,2,1);x=0:pi/60:2*pi;plot(x,exp(-i*x) subplot(2,2,2);fplot(log(x),10,2e3) subplot(2,1,2);plot(x,sin(x),:b,x,cos(x),-r) legend(sin(x),cos(x),1)图形结果如图14所示。注意:第一句中虚部被忽略;第二句中表示,不能用表示;不能用表示,而用表示。第三句中subplot(2,1,2)巧妙的将第二行整个区域画一个图;第四句的参数表示注解视窗的位置,详见表1.9 图14 例153图形结果例7 将正弦曲线部分与轴包围的封闭图形填

29、充为蓝色。 x=0:pi/60:2*pi; y=sin(x); x1=0:pi/60:pi/2 y1=sin(x1); plot(x,y,-r) hold on fill(x1,pi/2,y1,0,b)结果如图1.5所示 图15 例154图形结果 问题:将上面最后一句分别改为情况有何变化?问题:在图1.5中画出红色的直角坐标系,表示颜色的向量含义见表1.10三、 练习与思考(1)输入,体会图形特点。(2)在一幅图上画出两个周期的正弦曲线和余弦曲线,画出坐标轴,加上各种图注,并在正弦曲线和横轴之间填充红色。(3)在一个窗口画出四幅图,分别绘制的图形,并加上适当的图形修饰。附录: 表1.6 线型

30、定义符-:-.线型实线(缺省值)双划线虚线点划线 表1.7 线条颜色定义符R(red)G(green)B(blue)C(cyan)颜色红色绿色蓝色青色定义符M(nagenta)Y(yelloe)K(black)W(white)颜色品红黄色黑色白色 表1.8 标记类型定义符+O字母)*.X标记类型加号小圆圈星号实点交叉号定义符dv syms x a t h n; L1=limit(cos(x)-1)/x) %在缺省状态下,计算当x 0时的极限值 L2=limit(1/x3,x,0,right) L3=limit(1/x,x,0,left) L4=limit(log(x+h)-log(x)/h,h

31、,0) v=(1+a/x)x,exp(-x); L5=limit(v,x,inf,left) L6=limit(1+2/n)(3*n),n,inf)计算结果为:L1 = 0L2 = infL3 =-infL4 =1/xL5 = exp(a), 0L6 = exp(6)2、求单变量函数的极值格式:x+fmin() %计算在区间上函数取最小值时的值。说明:在5.3及以上版本命令fmin已改为fminbnd,常用格式如下:=fminbnd() %计算在区间上函数取最小值时的值。=fminbnd() %计算在区间上函数取最小值和对应的值。例2求函数在区间(2,4)的极小值,并作图。 f=inline(

32、2*x,3-6*x,2-18*x+7); %建立内联函数f(x), x,fval=fminbnd(f,-2,4); %求函数f的最小值和对应的x值, fplot(f,-2,4)结果为:x = 3.0000fval = -47.0000 如图1.12所示:图1.12 例1.62图形结果 注意:用inline建立的函数f, 在funbnd和fplot 命令中不用加单引号,而用M函数文件建立的函数则要加单引号。 问题:如何求函数f的最大值? 3. 函数的微分 格式:diff(,) %对符号表达式中指定的符号变量计算的阶导数,在缺省状态下,=findsym(),=1 例3 syms x y t D1

33、= diff(sin(x2)*y2,2) %计算 D2 = diff(D1,y) %计算 D3 = diff(t6,6) 计算结果为:D1 =-4*sin(x2)*x2*y2+2*cos(x2)*y2D2 = -8*sin(x2)*x2*y+4*cos(x2)*y D3 = 720 问题1.26:试一下输入diff(),有什么错误?为什么1.63中的diff(D1, y),y不可以加单引号?(因为在syms x y t中已经定义了符号变量y.) 如果A是一个造成矩阵,diff(A)有何意义 (求每一列元素的差分) ? 4. 函数的积分(1) quad 法数值积分格式:近似地从到计算函数的数值积分,误差为10-6用指定的绝对误差代替缺省误差。用高精度进行计算,效率可能比quad更好。说明:quad8命令在6.x 版本用quad1代替

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 期刊短文 > 互联网

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁