数学实验报告 数学建模
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学实验报告
班级:应用物理091
学号:0902052016
姓名:李海瑞
2011.11.26
探索实验二非线性迭代
一,实验指导书解读
迭代是数学研究中的一个非常重要的工具,通过函数或向量函数由初始结点生成迭代结
点列,也可通过函数或向量函数由初值(向量)生成迭代数列或向量列。本实验主要分四步:首先利用蛛网图和迭代数列研究不动点的类型;
其次通过蛛网图和迭代数列研究Logistic映射,探索周期点的性质、认识混沌现象;
第三通过迭代数列或向量列求解方程(组)而寻求有效的求解方法;
最后,利用结点迭代探索分形的性质。
二,试验计划
2.1.迭代序列与不动点
对函数的迭代过程,我们可以用几何图象来直观地显示它——“蜘蛛网”。运行下列
Mathematica程序:
Clear[f]
f[x_] := (25*x - 85)/(x + 3); (实验时需改变函数)
Solve[f[x]==x , x] (求出函数的不动点)
g1=Plot[f[x], {x, -10, 20}, PlotStyle -> RGBColor[1, 0, 0],
DisplayFunction -> Identity];
g2=Plot[x, {x, -10, 10}, PlotStyle -> RGBColor[0, 1, 0],
DisplayFunction -> Identity];
x0=5.5; r = {};
r0=Graphics[{RGBColor[0, 0, 1],
Line[{{x0, 0}, {x0, x0}}]}];
For[i = 1, i <= 100, i++,
r=Append[r, Graphics[{RGBColor[0, 0, 1],
Line[{{x0, x0},
{x0, f[x0]}, {f[x0], f[x0]}}]
}]];
x0=f[x0]
];
Show[g1, g2, r, r0, PlotRange -> {-1, 20}, (PlotRange控制图形上下范围)
DisplayFunction -> $DisplayFunction]
x[0]=x0;
x[i_]:=f[x[i-1]]; (定义序列)
t=Table[x[i],{i,1,10}]//N
ListPlot[t] (散点图)
如果只需迭代n次产生相应的序列,用下列Mathematica程序:
Iterate[f_,x0_,n_Integer]:=
Module[{ t={},temp= x0},AppendTo[t,temp];
For[i=1,i <= n, i++,temp= f[temp];
AppendTo[t,temp]];
t
]
f[x_]:= (x+ 2/x)/2;
Iterate[f,0.7,10]
2.2.Logistic映射与混沌
Mathematica程序:
IterGeo[a_, x0_] :=
Module[
{p1, p2, i, pointlist = {}, v= x0, fv= a*x0*(1 - x0)},
p1=Plot[ {a*x*(1 - x), x}, {x, 0, 1}, DisplayFunction -> Identity];
AppendTo[pointlist, {x0, 0}];
For[i = 1, i < 20, i++, AppendTo[pointlist, {v, fv}];
AppendTo[pointlist, {fv, fv}];
v= fv; fv= 4*v*(1 - v)];
p2=ListPlot[pointlist, PlotJoined -> True,
DisplayFunction -> Identity];
Show[{p1, p2}, DisplayFunction -> $DisplayFunction]
]
IterGeo[2.6, 0.3]
将区间(0,4]以某个步长a
∆离散化,对每个离散的a值做迭代(2.2.2),忽略前50个迭代值,而把点()51,x
a,()52
,x
a显示在坐标平面上,最后形成的图形称为
a,…,()100
,x
Feigenbaum图。Mathematica程序:
Clear[f, a, x]; f[a_, x_] := a*x*(1 - x);
x0 = 0.5; r = {};
Do[
For[i = 1, i <= 300, i++,
x0 = f[a, x0];
If[i > 100, r = Append[r, {a, x0}]]
],
{a, 3.0, 4.0, 0.01}];
ListPlot[r]
在Logistic映射中,取4
a,任取两个初值使得它们之间的差的绝对值不超过0.l,运
=
行下列程序。
Sensitivity[n_Integer, x01_, x02_] :=
Module[
{pilist = {}, i, temp1=x01, temp2=x02},
For[i=1, i <= n, i++, temp1=4*temp1*(1-temp1);
temp2=4*temp2*(1-temp2);
AppendTo[pilist, {i, temp2-temp1}];
];
ListPlot[pilist, PlotJoined -> True]
]
Sensitivity[50, 0.1, 0.1001]
混沌不等于随机。实际上,在混沌区域之内,蕴涵着许多有序的规律。其Mathematica 程序: