您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 商业计划书 > 数学分析实验-Mathematica-软件的应用
数学分析实验-Mathematica软件的应用数学实验实例一1、调和数列自然数的倒数组成的数列称为调和数列。它的前n项和数列记作H(n)。,1,,31,21,1nnkk11调和数列研究2、提出问题:H(n)是否收敛?我们借助于数学软件Mathematica对H(n)的收敛性进行观察。Step1定义前n项和H(n)H[n_]:=Sum[1/k,{k,1,n}]Step2列出H(n)随n变化的数据表t=Table[{n,N[H[n],6]},{n,1,100}]nH[n]11.0000021.5000031.8333342.08333…………995.177381005.1873810007.48547100009.78761100000014.39273Step3根据数据表画出H(n)的图形ph1=ListPlot[t]204060801002345通过对所得图象的观察和分析,我们发现它很接近对数函数的图象。我们把它与对数函数y=lnx的图象一起比较一下。Step4与对数函数y=lnx作比较ph2=Plot[Log[x],{x,1,100}]Show[ph1,ph2]2040608010012345根据图象比较的结果可以看出,当n很大时,H(n)的图象与ln(n)的图象非常相似,但它们大致相差一个常数。这个常数约为C=H(100)-ln100≈0.5822.我们将lnx的图象向上平移C个单位后再进行观察。c1=H[100]-Log[100]ph3=Plot[Log[x]+c1,{x,1,100}]Show[ph1,ph3]2040608010012345猜测1调和数列的前n项和H(n)是发散数列,它的数值与ln(n)+C很接近。猜测2数列H(n)-ln(n)可能是收敛的。可以得到如下的数据表:Step5用计算数据作印证对充分大的n,计算H(n)-ln(n)的值:t2=Table[N[{n,H[n],Log[n],H[n]-Log[n]},10],{n,1000,10000,1000}]nH(n)ln(n)H(n)-ln(n)10007.4854708616.9077552790.577715581620008.1783681047.60090245950.577465644130008.5837498908.0063675680.577382322340008.8713903008.29404964010.577340659750009.0945088538.5171931910.57731566160009.2768137448.6995147480.577298995970009.4309525208.8536654280.577287091880009.5644749848.98719682070.577278163690009.6822510769.1049798560.5772712194100009.7876060369.2103403720.57726566413、研究数列H(n)-ln(n)的收敛性Step1令C(n)=H(n)-ln(n),通过图象观察其特性:Cup[n_]:=H[n]-Log[n]tup=Table[{n,N[Cup[n],6]},{n,1,100}]ph4=ListPlot[tup,PlotStyle-RGBColor[0,0,1]]Step2令c(n)=H(n)-ln(n+1),通过图象观察其特性:Clow[n_]:=H[n]-Log[n+1]tlow=Table[{n,N[Clow[n],6]},{n,1,100}]ph5=ListPlot[tlow,PlotStyle-RGBColor[1,0,0]]Step3比较C(n)和c(n),在同一坐标系中作出它们的图象。Show[ph4,ph5]204060801000.520.540.560.580.62通过观察可知如下事实:1、C(n)是单调递减数列;2、c(n)是单调递增数列;3、c(n)≤C(n);4、c(n),C(n)都是收敛数列,而且它们有相同的极限。4、结论与证明结论:极限存在。)ln131211(limnnn把这个极限值记为C,C≈0.5772,称为欧拉(Euler)常数。数学实验工具常见的数学工具软件:1、Mathematica;2、Matlab;3、Maple;4、MathCad.我们主要使用Mathematica这一数学工具软件。Mathematica介绍Mathematica是一个功能强大的数学工具软件,具有数值计算、符号演算、图象制作、公式编辑和编程等各项功能。1、运行和退出Mathematica系统。2、界面介绍。3、输入和计算表达式。4、保存和打开文件。5、使用帮助系统。变量与函数一、Mathematica中的数据类型Mathematica系统中,数值分成四种类型:整数、有理数、实数和复数。整数型数据可以表示任意长度的精确整数,不受计算机字长的限制。如:264;最大素数21257787-1等。有理型数据可以精确表示任意的既约分数,当两个整数相除而又不能整除时,就用有理数型表示。如:3/39.实数型数据可以表示任意精度的近似实数。如:Pi.复数型数据可以表示复数,其实部和虚部可以是整数型、有理型或实数型。如:I2;Arg[1+I].Integer整数型精确运算Rational有理数(分数)型精确运算Real(近似)实数型近似计算Complex复数型Mathematica中的数据类型二、系统中的数据常数Pi圆周率π3.14159…E自然对数的底e2.71828…Degree1oπ/180GoldenRatio黄金分割比1.618…Infinity无穷大∞I虚数单位i1三、函数与变量的命名规则在Mathematica系统中,变量名和函数名遵从如下命名规则:(1)以字母开头的任意长度的字符或数字串;(2)区分大小写;(3)为与系统函数相区别,通常以小写字母开头;(4)函数的形式为f[x].四、变量赋值与变量替换举例如下:x=5;(赋值)x=.(取消赋值)/.x-3(变量替换,计算时用3暂时替换x的值)Clear[x](清除x的定义及其赋值)五、四则运算运算表达式运算符举例加Plus+a+b减Minus-a-b乘Times*a*b除Divide/a/b乘方Power^a^3优先级:乘方乘除加减;同级运算从左到右;乘方运算从右到左。六、初等函数函数名称函数表达式对数Log[x],Log[a,x]指数Exp[x]开平方Sqrt[x]三角函数Sin[x]Cos[x]Tan[x]Cot[x]Sec[x]Csc[x]反三角函数ArcSin[x]ArcCos[x]ArcTan[x]ArcCot[x]ArcSec[x]ArcCsc[x]双曲函数Sinh[x]Cosh[x]Tanh[x]Coth[x]Sech[x]Csch[x]反双曲函数ArcSinh[x]ArcCosh[x]ArcTanh[x]ArcCoth[x]ArcSech[x]ArcCsch[x]例1完成下列初等函数运算1、2、求在x=3处的值,保留20位有效数字。);5tan5sin(2221xe相应的命令如下:N[Sin[Pi/5+Tan[Pi/5]]]a1=Sin[x+Tan[x]]/.x-Pi/5N[a1,10]t=Exp[-x^2/2]/Sqrt[2Pi]N[t/.x-3,20]七、自定义函数格式意义f[x_]:=…定义一元函数f(x)f[x_,y_]:=…定义二元函数f(x,y)f[x_,y_,…]:=…定义多元函数f(x,y,…)Clear[f]取消对f的定义(1)出现在f[x_]中的x是一类实体,用来表示函数定义中的变量。x_可以用任何形式的参数来替代,右端定义式中的x将会随之变化。看下面的例子:f[x_]:=2x-1g[x]:=2x-1f[10]f[x]f[Log[y]]g[10]+g[x]+g[y]f[10]+f[x]+f[y]从这些例子中可以看出两者之间的差别。(2)如果在定义函数时需要用几个命令才能完成,可以将几个命令依次排列,命令之间用分号分隔,用圆括号把首尾命令括起来。例如:h[x_]:=(y=Max[x];z=Min[x];y^2-z^2)a={1,2,4,6,8}h[a]更恰当的方法是用模块形式来定义:其格式是:Module[{局部变量},函数表达式]例如:上面的例子可以改写为:hh[x_]:=Module[{y,z},y=Max[x];z=Min[x];y^2-z^2]a={1,2,4,6,8}hh[a]例2设,其中a,k是参数.当时,(1)作出f(x)在x=0,0.5,1,1.5,2,2.5,3处的数据表.(2)画出函数f(x)的图形.22)(xkaexf21,21kag[x_,a_,k_]:=aExp[-k^2x^2]a=1/Sqrt[2Pi];k=1/2Table[g[x,a,k],{x,0,3,0.5}]Plot[g[x,a,k],{x,-4,4}]数学常数e的探讨编制一个对数表,使任意给出的N都能简便地求出其对数值logaN.借助于乘方运算容易得到如下对数表:N1aa2a3…ak…b0123…k…N1101001000…10k…b0123…k…当a=10时,得到下表:问题1怎样选择a的值才能使N的取值间隔很小?由于N=ab,a的取值越接近于1,N的间隔就越小。例如,取a=1.0001,可以作出下面的对数表:NBase[r_,b_]:=(1+r)^bTable[{NBase[0.0001,b],b},{b,0,100,10}]Table[{NBase[0.0001,b],b},{b,100,1000,100}]Table[{NBase[0.0001,b],b},{b,1000,10000,1000}]Table[{NBase[0.0001,b],b},{b,10000,100000,10000}]相应的对数表可以从Mathematica中得出。问题2如何解决b过大的问题?由于r是一个已知的非常小的正数,取b*=rb,b*的值就比较合适。N1(1+r)1(1+r)2(1+r)3…(1+r)k…b*0r2r3r…kr…由于对给定的N,b*实际上是以为底的对数。当r→0时,a→e.从而得到以e为底的对数lnN。*1])1[()1(brbbrraNrra1)1(连续利率与e一位顾客在银行开设了一个1000元的存款帐户,银行每年支付10%的利息。用an表示n年后帐户中的存款总额。于是其中a0=1000表示开户时的存款。0)1(arann若银行改为每月结算一次利息,每月利率为r/12,n年后的本息之和为:若每天结算一次利息,n年后的本息之和为:.)121(012arann.)3651(0365arann一般地,设银行每年结算m次利息,则n年之后的本息之和为.)1(0amramnn数学探讨设r为年利率,银行每年结算m次利息,每个结算周期的利率为r/m,n年后的存款总额为:用Mathematica作如下的计算:.)1()(0mnnmramb每年结算一次:a0=1;r=0.10;n=10;b[m_,n_,r_]:=a0(1+r/m)^(mn)b[1,n,r]每月结算一次:b[12,n,r]每天结算一次:b[365,n,r]每秒钟结算一次:b[365*24*3600,n,r]2.593742.707042.717912.71828从计算结果可以看出,随着结算次数的增加,1元存款10年后的存款总额越来越接近e.事实上,这是因为:.)1011(lim)(lim1010emmbmmm对一般情况,有:.)1(lim)(lim00rnmnmnmeamramb结论:连续结算方式下n年后的存款额计算公式为:.0rnneab1.3分段函数Mathematica的常用函数N[x,n]Abs[x]Sign[x]Round[x]Floor[x
本文标题:数学分析实验-Mathematica-软件的应用
链接地址:https://www.777doc.com/doc-5887913 .html