数学实验报告.docx: .
数学实验报告
日期:2013-5-15
班级
数学系10A班 姓名 张修成 学号 20101611131
实验 名称
用不动点迭代法解方程
【问题背景描述】
天文学中有一类著名的方程一开普勒方程
x=q*sinx+a (0<q<l,a 为常数)
开普勒方程是用来确定行星在其运行轨道上的位置的。如何求解该方程并使其解达到一定精度 呢?
【实验目的】
熟练掌握MATLAB
掌握不动点迭代法的原理
【实验原理与数学模型】
对于方程x=f(x),取一个初值x0代入f(x),算得xl=f(xO),再计算x2=f(xl) ,000,这 样依次类推得到一个迭代格式
Xk+l=f(Xk) ,k=0,1,2,3...
从而得到一个序列{Xk} , k=0,l,2,3-. 通常称该序列为迭代序列,f(x)称为迭代函数,
x0称为迭代初值。
如果有迭代格式所产生的迭代序列{Xk}收敛,容易证明在收敛的情况下,迭代序列的极限 就是x=f(x)方程的实根。
【实验具体内容】
运用不动点迭代法求解开普勒方程
X=*sin(x)+ 在[-2,2]上的解
【实验过程记录】
确定初值
编写下列程序,画出函数沪x和f=*sin(x)+,确定其交点大概位置 »clear; clc; elf;
» f=inline(,*sin(x)+,);
» g=inline('x')
hold on
» fplot(g, [-2,2]) » fplot(f, [-2,2]) » hold off
» grid 输出结果如下所示:
所以,确定初值为xO=l
不断迭代
算法:
第一步:将f(xO)赋值给xl
第二步:确定xl・xO的绝对值大小,若小于给定的误差值,则将xl当做方程的解,否则回到第一 步
编写计算机程序:
clear
f=inline('*sin(x)+');
xO=l;
xl=f(xO);
k=l;
while abs(x 1 -x0)>= 1 .Oe-6
xO=xl;
xl=f(xO);
k=k+l;
fprintf('k=%.0f,x0=%.9f,xl=%.9f\n',k,x0,xl)
end
显示结果如下:
k=2,x0=,xl= k=3,x0=,xl= k=4,x0=,xl= k=5,x0=,xl= k=6,x0=,x 1= k=7,x0=
数学实验报告 来自淘豆网m.daumloan.com转载请标明出处.