计算方法实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安工程大学实验报告
课程计算方法实验名称第页共页
系别电子信息科学与技术实验日期年月日专业班级信科112班组别实验报告日期年月日
姓名学号_________ 报告退发 ( 订正、重做 )
E_mail:_________________________________ 教师审批评分___________________
方程求根
一、实验目的
用各种方法求任意实函数方程f(x)=0在自变量区间【a,b】上,或某一点附近的实根。并比较方法的优劣。
二、试验方法
(1)二分法
对方程f(x)=0在[a,b]内求根。将所给区间二分,在分店x=(b-a)/2判断是否f(x)=0,若是,则有根x=(b-a)/2。否则,继续判断是否f(a)*f(x)<0,若是,则令b=x,否则令a=x。重复此过程直至求出方程f(x)=0在[a,b]中的近似根为止。
(2)迭代法
将方程f(x)=0等价变换为x=Ψ(x)形式,并建立相应的迭代公式1 k X=Ψ(k X)。
(3)牛顿法
若已知方程f(x)=0的一个近似根X0,则函数f(x)在点X0附近可用一阶泰勒多项式P1(X)=f(X0)+'f(X0)(X-X0)来近似,因此方程f(x)=0可近似表示为f(X0)+f’(X0)(X-X0)
=0.设f’(X0)≠0,则X=X0-f(X0)/f ‘(X0).取x作为原方程新的近似根X1作为X0带入上式。迭代公式为:X k+1=X k—f(Xk)/f ‘(Xk).
三、实验用例
(1)在区间[0,1]上用二分发求方程
x
e+10x-2=0近似根,要求误差不超过0.0005.
(2)取初值X0=0,用迭代公式X k+1=(2-e k x)/10,(k=0,1,2,...)求方程x e+10x-2=0的近似根。误差不超过0.0005.
(3)取初值X0=0,用牛顿迭代法求方程
x
e+10x-2=0的近视根。要求误差不超过0.0005.
四、实验程序
二分法MATLAB程序:
function x=agui_bisect(fname,a,b,e)
%fname为函数名,a,b为端点,e 为精确度
fa=feval(fname,a);
fb=feval(fname,b);
if fa*fb>0 error('');end
k=0
x=(a+b)/2
while(b-a)>(2*e)
fx=feval(fname,x);
if fa*fx<0
b=x;
fb=fx;
else
a=x;
fa=fx;
end
k=k+1
x=(a+b)/2
End
实验截图:
MATLAB迭代法程序:
function x=agui_main(fname,x0,e)
%fname为函数名dfname的函数fname的导数,x0为迭代初值
%e为精度,N为最大迭代次数(默认为100)
N=100;
x=x0;%把x0赋给x,再算x+2*e赋给x0
x0=x+2*e;
k=0;
while abs(x0-x)>e&k k=k+1 %显示迭代的第几次 x0=x; x=(2-exp(x0))/10;%迭代公式 disp(x)%显示x end if k==N warning('已达到最大迭代次数');end %如果K=N则输出已达到最大迭代次数 实验截图: 牛顿迭代法MATLAB程序: function x=agui_newton(fname,dfname,x0,e) N=100 x=x0; x0=x+2*e; k=0; while abs(x0-x)>e&k k=k+1 x0=x; x=x0-feval(fname,x0)/feval(dfname,x0); disp(x) end if k==N warning('已达最大迭代次数');end 实验截图: 五、实验结果和总结 由上面的对二分法、迭代法、牛顿法三种方法的三次实验结果,我们可以得出这样的结论:二分法要循环k=11次,迭代法要迭代k=5次,牛顿法要迭代k=2次才能达到精度为0.0005的要求,而且方程 x e +10x-2=0的精确解经计算为0.0905250,计算量从大到小依次是:二分法,迭代法, 牛顿法。 解方程组的直接法 一、实验目的 用高斯消去法解线性方程组Ax=b,式中A 为n 阶列向量。并分析选主元的重要性。 二、实验方法 (1)顺序消去法 通过变换,将系数矩阵转换成等价的上三角阵,经过回代,求出方程组的解。 (2)列主元消去法 在第i 步时,首先,将ij a (j )1,,1,(,1 )(,)(⋅⋅⋅-=⋅- =∑+=n n i x a b x j n i j k j i k i i 进行回代,求出方程的解。