用Maple软件进行数学实验课设计
- 格式:doc
- 大小:28.00 KB
- 文档页数:4
数学软件Maple使⽤教程数学实验数学软件Maple使⽤教程序⾔⼀.什么是数学实验?我们都熟悉物理实验和化学实验,就是利⽤仪器设备,通过实验来了解物理现象、化学物质等的特性。
同样,数学实验也是要通过实验来了解数学问题的特性并解决对应的数学问题。
过去,因为实验设备和实验⼿段的问题,⽆法解决数学上的实验问题,所以,⼀直没有听说过数学实验这个词。
随着计算机的飞速发展,计算速度越来越快,软件功能也越来越强,许多数学问题都可以由计算机代替完成,也为我们⽤实验解决数学问题提供了可能。
数学实验就是以计算机为仪器,以软件为载体,通过实验解决实际中的数学问题。
⼆.常⽤的数学软件⽬前较流⾏的数学软件主要有四种:1.MathACD其优点是许多数学符号键盘化,通过键盘可以直接输⼊数学符号,在教学⽅⾯使⽤起来⾮常⽅便。
缺点是⽬前仅能作数值运算,符号运算功能较弱,输出界⾯不好。
2.Matlab优点是⼤型矩阵运算功能⾮常强,构造个⼈适⽤函数⽅便很⽅便,因此,⾮常适合⼤型⼯程技术中使⽤。
缺点是输出界⾯稍差,符号运算功能也显得弱⼀些。
不过,在这个公司购买了Maple公司的内核以后,符号运算功能已经得到了⼤⼤的加强。
再⼀个缺点就是这个软件太⼤,按现在流⾏的版本5.2,⾃⾝有400多兆,占硬盘空间近1个G,⼀般稍早些的计算机都安装部下。
我们这次没⽤它主要就是这个原因。
3.Mathematica其优点是结构严谨,输出界⾯好,计算功能强,是专业科学技术⼈员所喜爱的数学软件。
缺点是软件本⾝较⼤,⽬前流⾏的3.0版本有200兆;另⼀个缺点就是命令太长,每⼀个命令都要输⼊英⽂全名,因此,需要英语⽔平较⾼。
4.Maple优点是输出界⾯很好,与我们平常书写⼏乎⼀致;还有⼀个最⼤的优点就是它的符号运算功能特别强,这对于既要作数值运算,⼜要作符号运算时就显得⾮常⽅便了。
除此之外,其软件只有30兆,安装也很⽅便(直接拷贝就可以⽤)。
所以,我们把它放到学校⽹上直接调⽤。
202016/310《高等数学》中的数学实验与Maple 教学孙宪波韩江峰李成群摘要创新型、复合型和应用型人才培养是我国高等教育的重大战略。
在理工科和财经类高校,加强数学类课程基础教学和应用教学是培养“三型”人才的重要基础,其中加强数学实验和数学软件应用教学是高等院校加强数学基础教学和数学应用教学的重要内容。
关键词高等数学;线性代数;应用教学;数学软件中图分类号:O212文献标识码:ADOI :10.19694/ki.issn2095-2457.2020.16.026孙宪波1986—/男/河南人/博士/副教授/研究方向:应用数学/广西财经学院信息与统计学院(南宁530003)韩江峰广西财经学院信息与统计学院(南宁530003)李成群广西财经学院信息与统计学院(南宁530003)基金项目:本文由广西高等教育本科教改项目(2019JGB344)资助。
0引言加强数学类基础课程和数学应用类课程的教学是理工科和财经类高校培养创新型、复合型、应用型人才的重要内容。
我国在精密制造业等若干“卡脖子”技术落后相关国家的重要基础原因是我国应用数学公关关键技术的薄弱,其深层原因在我国在高等院校的数学类课程的基础教学和应用教学相对落后。
我国高等院校数学类课程教学内容上着重于多种特殊情的定理、原理和结果,在训练上着重难题解决技巧的积累;在课程体系上,非数学专业数学课程相对开设较少,数学专业数学课程着重于古典类基础课程,缺少数学应用类课程;在数学实践上,数学实验和数学软件的教学亟待加强。
本文第二部分分析高等数学中数学软件教学的几个重要内容,最后探讨数学实践教学与数学综合应用课的研发和推广。
1数学软件教学内容目前世界上流行的三大数学软件有Matlab,Maple 和Mathematica。
Matlab 的主要特色是数值计算及工程应用;Maple 的特色是符号计算和动力系统研究应用;Mathe matica 介于两者之间。
多数研究工作者使用Matlab 和Maple。
Maple 基础一Maple 的基本运算1 数值计算问题在应用Maple 做算术运算时, 只需将Maple 当作一个“计算器”使用, 所不同的是命令结束时需加“;”或“:”.在Maple 中, 主要的算术运算符有“+”(加)、“–”(减)、“*”(乘)、“/”(除)以及“^”(乘方或幂,或记为**),值得注意的是, “^”的表达式只能有两个操作数, 换言之, c b a ^^是错误的, 而“+”或“*”的任意表达式可以有两个或者两个以上的操作数. 2.1.1 有理数运算作为一个符号代数系统, Maple 可以绝对避免算术运算的舍入误差.如果要求出两个整数运算的近似值时, 只需在任意一个整数后加“.”(或“.0”), 或者利用“evalf ”命令把表达式转换成浮点形式, 默认浮点数位是10 (即: Digits:=10, 据此可任意改变浮点数位, 如Digits:=20). > 9/1;;13717421109739369> evalf(%);.1249999989> big_number:=3^(3^3);:= big_number 7625597484987> length(%);13函数“length ”作用在整数上时是整数的十进制位数即数字的长度. “%”是一个非常有用的简写形式, 表示最后一次执行结果 '1)整数的余(irem)/商(iquo)命令格式:irem(m,n); #求m 除以n 的余数irem(m,n,'q'); #求m 除以n 的余数, 并将商赋给q iquo(m,n); #求m 除以n 的商数iquo(m,n,'r'); #求m 除以n 的商数, 并将余数赋给r其中, m, n 是整数或整数函数, 也可以是代数值, 此时, irem 保留为未求值.2)素数判别(isprime) ~ 命令格式: isprime(n);如果判定n 可分解, 则返回false, 如果返回true, 则n “很可能”是素数. > isprime(2^(2^4)+1);true3) 确定第i 个素数(ithprime)若记第1个素数为2,判断第i 个素数的命令格式: ithprime(i);4) 一组数的最大值(max)/最小值(min)(命令格式: max(x1,x2,…,xn); #求x1,x2,…,x n中的最大值min(x1,x2,…,xn); #求x1,x2,…,x n中的最小值5)随机数生成器(rand)命令格式:rand( ); #随机返回一个12位数字的非负整数rand(a..b); #调用rand(a..b)返回一个程序, 它在调用时生成一个在范围[a, b]内的随机数> rand();【427419669081> myproc:=rand(1..2002):> myproc();1916> myproc();1204注意, rand(n)是rand(0..n-1)的简写形式.2.1.2 复数运算复数是Maple中的基本数据类型. 虚数单位i在Maple中用I表示可以用Re( )、Im( )、conjugate( )和argument( )等函数分别计算实数的实部、虚部、共轭复数和幅角主值等运算. 试作如下实验: (> complex_number:=(1+2*I)*(3+4*I);-510Icomplex_number +:=> Re(%);Im(%%);conjugate(%%%);argument(complex_number);-510--510Iarctan2π- +()1) 绝对值函数…命令格式: abs(expr);当expr为实数时,返回其绝对值,当expr为复数时,返回复数的模.2)复数的幅角函数命令格式: argument(x); #返回复数x的幅角的主值3)共轭复数命令格式: conjugate(x); #返回x的共轭复数初等数学<2.2.1 常用函数1) 确定乘积和不确定乘积命令格式: product(f,k);product(f,k=m..n);product(f,k=alpha);product(f,k=expr);其中, f —任意表达式, k —乘积指数名称, m,n —整数或任意表达式, alpha —代数数RootOf, expr —包含k 的任意表达式.> product(k^2,k=1..10); #计算2k 关于1..10的连乘》13168189440000> product(k^2,k); #计算2k 的不确定乘积()Γk 2> product(a[k],k=0..5); #计算a i (i=0..5)的连乘a 0a 1a 2a 3a 4a 5> Product(n+k,k=0..m)=product(n+k,k=0..m); #计算(n+k)的连乘, 并写出其惰性表达式=∏ = k 0m() + n k ()Γ + + n m 1()Γn> product(k,k=RootOf(x^3-2)); #计算23-x 的三个根的乘积】22)指数函数计算指数函数exp 关于x 的表达式的命令格式为: exp(x); 3)确定求和与不确定求和sum 命令格式: sum(f,k);sum(f,k=m..n); sum(f,k=alpha); sum(f,k=expr);-其中, f —任意表达式, k —乘积指数名称, m,n —整数或任意表达式, alpha —代数数RootOf, expr —不含k 的表达式.> Sum(k^2,k=1..n)=sum(k^2,k=1..n);= ∑= k 1nk 2 - + + 13() + n 1312() + n 1216n 16> Sum(1/k!,k=0..infinity)=sum(1/k!,k=0..infinity);= ∑= k 0∞1!k e > sum(a[k]*x[k],k=0..n);∑= k 0na k x k> sum(k/(k+1),k=RootOf(x^2-3));)33)三角函数/双曲函数命令格式: sin(x); cos(x); tan(x); cot(x); sec(x); csc(x); sinh(x); cosh(x); tanh(x); coth(x); sech(x); csch(x); 其中, x 为任意表达式. > Sin(Pi)=sin(Pi);= ()Sin π04)反三角函数/反双曲函数—命令格式: arcsin(x); arccos(x); arctan(x); arccot(x); arcsec(x); arccsc(x);arcsinh(x); arccosh(x); arctanh(x); arccoth(x); arcsech(x); arccsch(x);arctan(y,x);其中, x, y 为表达式. 反三角函数/反双曲函数的参数必须按弧度计算. > arcsinh(1);()ln + 12> cos(arcsin(x));- 1x 2}5)对数函数命令格式: ln(x); #自然对数log[a](x); #一般对数 log10(x); #常用对数一般地, 在ln(x)中要求x>0. 但对于复数型表达式x, 有:)(argument *))(abs ln()ln(x I x x += (其中, ππ≤<-)(argument x )> log10(1000000);、()ln 1000000()ln 10> simplify(%); #化简上式62.2.2 函数的定义试看下面一个例子:> f(x):=a*x^2+b*x+c;---并不是函数,而是一个表达式:= ()f x + + a x 2b x c> f(x),f(0),f(1/a);…,, + + a x 2b x c ()f 0⎛⎝ ⎫⎭⎪⎪f 1a由上述结果可以看出, 用赋值方法定义的f(x)是一个表达式而不是一个函数 在Maple 中, 要真正完成一个函数的定义, 需要用算子(也称箭头操作符):> f:=x->a*x^2+b*x+c;:= f → x + + a x 2b x c> f(x),f(0),f(1/a);,,+ + a x 2b x c c + + 1a bac > f:=(x,y)->x^2+y^2;*:= f → (),x y + x 2y 2> f(1,2);5> f:=(x,y)->a*x*y*exp(x^2+y^2);:= f → (),x y a x y e()+ x 2y 2另一个定义函数的命令是unapply,其作用是从一个表达式建立一个算子或函数. 命令格式为: f:=unapply(expr, x); 命令格式为: f:=unapply(expr, x, y, …);!> f:=unapply(x^4+x^3+x^2+x+1,x);:= f → x + + + + x 4x 3x 2x 1借助函数piecewise 可以生成简单分段函数: > abs(x)=piecewise(x>0,x,x=0,0,x<0,-x);= x ⎧⎩⎪⎪⎪⎪⎪⎨x < 0x 0= x 0-x < x 0清除函数的定义用命令unassign. > unassign(f); > f(1,1);"()f ,11定义了一个函数后, 就可以使用op 或nops 指令查看有关函数中操作数的信息. nops(expr), 函数op 的主要功能是,其命令格式为:op(expr); #获取表达式的操作数op(i, expr); #取出expr 里第i 个操作数, op(i .. j, expr); #expr 的第i 到第j 个操作数 nops(expr); #返回操作数的个数 > expr:=6+cos(x)+sin(x)*cos(x)^2;:= expr + + 6()cos x ()sin x ()cos x 2&> op(expr);,,6()cos x ()sin x ()cos x 2> nops(expr);32.2.3 Maple 中的常量与变量名为了解决数学问题, 一些常用的数学常数是必要的. Maple 系统中已经存储了一些数学常数在表达式序列constants 中: > constants;,,,,,,false γ∞true Catalan FAIL π(—2.2.4 函数类型转换实现函数类型转换的命令是convert . 命令格式:convert(expr, form); #把数学式expr 转换成form 的形式convert(expr, form, x); #指定变量x, 此时form 只适于exp 、sin 、cos convert 指令所提供的三角函数、指数与函数的转换共有exp 等7种: (1) exp : 将三角函数转换成指数(2) expln : 把数学式转换成指数与对数(3) expsincos : 分别把三角函数与双曲函数转换成sin 、cos 与指数的形式 [(4) ln : 将反三角函数转换成对数(5) sincos : 将三角函数转换成sin 与cos 的形式, 而把双曲函数转换成sinh 与cosh 的形式 (6) tan : 将三角函数转换成tan 的形式(7) trig : 将指数函数转换成三角函数与对数函数 > convert(sinh(x),exp); #将sinh(x)转换成exp 类型-12e x 121e x2.2.5 函数的映射—map 指令在符号运算的世界里, 映射指令map 可以说是相当重要的一个指令, 它可以把函数或指令映射到这些结构里的元素, 而不破坏整个结构的完整性. 命令格式为: "map(f, expr); #将函数f 映射到expr 的每个操作数map(f, expr, a); #将函数f 映射到expr 的每个操作数, 并取出a 为f 的第2个自变量map(f, expr, a1, a2,…, an); #将函数f 映射到expr 的每个操作数, 并取a1~an 为f 的第2~n+1个自变量map2(f, a1, expr, a2, …, an); #以a1为第1个自变量, expr 的操作数为第2个自变量, a2为第3个自变量…, an 为第n+1个自变量来映射函数f> f:=x->sqrt(x)+x^2;:= f → x + x x 2> map(f,[a,b,c]);】[],, + a a 2 + b b 2 + c c 2> map(h, [a,b,c],x,y);[],,()h ,,a x y ()h ,,b x y ()h ,,c x y3 求 值赋值在Maple 中, 不需要申明变量的类型, 甚至在使用变量前不需要将它赋值, 这是Maple 与其它高级程序设计语言不同的一点, 也正是Maple 符号演算的魅力所在, 这个特性是由Maple 与众不同的赋值方法决定的. 为了理解其赋值机制, 先看下面的例子. > p:=9*x^3-37*x^2+47*x-19;:= p - + - 9x 337x 247x 19}> roots(p);⎡⎣⎢⎢⎤⎦⎥⎥,[],12⎡⎣⎢⎢⎤⎦⎥⎥,1991 > subs(x=19/9,p);变量代换subs ( var = repacedment , expression );调用的结果是将表达式expression 中所有变量var 出现的地方替换成 replacement. > f:=x^2+exp(x^3)-8;】:= f + - x 2e()x 38> subs(x=1,f);- + 7e如果需要计算, 必须调用求值函数evalf . 如: > evalf(%);5.> subs(x=y,y=z,x^2*y); (顺序替换)z 3[> subs({x=y,y=z},x^2*y); (同步替换)y 2z> subs((a=b,b=c,c=a),a+2*b+3*c); (顺序替换)6a> subs({a=b,b=c,c=a},a+2*b+3*c); (轮 换)+ + b 2c 3a> subs({p=q,q=p},f(p,q)); (互 换)()f ,q p,求值规则1) 对表达式求值命令格式: eval(e, x=a); #求表达式e 在x=a 处的值 eval(e, eqns); #对方程或方程组eqns 求值 eval(e); #表达式e 求值到上面两层 eval(x,n); #给出求值名称的第n 层求值 > p:=x^5+x^4+x^3+x^2+x+73;:= p + + + + + x 5x 4x 3x 2x 73(> eval(p,x=7);19680当表达式在异常点处求值时, eval 会给一个错误消息. 如下: > eval(sin(x)/x,x=0);Error, numeric exception: division by zero2) 在代数数(或者函数)域求值命令格式: evala(expr); # 对表达式或者未求值函数求值 :evala(expr,opts); #求值时可加选项(opts)在Maple 中, 代数数用函数RootOf ()来表示. 如3作为一个代数数, 可以表示为: > alpha:=RootOf(x^2-3,x);:= α()RootOf - _Z 23> simplify(alpha^2);3在Maple 内部, 代数数α不再表示为根式, 而在化简时, 仅仅利用到32=α这样的事实. 这里, Maple 用到一个内部变量_Z. 再看下面一个例子,其中alias 是缩写的定义函数,而参数lenstra 指lenstra 椭圆曲线方法:> alias(alpha=RootOf(x^2-2)): —> evala(factor(x^2-2,alpha),lenstra);() + x α() - x α> evala(quo(x^2-x+3,x-alpha,x,'r'));- + + 1αx> r;- + 3αα2> simplify(%);- 5α)3) 在复数域上符号求值操纵复数型表达式并将其分离给出expr 的实部和虚部的函数为evalc, 命令格式为: evalc(expr);evalc 假定所有变量表示数值, 且实数变量的函数是实数类型. 其输出规范形式为: expr1+I*expr2.> evalc(sin(6+8*I));+ ()sin 6()cosh 8I ()cos 6()sinh 8> evalc(f(exp(alpha+x*I)));()f + e α()cos x I e α()sin x}4) 使用浮点算法求值命令格式为: evalf(expr, n); > evalf(Pi,50);3.1415926535897932384626433832795028841971693993751> evalf(sin(3+4*I));- 3.853********.01681326I5) 对惰性函数求值把只用表达式表示而暂不求值的函数称为惰性函数,对任意代数表达式f 求值的命令格式为: value(f); ~> F:=Int(exp(x),x);:= F d ⎛⎠⎜e xx> value(%);e x> f:=Limit(sin(x)/x,x=0);:= f lim→ x 0()sin x x> value(%);1[另外, 将惰性函数的大写字母改为小写字母亦即可求值. 如下例:> Limit(sin(x)/x,x=0)=limit(sin(x)/x,x=0);= lim→ x 0()sin x x1 4 数据结构Maple 中有许多内建的与FORTRAN 、C 或Pascal 不同的数据结构. 主要的数据结构有序列(sequence)、列表(list)、集合(set)、代数数( algebraic number)、未求值或惰性函数调用、表(table)、级数(series)、串(string)、索引名(index)、关系(relation)、过程体(process)以及整数(integer)、分数(fraction)、浮点数(float)、复数(complex number)等数据结构, 而矩阵(matrix)在Maple 中表示为阵列, 是一种特殊的表.数据类型查询在Maple 中, 用whattype 指令来查询某个变量的数据类型或特定类型, 命令格式为: whattype(expr) # 查询expr 的数据类型`type(expr, t) # 查询expr 是否为t 类型, 若是则返回true, 否则返回false序列, 列表和集合4.2.1 序列所谓序列(Sequence), 就是一组用逗号隔开的表达式列. 如: > s:=1,4,9,16,25;:= s ,,,,1491625> t:=sin,com,tan,cot;:= t ,,,sin com tan cot|一个序列也可以由若干个序列复合而成, 如:> s:=1,(4,9,16),25;:= s ,,,,1491625> s,s;,,,,,,,,,14916251491625而符号NULL 表示一个空序列. 序列有很多用途, 如构成列表、集合等. 事实上, 有些函数命令也是由序列构成. 例如: > max(s);25:> min(s,0,s);函数seq 是最有用的生成序列的命令, 通常用于写出具有一定规律的序列的通项, 命令格式为: seq(f(i), i=m..n); # 生成序列f(m), f(m+1), …, f(n) (m,n 为任意有理数) seq(f(i), i=expr); # 生成一个f 映射expr 操作数的序列seq(f(op(i,expr)), i=1..nops(expr)); # 生成nops(expr)个元素组成的序列 > seq(i^2,i=1..10);,,,,,,,,,149162536496481100¥> seq(i^3,i=x+y+z);x3y3z3,,获得一个序列中的特定元素选用操作符[ ], 如:> seq(ithprime(i),i=1..20);235711131719232931374143475359616771,,,,,,,,,,,,,,,,,,,> %[6],%[17];1359,4.2.2 列表>列表(list), 就是把对象(元素)放在一起的一种数据结构, 一般地, 用方括号[ ]表示列表. 如下例:> l:=[x,1,1-z,x];1z xx1 -l[]:=,,,> whattype(%);list4.2.3 集合集合(set)也是把对象(元素)放在一起的数据结构,一般地, 用花括号表示集合.> s:={x,1,1-z,x};:1z1x -:=s{},,> whattype(%);set空集定义为{ }.Maple中集合的基本运算有交(intersect)、并(union)、差(minus):> A:={seq(i^3,i=1..10)};B:={seq(i^2,i=1..10)};1827641252163435127291000:=,,,,,,,,,A{},,,,,,,,,149162536496481100B{}:=`> A intersect B;,164{}数组和表在Maple中, 数组(array)由命令array产生, 其下标变量(index)可以自由指定. 下标由1开始的一维数组称为向量(vector), 二维以上的数组称为矩阵(matrix). 数组的元素按顺序排列, 任意存取一数组的元素要比列表或序列快的多. 区分一个数据结构是数组还是列表要用“type”命令.表(table)在建立时使用圆括号, 变量能对一个表赋值, 但一个在存取在算子中的未赋值变量会被自动地假定是表, 表的索引可以成为任意Maple表达式. 表中元素的次序不是固定的.5 Maple 高级输入与输出操作生成LATEXMaple 可以把它的表达式转换成LATEX, 使用latex 命令即可: `> latex(x^2+y^2=z^2);{x}^{2}+{y}^{2}={z}^{2}还可以将转换结果存为一个文件(LatexFile): > latex(x^2 + y^2 = z^2, LatexFile); 再如下例:> latex(Int(1/(x^2+1),x)=int(1/(x^2+1),x));\int \! \left( {x}^{2}+1 \right) ^{-1}{dx}=\arctan\left( x \right)\二 微积分运算$1 函数的极限和连续函数和表达式的极限)(lim x f ax →命令格式为: limit(f,x=a);求)(lim x f ax +→时的命令格式为limit(f, x=a, right); 求)(lim x f a x -→时的命令格式为limit(f, x=a, left); 请看下述例子:> Limit((1+1/x)^x,x=infinity)=limit((1+1/x)^x,x=infinity);= lim → x ∞⎛⎝ ⎫⎭⎪⎪ + 11x xe > Limit((x^n-1)/(x-1),x=1)=limit((x^n-1)/(x-1),x=1);= lim → x 1- x n 1 - x 1n> Limit(x^x,x=0,right)=limit(x^x,x=0,right);"= lim→ +x 0x x 1> limit(a*x*y-b/(x*y),{x=1,y=1});- a b> limit(x^2*(1+x)-y^2*((1-y))/(x^2+y^2),{x=0,y=0});undefined下例就是化二重极限为二次极限而得正确结果:> limit((sin(x+y)/(sin(x)*sin(y)),{x=Pi/4,y=Pi/4}));⎛⎝ ⎫⎭⎪⎪lim it ,()sin + x y ()sin x ()sin y {}, = x 14π = y 14π \> limit(limit(sin(x+y)/(sin(x)*sin(y)),x=Pi/4),y=Pi/4);2函数的连续性1.2.1 连续在Maple 中可以用函数iscont 来判断一个函数或者表达式在区间上的连续性. 命令格式为: iscont(expr, x=a..b, 'colsed '/'opened');其中, closed 表示闭区间, 而opened 表示开区间(此为系统默认状态).如果表达式在区间上连续, iscont 返回true, 否则返回false, 当iscont 无法确定连续性时返回FAIL. 另外, iscont 函数假定表达式中的所有符号都是实数型. 颇为有趣的是, 当给定区间[a,b ] (a >b )时, iscont 会自动按[b,a ]处理. }> iscont(1/x,x=1..2);true> iscont(1/x,x=-1..1,closed);false> iscont(1/(x+a),x=0..1);FAIL> iscont(ln(x),x=10..1);true`1.2.2 间断函数discont 可以寻找函数或表达式在实数域的间断点, 当间断点周期或成对出现时, Maple 会利用一些辅助变量予以表达, 比如, _Zn ~(任意整数)、_NZn ~(任意自然数)和Bn ~(一个二进制数, 0或者1), 其中n 是序号. 判定f(x)间断点的命令为:discont(f, x); > discont(ln(x^2-4),x);{},-22> discont(arctan(1/2*tan(2*x))/(x^2-1),x);{},,-11 + 12π_Z1~14π> discont(round(3*x-1/2),x);' {} + 1313_Z1函数round 为“四舍五入”函数,上例并非一目了然,对其进一步理解可借助于函数plot 或下面给出的fdiscont 例子。
实验七用Maple解常微分方程1. 实验目的本实验旨在通过使用数学建模软件Maple来解常微分方程,加深对常微分方程解法的认识和理解。
通过实际操作和观察结果,提高对Maple软件的运用能力。
2. 实验原理常微分方程是描述物理、化学、工程等领域中的连续变化过程的常见数学工具。
解常微分方程可以帮助我们理解系统的演化规律,从而进行预测和控制。
Maple是一款强大的数学软件,其中包含了丰富的求解常微分方程的函数。
通过输入常微分方程的表达式,Maple可以直接给出解析解或数值解。
在本实验中,我们将使用Maple来解常微分方程。
3. 实验步骤3.1 安装Maple软件3.2 打开Maple软件双击桌面上的Maple图标,打开软件。
3.3 输入常微分方程点击菜单栏中的"输入",选择"数学输入",在弹出的对话框中输入常微分方程的表达式。
例如,我们要解的方程是一阶线性常微分方程`dy/dx + y = 0`,则输入表达式为:diff(y(x),x) + y(x) = 03.4 求解方程点击菜单栏中的"执行",选择"执行工作表",Maple将根据输入的方程进行求解。
3.5 查看解析解或数值解Maple会给出方程的解析解或数值解。
根据实验需求,可以选择相应的解进行查看和分析。
3.6 导出结果点击菜单栏中的"文件",选择"导出为",选择导出格式和保存路径,点击"保存",将结果导出为文档或图像文件。
4. 实验结果根据实验中输入的常微分方程,Maple求解得到如下解析解:y(x) = C exp(-x)其中C为任意常数。
5. 实验总结通过本次实验,我们研究了使用Maple软件求解常微分方程的方法。
Maple的强大功能和简便操作使得解常微分方程变得更加容易。
通过实际操作,我们可以深入理解常微分方程的解法和物理意义。
一、MATLAB简介MATLAB是一种专业的计算机程序,用于工程科学的矩阵数学运算。
它极其灵活的计算体系,用于解决各种重要的技术问题。
Matlab 程序执行matlab 语言,提供了一个极其广泛的预定义函数库,这样就使得技术工作变得简单高效。
在解决工程技术问题方面,MATLAB 比其它任何计算机语言都简单高效。
在70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库.EISPACK是特征值求解的FOETRAN程序库,LINPACK是解线性方程的程序库.在当时,这两个程序库代表矩阵运算的最高水平.到70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程时,想教学生使用EISPACK 和LINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACK和LINPACK 的接口程序.Cleve Moler给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(labotatory)两个英文单词的前三个字母的组合.在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传.在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类.一类是数值计算型软件,如MATLAB,Xmath,Gauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,Mathematica,Maple等,这类软件以符号计算见长,能给出解析解和任意精确解,其缺点是处理大量数据时效率较低.MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算,文字处理,可视化建模和实时控制能力,开发了适合多学科,多部门要求的新一代科技应用软件MATLAB. 经过多年的国际竞争,MATLAB以经占据了数值软件市场的主导地位.MathWorks公司1993年推出了MATLAB 4。
《maple基础及应用》实验教学大纲一、计算机代数与符号计算二、课程编码:101759三、课程目标和基本要求:本课程旨在培养学生通过学习能够自觉运用计算机处理软件maple系统进行算法设计和程序设计,初步具备用计算机处理软件Maple解决数学学习和研究中遇到的计算推理问题的能力。
因此,实验教学是本课程整个教学中的一个重点。
通过实验教学活动,力争使学生初步具备应用计算机处理软件maple进行算法设计和程序设计的能力,初步具备一定的综合运用数学理论和方法并借助于计算机处理软件maple 解决实际问题的能力,即:①应用软件能力:初步具备分析问题、简化问题的能力.②程序设计能力:初步具备应用计算机代数系统进行程序设计的能力,具备运用适当的数学思想、方法和技巧解决所遇到的实际问题等;四、课程总学时: 30 学时 [理论: 20 学时;实验: 10 学时]五、课程程总学分: 2 学分六、适用专业和年级:具有初步高等数学基础七、实验项目汇总表:八、大纲内容:实验一Maple基础[实验目的和要求]1. 初识计算机代数系统Maple2. 熟练Maple基本操作及帮助系统3. 掌握Maple的基本运算,简单操作及基本概念list, set, seq4. 熟练运用plot, plot3d命令5. 掌握作图的参数6. 了解plots函数包,[实验内容]Maple的基本运算基本命令:subs, evalf, evala,array, op, nops,mapMaple高级输入输出操作帮助文件的运用二维作图三维作图隐函数作图[主要实验仪器与器材]计算机实验二Maple应用:微积分运算[实验目的和要求]1. 熟练微分运算的基本命令,limit, iscont, diff,implicitdiff2. 熟练积分运算的基本命令int,及惰性函数的定义3. 熟悉微积分中的函数包[实验内容]函数的极限与连续导数与微分Taylor级数[主要实验仪器与器材]计算机实验三Maple应用:线性代数[实验目的和要求]1. 熟练掌握多项式基本运算2.熟练矩阵的基本运算函数3. 掌握矩阵运算的一些性质[实验内容]多项式基本运算矩阵基本运算矩阵的初等变换和线性方程组求解特征值和特征向量求法[主要实验仪器与器材]计算机实验四Maple应用:方程求解[实验目的和要求]1. 熟练运用solve,dsolve命令2. 掌握方程组求解,参数方程求解[实验内容]代数方程求解常微分方程求解偏微分方程求解[主要实验仪器与器材]计算机实验五Maple程序设计初步[实验目的和要求]1. 能设计算法编程解决简单数学问题2. 能编程实现较难的算法[实验内容]教材第六章习题[主要实验仪器与器材]计算机九、主要实验教材(指导书)及参考用书:教材:1、《计算机代数系统与符号计算》,王玮明编著,甘肃科学技术出版社,2004年出版参考书:1、何青,王丽芬编著,Maple教程,北京:科学出版社,2006十、课程考核方式及成绩评定办法:●平时成绩1)平时每项实验内容按预习10%,检查预习实验报告和提问的方式相结合检查实验预习情况而评定成绩;2) 态度和纪律10%,考查学生课堂纪律,实验态度,以及实验室保持卫生整洁等方面给予评定成绩;3) 实验操作技能40%,考查学生计算机操作技能熟练程度;4) 实验报告40%,规定学生完成每项实验内容应按时提交实验报告,并根据实验任务的完成情况及格式规范程度给予评定。
二阶弹簧—阻尼系统PID控制器设计及其参数整定班级:自动化12-1班_姓名: ________学号: _________指导老师: ______前言 (1)一、MATLAB产生的历史背景 (1)二、MATLAB的语言特点 (2)三、Matlab的典型应用 (3)第一章、比例控制系统 (4)第二章、积分控制系统 (4)第三章、比例积分系统 (5)第四章、比例积分微分系统 (5)第五章、原理的应用仿真 (7)第六章、仿真的结果 (8)第七章、结果分析 (12)第八章、结论 (12)心得体会 (14)参考文献 (15)PID控制器结构简单,其概念容易理解,算法易于实现,且具有一定的鲁棒性,因此,在过程控制领域中仍被广泛使用,除非在特殊情况下证明它不能满足既定的性能要求。
对于单输入单输出的系统,尤其是阶跃响应单调变化的低阶对象,已有大量的PID整定方法及其比较研究。
当对象的阶跃响应具有欠阻尼特性时,如果仍近似为惯性对象,被忽略的振荡特性有可能引起控制品质的恶化。
现有的一些针对二阶欠阻尼对象的PID整定方法,例如极点配置方法,幅值相位裕量方法等,尽管在各自的假设前提下取得了较好的控制效果,但并非适用于所有的二阶欠阻尼对象,其性能鲁棒性问题也有待讨论。
本文通过使用MATLAB对二阶弹簧—阻尼系统的控制器(分别使用P、PI、PID控制器)设计及其参数整定,定量分析比例系数、积分时间与微分时间对系统性能的影响。
同时,掌握MATLAB语言的基本知识进行控制系统仿真和辅助设计,学会运用SIMULINK对系统进行仿真,掌握PID控制器参数的设计。
一、MATLAB产生的历史背景在20世纪70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACK和LINPACK的FORTRAN子程序库。
EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库。
在当时,这两个程序库代表矩阵运算的最高水平。
89编程初步 第五章 本章将介绍在Maple 中进行程序设计的基础知识,以便使大家能够迅速地掌握Maple 程序的主要成分和基本结构。
通过这一章的学习,可以对Maple 子程序的语法,结构有初步的认识,为进一步学习Maple 种的程序设计打下基础。
而且,必要的Maple 编程基础也是灵活地利用各种工具函数来解决问题的先决条件。
本章具体包括以下内容:用箭头操作符定义函数Maple 的程序构成循环和分支结构局部变量和全局变量过程的递归调用在前面的几章中,我们一直使用的是Maple的交互式命令环境。
所谓交互式命令环境,就是一次输入一条或几条命令,然后一按回车,这些命令就被执行了,执行的结果被显示在同一个可执行块中。
也许对很大一部分用户来说,利用一个交互式的命令环境解决问题已经足够了;但如果要充分地利用Maple的强大功能,仅仅通过这一手段是不够的,无论是从大规模问题的计算效率上考虑,还是从对Maple工具函数库的扩展上考虑,都需要掌握一定的程序设计知识。
可别小看了Maple语言,Maple中的大部分库函数和工具包中的函数都是用Maple语言写成的。
实际上,在前面的介绍中,我们已经介绍过简单的Maple程序了,我们曾经用箭头操作符“->”定义过最简单的函数。
而Maple中的函数,都是Maple子程序(procedure)的特里,它们是具有返回值的子程序。
下面,我们就详细地来介绍Maple中的函数和子程序,它们的定义和结构。
5.1 箭头操作符Maple是一个符号演算软件,带未知或者已知字母变量的表达式是它的基本数据形式,经过前面几章的学习,你一定已经对Maple中的表达式运算烂熟于心了;但同时,你也许会生出一个不太正确的观念——既然表达式中可以包含未知变量,那它不久已经是函数了吗?的确,在数学上我们可以这样理解,但对于Maple这个计算机软件来说,两个对象如果具有不同的数据结构,那它们就不应该是相同的对象。
maple教程1. 介绍Maple:Maple是一款广泛应用于数学、科学和工程领域的计算软件。
它可以进行数值计算、符号计算、可视化和建模等功能,被广泛用于教育、研究和工程设计等领域。
2. 安装Maple:首先,下载Maple的安装文件并运行。
按照安装向导的指示完成安装过程。
安装完成后,可以打开Maple并开始使用。
3. Maple基础:Maple中的基本对象是表达式(expression)。
可以输入表达式并进行计算,也可以定义变量、函数和方程等。
Maple的语法与一般数学符号相似,所以非常易于学习和使用。
4. 数值计算:Maple可以进行各种数值计算,例如求解方程、数值积分、数值微分等。
可以使用内置的函数或编写自定义的函数来实现不同的数值计算任务。
使用数值计算可以快速得到数学问题的近似解。
5. 符号计算:Maple的强大之处在于符号计算。
可以进行代数运算、求解方程、化简表达式等。
Maple能够处理复杂的代数表达式,并给出精确的结果。
对于数学研究、理论推导和数学建模等领域非常有用。
6. 绘图功能:Maple提供了丰富的绘图功能,可以创建二维和三维图形来可视化数学和科学问题。
可以绘制函数图像、数据图表、散点图、曲线图等。
通过调整参数,可以自定义图形的外观和样式。
7. 建模与仿真:Maple还提供了建模和仿真功能,可以通过输入方程或条件来建立模型,并进行仿真和分析。
可以用于工程设计、物理模拟、控制系统设计等领域。
Maple可以帮助用户更好地理解和解决实际问题。
8. 扩展功能:Maple具有丰富的扩展功能,可以使用包(package)来扩展Maple的功能。
可以通过安装和加载包来添加新的函数、命令和工具。
这些包可以提供额外的数学、统计、优化、图论等功能。
9. Maple应用领域:Maple广泛应用于数学教育、科学研究和工程设计等领域。
在教育方面,它可以帮助学生理解和掌握数学概念,同时也是教师教学和练习的重要工具。
西京学数学软件实验任务书动方向控制减速的推力,主要的控制量只有一个减速推力,减速还会消耗燃料让登月器的质量减小。
所以在极坐标下系统的状态就是x‘=[质量m,角度theta,高度r,角速度omega,径速度v]这五个量,输入就是减速力F。
先列微分方程,dx/dt=f(x)+B*F,其中x是5*1的列向量,质量dm/dt=-F/2940,剩下几个翻下极坐标的手册。
把这个动力学模型放到matlab里就能求解了,微分方程数值解用ode45。
第一问F=0,让你求椭圆轨道非常容易。
注意附件1里说15公里的时候速度是1.7km/s。
算完以后验证一下对不对,对的话就是他了,不对的话说明这个椭圆轨道有进动,到时再说。
(2) 算出轨道就能计算减速力了。
这时候你随便给个常数减速力到方程里飞船八成都能降落,但不是最优解。
想想整个过程,开始降落之前飞船总机械能就那么多,你需要对飞船做负功让机械能减到0。
题目里写发动机喷出翔的相对速度是一定的,直觉告诉我飞船速度快的时候多喷一些速度慢的时候少喷一些,可以提高做负功的效率。
但是多喷也不能超过上限7500N,所以这就是一个带约束优化问题,matlab里边有专用的优化函数,用fmincon就好。
找出最优解以后把过程画出来,看看F可不可以是那5个状态量的线性组合,如果是的话就非常happy,不是的话再说。
三四阶段你可以扯点图像识别,什么二维复利叶分解找平坦区域,怎么一边下降一边根据自身状态调整路径之类的。
五六阶段还真不知道说什么。
一二阶段肯定是重点啦(3) 误差分析其实还挺难的。
可能的误差来源是地球的引力,月亮绕地球向心加速度,太阳的引力(可能会很小),对自身速度、角度的测量误差(比如你测出自身当前速度100m/s但实际上是105m/s),控制的时候F大小以及角度的误差(比如你想朝正前方向喷2000N但实际上偏了2度而且F=2010N之类)。
上一问已经求出了最优控制策略和飞船路线,把这些扰动加进去以后算出新的路线减掉理想路线求偏差,然后随便用个卡尔曼滤波器把误差给校正All for Joy2014/9/13 11:14:38老师的思路,求大神解答给我一份呀实验二十七实验报告一、实验名称:微分方程组边值问题数值算法(打靶法,有限差分法)。
用Maple软件进行数学实验课设计
为解决高职生在数学学习中抽象思维能力偏低,在数学学习方面发现问题、分析问题、解决问题的能力有限等问题,本人利用Maple软件强大的符号运算、数值计算和图形动画功能,将数学问题可视化,把抽象的数学定理、数学概念以及数学问题转化为形象思维过程,并精选四个典型的问题,从数学问题动态化、数学问题图形化和数字形象化三个维度来设计数学实验,结合日常数学教学实践,从数学实验的理论和实践进行设计,深入分析了Maple可视化数学实验课对学生学习效果、教师的教学方式等方面的影响。
标签:数学实验;maple
数学是一门推理演绎的课程,具有高度的抽象性和严密的逻辑性,这些特点决定了传统的数学教学必须具备三大能力:运算能力、逻辑思维能力、和空间想象能力。
信息技术与高职数学教学的整合主要依据主要分为现代学习理论和现代教学理论两方面。
现代学习理论分为:建构主义学习理论、人本主义学习理论和行为教学法。
建构主义认为,知识不是通过教师传授得到的,而是学习者在一定情境下,借助他人的帮助,利用必要的学习资料,通过意义建构的方式而获得的,提倡教师指导下的以学生为中心的学习。
而目前高职数学教学中最缺少的就是以学生为中心的教学和学习。
人本主义一方面反对行为主义把人看作动物或机器,不重视人类本身的特征;另一方面也批评认知心理学虽然重视人类的认知结构,但却忽视了人类情感、价值、态度等方面对学习的影响,强调教学是一种人与人的情感的交流活动,教师应该把自己的情意因素转移到学生的身上,促进学生自主自觉的学习,这对信息技术与高职数学教学整合也具有指导意义。
而行为主义教学法是一种能力本位的方法,简单的说就是“干中学(learning by doing)”,开发行为教学法的先驱者之一科弗代尔(Ralph Coverdale)顾问常对学员说“不要谈论,去干!”。
传统教学是以课堂为中心,教师把完成教学任务作为课堂教学的唯一任务,在设计教学过程和实施课堂教学的过程中也以此为中心,在教学过程中以教师为中心,课堂上对学生的培养仅仅局限在知识的传授上,而忽略了学生的全面发展,教学中低估了学生已有的认知能力和知识积累,上课就是一个执行教案的过程,理想的状态就是完成教案,而不希望“节外生枝”。
这种教学方式把丰富的、复杂的、变动的课堂教学过程简化为单一的认知过程,把它从整体的丰富的生命活动中隔离出来,教学过程中轻视了学生的个体差异,不能充分调动学生的主观能动性和创造性,使得数学教学只能是事倍功半。
传统教学方式以教师传授知识为中心,忽略学生作为学习主体的参与作用,不利于培养学生的素质。
传统的数学教学效率低,概念定义的推论、图形绘制等,使得板书和画图时间占用太多,讲解和学生讨论时间不足;传统的数学教学中
“动”的问题,利用黑板很难演示,然而对于计算机来讲是一件轻而易举的事情;在传统数学教学中函数作图和多函数作图比较麻烦,教师不好讲授,学生也不好理解接受。
Maple软件是加拿大滑铁卢大学研制的一种计算机代数系统,通过20多年的不断发展,已经成为当今世界上最优秀的数学软件之一,它以良好的使用环境、强有力的代数符号运算能力以及灵活的图形显示和高效的可编程功能,为越来越多的人们所喜爱,并成为进行数学处理的工具。
Maple软件可以使以上不足得到改善,比如高职数学中极限、导数、定积分等概念就可以利用Maple软件设计数学实验课,使这些枯草的、不易理解的概念“活动”起来,让学生更加直观的对概念有深层次的理解,从而提高教学效果。
数学实验教学能让学生经历知识的再创造,学生能从中发现新认识,提出问题,进一步解决问题。
学生能通过数学实验,经过观察、猜想、实验验证、理论论证,最后得出结论。
目前大多数高职校的学生已对传统的“黑板+粉笔”的教学模式感到厌倦,学生进入高职校以后对公共基础课兴趣不大,产生了“轻基础课重专业课”的思想,而且传统的高等数学的教学内容编排完整、严格,大量的知识犹如一桌“满汉全席”,学生在学习时往往“难以下咽”。
所以本着“学以致用”的宗旨,数学实验一方面强调学生运用数学的能力,另一方面在选取实验内容的时候要适当降低对理论的要求。
鉴于此,在数学实验教学过程中,可以采取有效的“边做边学”、“先做后学”,融“教、学、做”为一体。
高职数学实验主要包括有准备实验、计算实验、演示实验、综合实验等,在本研究中,主要运用演示实验,从直观的角度出来,利用Maple软件的强大的图形绘制功能和动画演示功能,用图示、图解和动画等方式来解释各种数学概念、定理以及计算思路和方法。
实验设计:“函数的极限”问题
(1)问题的提出
函数极限中有两个重要极限,很多极限的计算都可以转化成这样两个极限的问题,而这两个极限的导入要设计到极限问题的几个定理:比如:两边夹定理,单调有界定理等。
如果光通过定理证明来给出这两个极限,过程比较抽象。
如果能运用一些方法,能比较直观的来表示这两个极限,那么学生在理解上能更加直观形象。
(2)实验的目的:
通过Maple软件的绘图功能,画出这两个函数的图像,让学生直观的来判斷这两个函数的极限。
(3)Maple命令:
①“->”:函数定义操作。
②“plot(f(x),x=a..b)”:二维函数绘图命令,f(x)是函数表达式。
③“color=a”:设置图像颜色命令。
④“limit(f(x),x=a,dir)”:极限计算命令,f(x)是函数表达式,x是自变量,dir表示极限的方向right或者left,默认为实数。
(4)实验过程(具体见可视化教学过程):
研究limx→0sin(x)x=1
1.打开Maple,输入命令:
> plot(sin(x)/x,x=-100..100);(画出函数sinxx在(-100,100)内的函数图像)从图(1)中,我们可以清楚的看到,当x→0+时,函数sinxx无限接近于1,所以我们可以猜测limx→0+s inxx=1。
同样当x→0-时,函数sinxx也无限接近于1,我们同样可以猜测得到limx→0-sinxx=1。
故由limx→x0f(x)=A的充要条件是limx→x0+f(x)=limx→x0-f(x)=A,得:limx→0sinxx=1。
(得出结论后由书本证明)
演示完上述实验后,要求学生掌握计算极限的命令,并操作练习。
(5)练习:
求下列极限
①limx→0tan(x)x②limx→0(1-3x)1x
(6)实验说明:
两个重要极限在极限的计算中具有举足轻重的作用,但是公式的记忆和运用对于高职学生来讲有一定难度。
若用Maple软件来进行演示,可以让学生比较直观地从图形上观察其变化,方便学生记忆公式;运用Maple软件的极限计算功能,也能帮助学生在计算完极限以后,通过计算机来验证计算结果是否正确。
通过Maple软件一方面能帮助学生在理论证明不够深入的前提下,对所给问题有非常直观的印象,另一方面,加强了利用Maple软件解决数学问题的能力,能帮助学生培养数学学习兴趣。
数学的研究对象是形式化的思想材料,整个数学是一个形式化的思想体系,呈现在学生面前的往往都是教材里的证明和计算。
在传统的教学模式下,学生只是被动接受知识的机器,学生体验到的也只是数学成品,总是根据这些数学成品进行大量重复的计算,很少有机会接触到数学结论的探索发现过程,这使得学生觉得数学仅仅是大量概念、公式等抽象事物的堆积。
基于高职校的现状,数学教学中很多公理、定理的发现如果采用传统的方式来进行教学,学生不易接受,更不易消化,如果在传统的教学模式中引入Maple可视化教学模式,学生的学习方式由被动的听课变为观察数学实验,甚至可以亲身参与实验,一起通过实验经历
知识的发生、形成过程,将繁琐的证明法揭示定理、概念變化为通过实验观察、教师引导,由学生自己来发现结论,整个过程不但充满了趣味,而且由于学生自身参与了整个过程,印象也比较深刻。
通过Maple软件开设可视化数学实验课,创设了数学情境,通过参与数学实验过程,填写实验报告,让学生由被动的听数学变成观察数学、探究数学、解决数学,让学生认识到数学是“有用的数学”,极大的调动了学生学习数学的主动性和积极性,鼓励学生用探究的方式来学习数学,培养学生自主学习的能力。
现代教育技术为学生学习提供了良好的学习环境,它也悄悄的在改变高职校的数学教育面貌。
参考文献
[1]郑玉杰,周游.职业院校传统数学教学模式的弊端与矫治[J].职业教育研究,2007(4):121-122.
[2]夏磊.maple软件在高职数学教学中的可视化应用[J].中国科教创新刊,2009,(31).。