数值计算方法实验报告

时间:2024.3.31

《数值计算方法》实验报告

实验题目 二分法求非线性方程的根

专业班级 11级数学师范二班

姓 名

学 号 201102024056

指导老师 李 梦

联系电话 188xxxxxxxx

一、 实验目的

熟悉二分法求方程近似根的数值方法,与用计算器解出的值进行比较,并学会误差分析。

二、 实验原理

二分法的基本思路是通过计算隔根区间的中点,逐步将隔根区间缩小,从而可得方程的近似根数列{xn}x*?xk?1??。()?

三、 实验内容

已知f(x)?x3?e(?3)?0在?0,1?上有一个实根x*,f(0)?0,f(1)?0,可用二分法求该实根,要求精度满足条件:x*?xk?1?0.05。

本实验中的用到的求根方法有①二分法,②计算器求根。

四、 实验步骤

1.输入:a,b值及精度控制?量;

2.iff(a)f(b)?0then返回第1步,重新输入a,b 值else转第3步;

3.whilea?b??时做

1x?(a?b)2 (1),计算f(x);if f(x)=0 then输

出x,停机。

(2)if

[a,b]?[x,b]f(a)f(x)?0 then [a,b]?[a,x],else endwhile;

1x?(a?b)2 4.输出。

五、 Matlab源程序

1.erfen.m:

function [c,err,yc]=erfen(f,a,b,delta)

ya = feval(f,a);

yb = feval(f,b);

if ya * yb > 0 ,return,end

max1 = 1+round((log(b-a)-log(delta))/log(2)); for k=1:max1

c=(a+b)/2;

yc=feval(f,c);

if yc==0

a=c;

b=c;

elseif yb * yc > 0

b=c;

yb=yc;

else

a=c;

ya=yc;

end

if b-a<delta,break,end

end

c=(a+b)/2;

err=abs(b-a);

yc=feval(f,c);

2.f.m:

function f=f(x);

f=x^3-exp(-x);

六、 运行结果

数值计算方法实验报告

数值计算方法实验报告

七、 计算机计算结果

八、 实验分析

1、 二分法和计算器均能解出方程的根。

2、 二分法的精确度更高,收敛性较好。

3、 但在所要计算的函数不是很难的时候,用计算机计算比较便捷,只 是误差比二分法大。

4、 在用二分法计算的过程中,精度选择越小误差越小。

九、 收获与感想

学到了:本次实验我在看书与总结的基础上熟练掌握了二分法解方程的根的具体步骤,感受了二分法的简单便利,深刻体会到了学习数值计算方法的重要性与实用性。

感受:本次实验在刚开始时觉得无从下手,但当我真正投入其中时,便觉得只要认真花心思和时间去做,没有什么是办不到的。于是在和其他课程不冲突的情况下,我用课余时间完成了本次实验,以后在学习中我也会像这次一样认真对待的。


第二篇:数值计算方法实验报告jrh



一、实验的性质、目的和任务

本实验是与本专业基础课《数值计算方法》相配套的,旨在巩固专业课内容和学生编程的能力。

通过实验加强对数值方法的理解和掌握,编制出适用的程序。同时,在理论教学的基础上,注意方法处理的技巧及其与计算机的结合,;其次要通过例子,学习使用各种数值方法解决实际计算问题。

要求学生应用高级计算机语言Matlab编程完成实验。

二、实验基本要求

要求熟悉高级计算机语言Matlab,以及相关上机操作说明;上机时要遵守实验室的规章制度,爱护实验设备;记录调试过程及结果。

三、实验原理

应用高级计算机语言实现数值计算方法课程中的各种算法。

四、设备及器材配置

主机:微机

操作系统:WINDOWS 98以上

软件:高级计算机语言Matlab

五、考核与报告

每个实验完成后交一份实验报告。本实验作为平时成绩的一部分占学期期末总成绩的20%。

六、适用对象

自动化专业

七、主要参考书

1.  王能超编,《数值分析简明教程》,高等教育出版社,20##年,第2版

2.  封建湖编,《数值分析原理》,科学出版社,20##年,第1版

3.  冯有前编,《数值分析》,清华大学出版社,20##年,第1版

4.  周璐等译, John H. Mathews等编,《数值方法(MATLAB版)》,电子工业出版社,20##年,第二版

实验一  采用拉格朗日方法计算插值

一、    实验目的:

1. 掌握多项式插值的概念、存在唯一性;

2. 能够熟练地应用拉格朗日方法计算插值,并完成插值程序的设计和调试。

二、    实验内容:

构造拉格朗日插值多项式逼近,要求:

(1)    取节点求线性插值多项式

(2)    取节点求抛物插值多项式

(3)    取节点求三次插值多项式

(4)    分别求的值,并与精确值相比较。

三、    实验程序及结果:

实验程序如下:

Ex1_1.m:

l0=xianxing(1.3,-1,1);

l1=xianxing(1.3,1,-1);

y0=hanshu(-1);

y1=hanshu(1);

y=l0*y0+l1*y1

det1=abs(y-hanshu(1.3))

Ex1_2.m:

l0=paowu(1.3,-1,0,1);

l1=paowu(1.3,0,-1,1);

l2=paowu(1.3,1,-1,0);

y0=hanshu(-1);

y1=hanshu(0);

y2=hanshu(1);

y=l0*y0+l1*y1+l2*y2

det2=abs(y-hanshu(1.3))

Ex1_3.m:

l0=sanci(1.3,-1,0,1,2);

l1=sanci(1.3,0,-1,1,2);

l2=sanci(1.3,1,0,-1,2);

l3=sanci(1.3,2,-1,0,1);

y0=hanshu(-1);

y1=hanshu(0);

y2=hanshu(1);

y3=hanshu(2);

y=l0*y0+l1*y1+l2*y2+l3*y3

det3=abs(y-hanshu(1.3))

xianxing.m:

function f=xianxing(x,y,z)

f=(x-z)/(y-z);

paowu.m:

function f=paowu(x,y,z,w)

f=((x-z)*(x-w))/((y-z)*(y-w));

sanci.m:

function f=sanci(x,y,z,w,s)

f=((x-z)*(x-w)*(x-s))/((y-z)*(y-w)*(y-s));

hanshu.m:

function f=hanshu(x)

f=x^3;

实验结果分析:

y =1.3000

det1 =0.8970

y =1.3000

det2 =0.8970

y =2.1970

det3 =4.4409e-016

结果说明三次插值方法得到的结果最接近真实值。

实验二  采用埃特金方法计算插值

一、    实验目的:

1. 进一步掌握多项式插值的概念;

2. 能够熟练地应用埃特金方法计算插值,并完成插值程序的设计和调试。

二、    实验内容:

取节点为,用埃特金方法求的近似值,并与真实结果相比较。

三、    实验程序及结果:

实验程序如下:

Ex2.m:

x=[-1,-0.75,-0.5,-0.25,0,0.25,0.5,0.75,1];

for i=2:9

    for j=i:9

        y(j-1,i-1)=atj(0.793,x(i-1),x(j));

    end

end

y(8,8)

det=abs(y(8,8)-hs(0.793))

hs.m:

function f=hs(x)

f=2+sin(pi*x/6);

atj.m:

function f=atj(x,y,z)

f=((x-z)/(y-z))*hs(y)+((x-y)/(z-y))*hs(z);

实验结果分析:

ans =

2.4029

det =

5.2372e-004

实验结果说明利用埃特金算法得到的结果与真实值很接近,而且利用此迭代算法可以避免拉格朗日插值公式中的重新计算。

    实验三  采用复化柯特斯公式计算数值积分

一、    实验目的:

1.掌握牛顿-柯特斯公式的基本原理及推导,了解复化求积法的计算步骤;

2.能够熟练地应用复化梯形公式、复化新甫生求积公式和复化柯特斯求积公式计算数值积分,并完成积分程序的设计和调试。

二、    实验内容:

取节点为,分别用复化梯形公式、复化新甫生法和复化柯特斯方法求积分的近似值。

三、    实验程序及结果:

实验程序如下:

Ex3.m:

tnf=tx(0,1,8)

snf=xps(0,1,8)

cnf=kts(0,1,8)

hs3.m:

function f=hs3(x)

f=2+sin(2*pi*sqrt(x)/8);

tx.m:

function f=tx(x,y,n)

h=(y-x)/n;

sum=0;

for i=1:n-1

    sum=sum+hs3(x+i*h);

end

f=h/2*(hs3(x)+2*sum+hs3(y));

xps.m:

function f=xps(x,y,n)

h=(y-x)/n;

sum1=0;

sum2=0;

for i=0:n-1

    sum1=sum1+hs3(x+(i+1/2)*h);

end

for j=1:n-1

    sum2=sum2+hs3(x+j*h);

end

f=h/6*(hs3(x)+4*sum1+2*sum2+hs3(y));

kts.m:

function f=kts(x,y,n)

h=(y-x)/n;

sum1=0;

sum2=0;

sum3=0;

sum4=0;

for i=0:n-1

    sum1=sum1+hs3(x+(i+1/4)*h);

    sum2=sum2+hs3(x+(i+1/2)*h);

    sum3=sum3+hs3(x+(i+3/4)*h);

end

for j=1:n-1

    sum4=sum4+hs3(x+i*h);

end

f=h/90*(7*hs3(x)+32*sum1+12*sum2+32*sum3+14*sum4+7*hs3(y));

实验结果分析:

tnf =

2.4852

snf =

2.4910

cnf =

2.5143

实验四  采用四阶龙格-库塔方法求解常微分方程

一、    实验目的:

1. 掌握龙格-库塔方法的设计思想;

2. 能够熟练地应用龙格-库塔方法求解常微分方程,并完成四阶龙格-库塔方法程序的设计和调试。

二、    实验内容:

用四阶龙格-库塔方法计算区间上初值问题的解。其中步长

三、    实验程序及结果:

实验程序如下:

Ex4.m:

y0=0;

y(1)=lg_kt(y0,0.1);

for i=2:14

    y(i)=lg_kt(y(i-1),0.1);

end

y

lg_kt.m:

function f=lg_kt(y,h)

k1=hs4(y);

k2=hs4(y+h/2*k1);

k3=hs4(y+h/2*k2);

k4=hs4(y+h*k3);

f=y+h/6*(k1+2*k2+2*k3+k4);

hs4.m:

function f=hs4(x)

f=1+x^2;

实验结果分析:

y =

Columns 1 through 9

0.1003    0.2027    0.3093    0.4228    0.5463    0.6841    0.8423    1.0296    1.2602

Columns 10 through 14

1.5574    1.9647    2.5721    3.6016    5.7920

实验五  采用迭代法求解非线性方程

四、    实验目的:

1. 掌握牛顿法、弦截法、快速弦截法的算法思想;

2. 能够熟练地应用牛顿法、弦截法、快速弦截法求解非线性方程,并完成程序的设计和调试。

五、    实验内容:

分别用牛顿法、弦截法、快速弦截法求方程的根,要求精度

六、    实验程序及结果:

实验程序如下:

Ex5_1:

x(1)=0;

x(2)=newton(x(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

    x(i+1)=newton(x(i));

    i=i+1;

end

x

ex5_2:

x0=0;

x(1)=1;

x(2)=xjf(x0,x(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

    x(i+1)=xjf(x0,x(i));

    i=i+1;

end

x

ex5_3:

x0=0;

x(1)=1;

x(2)=k_xjf(x0,x(1));

i=2;

while(abs(x(i)-x(i-1))>1e-4)

    x(i+1)=k_xjf(x(i-1),x(i));

    i=i+1;

end

x

newton.h:

function f=newton(x)

f=x-(exp(x)-4*cos(x))/(exp(x)+4*sin(x));

xjf.h:

function f=xjf(x,y)

f=y-(hs5(y)/(hs5(y)-hs5(x)))*(y-x);

k_xjf.h:

function f=k_xjf(x,y)

f=y-(hs5(y)*(y-x))/(hs5(y)-hs5(x));

hs5.h

function f=hs5(x)

f=exp(x)-4*cos(x);

实验结果分析:

牛顿迭代法:

x =

Columns 1 through 9

         0    3.0000    1.8356    1.1134    0.9207    0.9049    0.9048    0.9048    0.9097

Columns 10 through 18

    0.9014    0.9071    0.9032    0.9059    0.9040    0.9053    0.9044    0.9051    0.9046

  Columns 19 through 23

  0.9049    0.9047    0.9048    0.9047    0.9048

☆实验总结:

通过本次试验,受益匪浅啊!使得对数值计算的各种方法产生了更为深刻的认知和了解,同时也巩固了过去所学的matlab知识。

更多相关推荐:
计算方法实验报告

江西科技师范学院实验报告课程系别班级学号姓名目录实验一误差的传播与估计实验二拉格朗日插值多项式实验三变步长复合梯形求积公式实验四解非线性方程二分法实验五一元非线性方程的迭代解法实验六列主元高斯消去法每次实验课必...

数值计算方法实验报告1

长春理工大学学生实验报告

计算方法实验报告

实验报告计算方法算法设计及其MATLAB实现实验1插值方法拉格朗日插值法一实验目的1了解lagrange插值法的基本原理和方法2通过实例掌握用MATLAB求插值的方法3编程实现lagrange插值二方法原理nn...

计算方法实验报告

在MATLAB运行窗口输入p2polyfitxy2y2polyvalp2xholdonplotxy23939gtext39y239pause3阶拟合在MATLAB运行窗口输入p3polyfitxy31y3pol...

数值计算方法实验报告

数值计算方法实验报告实验类别数值计算方法专业班级学号姓名XX大学XX学院实验一高斯列主元消去法实验类型设计性实验学时2学时实验内容1掌握列主元消去法的基本思路和迭代步骤2并能够利用列主元的高斯消去法解任意阶数的...

计算方法实验报告格式20xx

一实验总体要求1实验报告要求用实验报告纸2实验报告要求手写3根据规定格式写实验报告具体见第五节4实验报告前四项内容在上实验前写好5实验报告第五项在实验课上根据具体情况写6每节实验课下课前交实验报告7提倡实验程序...

计算方法实验报告 (2120xx5007)

数学计算方法实验报告老师黄昌斌姓名车松学号2120xx5007班级钱学森21班手机187xxxxxxxx题目一按两种顺序计算y哪个接近真值111y1000解1先加绝对值较大的数程序clearsum1000for...

计算方法与实习实验报告 舍入误差与数值稳定性

实验一舍入误差与数值稳定性用两种不同的顺序计算1644834分析其误差的变化程序includeltstdiohgtincludeltmathhgtvoidmainintifloatsum00sum10fori1...

计算方法实验报告模板

课程名称计算方法班级10网络工程1班实验名称实验一函数插值方法指导教师肖东姓名蔡柯嘉学号101402102组长姓名余可帆学号101402138资料姓名李新龙学号101402120编辑姓名黄剑豪学号组别第二组一实...

计算方法实验报告4版

20xx年包头师范学院数学科学学院12信算本班计算方法Matlab上机实验报告计算方法Matlab上机实验报告姓名刘慧杰班级12信算本班学号120xx00044第一章11Lagrange插值实验报告求解的方程f...

计算方法实验六高荣双

实验报告课程名称计算方法院系数学科学系专业班级数应1001B学号1031110107学生姓名高荣双指导教师开课时间20xx至20xx学年第一学期一学生撰写要求按照实验课程培养方案的要求每门实验课程中的每一个实验...

数值计算方法实验报告

数值分析上机实验报告学院理学院专业数学与应用数学学号姓名实验报告1例1实验程序gtgtI0exp1pondx0expx201I005381gtgtvpaI010实验结果ans05380795164例19实验程序...

计算方法实验报告(39篇)