数值分析课程设计牛顿迭代法割线法.doc
文本预览下载声明
数值分析与实验
课程设计
班级:
姓名:
学号:
08级应用数学《数值分析与实验(实践)》任务书
一、设计目的
通过《数值分析与实验(实践)》实践环节,掌握本门课程的众多数值解法和原理,并通过编写C语言或matlab程序,掌握各种基本算法在计算机中的具体表达方法,并逐一了解它们的优劣、稳定性以及收敛性。在熟练掌握C语言或matlab语言编程的基础上,编写算法和稳定性均佳、通用性强、可读性好,输入输出方便的程序,以解决实际中的一些科学计算问题
二、设计教学内容
数值方法的稳定性;
利用牛顿法和割线法程序求出非线性方程的解,并比较它们之间的优劣;
高斯消去法和列主元高斯消去法求解线性方程组;
雅克比法和高斯-赛德尔迭代法解方程组;
4、利用Lagrange插值多项式求未知点的近似值;
5、利用所给数据进行数据的多项式和可转化成多项式形式的函数拟合;
6、编写复化辛卜生公式和龙贝格算法,通过实际计算体会各种方法的精确度;
7、?Euler方法和四阶Runge-Kutta方法求解初值问题的微分方程组;
8、利用幂法求矩阵按模最大的特征值及对应特征向量; ?
? ( 8个中选取1个 )
三、设计时间
2011—2012学年第1学期: 第16周 共计一周
教师签名:
2011年12月12日
前 言
数值计算方法是一种利用计算机解决数学问题的数值近似解方法,特别是无法用人工过计算器计算的数学问题。数值计算方法常用于矩阵高次代数方程矩阵特征值与特征向量的数值解法,线性方程组迭代法,函数逼近,数值积分与微分,常微分方程初值问题数值解等数学与计算机之间的一条通道数值计算的应用范围已十分广泛,作为用计算机解决实际问题的纽带,数值算法在求解线性方程组,曲线拟合、数值积分、数值微分迭代方法、插值法、拟合法、最小二乘法等。
通过数值计算方法将理解掌握数值计算方法基本理论和求解数学模运算。提高的编程能力解决实际问题 1-1
3.1算法
给定初始值x0,N为迭代次数容许的最大值,为的容许误差,eps为根的容许误差。
①如果或迭代次数大于N,则算法失败,结束;否则执行②。
②计算。
③若,,则输出x1,程序结束;否则执行④。
④令x0=x1,转向①。
3.2、Matlab程序:
eps=5e-6;
delta=1e-6;
N=100;
k=0;
x0=1.0;
while(1)
x1=x0-func2_2(x0)/func2_2_1(x0);
k=k+1;
if(kN|abs(x1)eps)
disp(Newtow method failed)
break
end
if abs(x1)1
d=x1-x0;
else
d=(x1-x0)/x1;
end
x0=x1;
fprintf(x[%d]=%f\n,k,x0)
if(abs(d)eps|abs(func2_2(x1))delta)
break
end
end
fprintf(x=%f\n,x0)
function y=func2_2_1(x)
y=log(2.17828)/x +1;
end
function y=func2_2(x)
y=log(x)+x-2;
end
3.3、运行结果
x[1]=1.562260
x[2]=1.556658
x[3]=1.557192
x[4]=1.557141
x[5]=1.557146
x=1.557146
二、割线法求解方程的根
1.实验目的:学会用割线法求解方程的根
2 实验内容:割线法
利用割线法求非线性方程lg(x)+x-2=0的根。
割线法公式如下:
1-2
3.1算法
①如果或迭代次数大于N,则算法失败,结束;否则执行②。
②计算x1=x0-f1(x1)*(x1-x0)/(f1(x1)-f1(x0)).
③若,则输出x1,程序结束;否则执行④。
④令x0=q,q=xk,转向①。
3.2Matlab程序如下:
function gexian(x0,x1,eps)
k=1
xk=x1-f1(x1)*(x1-x0)/(f
显示全部