1111执行后得到?????的近似值.
123100与Sum类似的还有连乘求积的命令Product. 4. 求函数多次自复合的命令Nest: 例如, 输入
Nest[Sin,x,3]
则输出将正弦函数自己复合3次的函数
Sin[Sin[Sin[x]]]
5.求极限的命令Limit: 其基本格式为
Limit[f[x],x->a]
其中f(x)是数列或者函数的表达式, x->a是自变量的变化趋势. 如果自变量趋向于无穷, 用 x->Infinity.
对于单侧极限, 通过命令Limit的选项Direction表示自变量的变化方向. 求右极限, x?a?0时, 用Limit[f[x],x->a,Direction->-1]; 求左极限, x?a?0时, 用Limit[f[x],x->a,Direction->+1]; 求x???时的极限, 用Limit[f[x],x->Infinity,Direction->+1]; 求x???时的极限, 用Limit[f[x],x->Infinity,Direction->-1]。
注:右极限用减号, 表示自变量减少并趋于a,同理,左极限用加号, 表示自变量增加并趋于a .
实验举例
作散点图
例2.1 (教材 例2.1) 分别画出坐标为(i,i2),(i2,4i2?i3),(i?1,2,?,10)的散点图, 并画出折线图.
分别输入命令
t1=Table[i^2,{i,10}]; g1=ListPlot[t1,PlotStyle->PointSize[0.02]]; g2=ListPlot[t1,PlotJoined->True];Show[g1,g2]; t2=Table[{i^2,4i^2+i^3},{i,10}];
g1=ListPlot[t2,PlotStyle->PointSize[0.02]]; g2=ListPlot[t2,PlotJoined->True];Show[g1,g2]; 则分别输出所求图形.
140012001000800600400200
例2.2 画出前25个素数的散点图. 输入命令
20406080 23
Table[Prime[n],{n,25}];
ListPlot[Table[Prime[n],{n,25}],PlotStyle->PointSize[0.015]];
则分别输出所求图形.
80604020
数列极限的概念
5101520 例2.3 观察数列{nn}的前100项变化趋势. 输入命令
t=N[Table[n^(1/n),{n,1,100}]];
ListPlot[t,PlotStyle->PointSize[0.015]];
则分别输出所求图形. 从图中可看出, 这个数列似乎收敛于1.
1.41.31.21.1
20406080 下面我们以数值的方式来说明这一变化趋势. 输入以下语句, 并观察其数值结果.
m=2;xn=0;
For[i=1,i<=1000,i+=50,If[Abs[xn-1]>10^(-m),xn=N[n^(1/n),20]]]; Print[i, \ \
设该数列收敛于A?1?u(u?0),不妨取u?10,下面考察nn与A的接近程度. 输入以下Mathematica语句.
u = 10^9(-2); A = 1 + u; m = 5; n = 3; an = Sqrt[3]; While[Abs[A-an] >= 10^(-m), n++; an = N[n^(1/n)]]; Print[\
结果表明: 当n?651,an?1.01时, an与1?10?2的距离小于10?5. 24
?2
例2.4 观察Fibonacci数列的变化趋势.
Fibonacci数列具有递推关系F0?1,F1?1,Fn?Fn?1?Fn?2,令Rn?Fn. Fn?1输入命令
fn1=1;fn2=1;rn=1; For[i=3,i<=14,i++,
Fn=fn2+fn1;fn2=fn1;fn1=fn;rn=N[fn2/fn1,20];dn=rn-rn1; rn1=rn;
Print[i, \ \ \ \
其中第二列给出了Fibonacci数列的前14项, 第3列给出了Rn的值, 由第4列可以看出, Rn?Rn?1?0.我们也可以用散点图来观察Fibonacci数列的变化趋势如图所示, 输入命令
Clear[f]; f[n_]:= f[n-1]+f[n-2];f[0]=1;f[1]=1;
fab20=Table[f[i],{i,0,20}];ListPlot[fab20,PlotStyle ->PointSize[0.02]]; Infab20=Log[fab20];ListPlot[Infab20,PlotStyle-> PointSize[0.02]];
则输出所求散点图.
8642
51015 为了更好地观察数列的变化趋势, 我们可以利用Mathematica的动画功能来进一步观察数列随着n的增大的变化趋势.
1例2.5 (教材 例2.2) 通过动画观察当n??时数列an?2的变化趋势.
n输入
Clear[tt];
tt={1,1/2^2,1/3^2};
Do[tt=Append[tt,N[1/i^2]];
ListPlot[tt,PlotRange->{0,1},PlotStyle->PointSize[0.02]],{i,4,20}]
则输出所求图形动画. 从图中可以看出所画出的点逐渐接近于x轴.
2n3?1例2.6 (教材 例2.3) 研究极限lim3.
n??5n?1输入
Print[n, \ \ \
For[i=1, i<=15, i++,Aii=N[(2 i^3+1)/(5 i^3+1),10]; Bii=0.4-Aii; Print[i, \ \ \
则输出
25
n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Ai 0.5 0.414634 0.404412 0.401869 0.400958 0.400555 0.40035 0.400234 0.400165 0.40012 0.40009 0.400069 0.400055 0.400044 0.400036 0.4-Ai –0.1
–0.0146341 –0.00441176 –0.00186916 –0.000958466 –0.000555042 –0.00034965 –0.000234283 –0.000164564 –0.000119976 –0.0000901442 –0.0000694364 –0.000054615 –0.0000437286 –0.0000355534
2n3?1观察所得数表. 第一列是下标n. 第二列是数列的第n项3,它与0.4越来越接近. 第三列是
5n?1数列的极限0.4与数列的项的差, 逐渐接近0.
再输入
fn=Table[(2 n^3+1)/(5 n^3+1),{n,15}]; ListPlot[fn,PlotStyle->{PointSize[0.02]}]
则输出散点图. 观察所得散点图, 可见表示数列的点逐渐接近于直线y?0.4.
0.410.4080.4060.4040.40224681012注:命令For的格式见项目二中实验1的基本命令.
递归数列
计算出来. 这
样定义的数列称为递归数列. 输入
f[1]=N[Sqrt[2],20];
f[n_]:=N[Sqrt[2+f[n-1]],20]; f[9]
则已经定义了该数列, 并且求出它的第9项的近似值为
1.9999905876191523430.
输入
fn=Table[f[n],{n,20}]
得到这个数列的前20项的近似值(输出结果略). 再输入 26
例2.7 (教材 例2.4) 设x1?2,xn?1?2?xn.从初值x1?2出发, 可以将数列一项一项地
ListPlot[fn,PlotStyle->{PointSize[0.02]}]
输出为图2.2. 观察该散点图, 表示数列的点越来越接近于直线y?2.
510151.9951.991.9851.98
例2.8 设数列{xn}与{yn}由下式确定:
x?y1?1,y1?2, xn?1?xnyn, yn?1?xnn2 (n?1,2,?) 观察{xn}与{yn}的极限是否存在.
输入命令
Clear[f, g]; f[x_, y_] := Sqrt[x*y]; g[x_, y_] := (x + y)/2; xn = 1; yn = 2; For[n = 2, n <= 100, n++,
xN = xn; yN = yn; xn = N[f[xN, yN]]; yn = N[g[xN, yN]];]; Print[\
运行该程序可判断出: {xn}与{yn}有极限, 且这两极限值是相等的(x100?y100?1.45679).
函数的极限
3例2.9 (教材 例2.5) 在区间[?4,4]上作出函数f(x)?x?9xx3?x的图形, 并研究 xlim??f(x) 和 limx?1f(x).
输入命令
Clear[f];f[x_]=(x^3-9x)/(x^3-x); Plot[f[x],{x,-4,4}];
则输出f(x)的图形. 从图可猜测 limx?0f(x)?9,limx?1f(x)不存在.
10050-4-22-50
-100
27