数值分析计算机实验和4.docx

上传人:b****4 文档编号:26931202 上传时间:2023-06-24 格式:DOCX 页数:14 大小:134.70KB
下载 相关 举报
数值分析计算机实验和4.docx_第1页
第1页 / 共14页
数值分析计算机实验和4.docx_第2页
第2页 / 共14页
数值分析计算机实验和4.docx_第3页
第3页 / 共14页
数值分析计算机实验和4.docx_第4页
第4页 / 共14页
数值分析计算机实验和4.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

数值分析计算机实验和4.docx

《数值分析计算机实验和4.docx》由会员分享,可在线阅读,更多相关《数值分析计算机实验和4.docx(14页珍藏版)》请在冰豆网上搜索。

数值分析计算机实验和4.docx

数值分析计算机实验和4

数值分析计算机实验和4

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

实验三复化辛卜生法,龙贝格法

一、目的与要求:

Ø通过实际计算体会各种方法的精确度;

Ø会编写用复化辛卜生、龙贝格算法求定积分的程序。

二、实验内容:

Ø通过实际计算体会各种方法的精确度并且会编写用复化辛卜生、龙贝格算法求定积分的程序

三、程序与实例

复化辛卜生公式

算法:

复化辛卜生公式为Sn=h/6

计算过程为:

1.令

2.对

计算

3.

程序与实例

例用复化辛卜生法计算积分

源程序:

#include

intmain()

{

doublea=0.0,b=1.0;

doublex=a;

doubleSn=0;

intn;

cout<<"请输入你想求的阶数:

";

cin>>n;

intm=2*n+1;

doubleh=0.5/n;//步长

double*f;

f=newdouble[m];

for(inti=0;i

{

f[i]=1.0/(1+x*x);

x=x+h;

}

for(intj=0;j

{

cout<<"f["<

}

for(intk=0;k<=n-1;k++)

{

Sn=Sn+f[k*2]+4*f[2*k+1]+f[2*(k+1)];

}

cout<<"S"<

return0;

}

运行结果

说明:

本例运行了三次,当

时,就与

时有6位数字相同,若用复化梯形法计算,当n=512时有此结果。

Ø龙贝格算法计算

算法

用事后估计法控制精度

源程序:

//龙贝格法计算积分,f(x)=1/(1+x^2)

#include

#include

#definee2.71828183

#definef(x)(1.0/(1.0+(x)*(x)))

voidmain()

{

doublea=0.0,b=1.0;

doubleae=5*e-6;cout<<"精度为:

"<

doubleT1=0.5*(f(0)+f

(1));

doubleT2=0.5*T1+0.5*f(0.5);

cout<<"T1="<

cout<<"T2="<

doubleS1=4.0*T2/3.0-1.0*T1/3.0;

if(fabs((1.0/3.0)*(T2-T1))

{

cout<<"S1满足精度要求!

"<

cout<<"S1="<

}

else

{cout<<"S1不满足精度要求!

"<

}

doubleT4=0.5*T2+0.25*(f(0.25)+f(0.75));

doubleS2=(1.0/3.0)*(4*T4-T2);

doubleC1=(1.0/15.0)*(16*S2-S1);

if(fabs((1.0/15.0)*(S2-S1))

{

cout<<"C1满足精度要求!

"<

cout<<"C1="<

}

else

{cout<<"C1不满足精度要求!

"<

}

doubleT8=0.5*T4+(1.0/8.0)*(f(1.0/8.0)+f(3.0/8.0)+f(5.0/8.0)+f(7.0/8.0));

doubleS4=(1.0/3.0)*(4*T8-T4);

doubleC2=(16.0/15.0)*S4-(1.0/15.0)*S2;

doubleR1=(64.0/63.0)*C2-(1.0/63.0)*C1;

if(fabs((1.0/63.0)*(C2-C1))

{

cout<<"R1满足精度要求!

"<

cout<<"R1="<

}

else

{cout<<"R1不满足要求!

"<

}

DoubleT16=0.5*T8+(1.0/16.0)*(f(1.0/16.0)+f(3.0/16.0)+f(5.0/16.0)+f(7.0/16.0)+f(9.0/16.0)+f(11.0/16.0)+f(13.0/16.0)+f(15.0/16.0));

doubleS8=(1.0/3.0)*(4*T16-T8);

doubleC4=(16.0/15.0)*S8-(1.0/15.0)*S4;

doubleR2=(64.0/63.0)*C4-(1.0/63.0)*C2;

if(fabs((1.0/63.0)*(C4-C2))

{

cout<<"R2满足精度要求!

"<

cout<<"R2="<

}

运行结果:

实验四改进欧拉法,二分法,牛顿法

计算机121班吴珍珍122460

一、目的与要求:

Ø熟悉求解常微分方程初值问题的有关方法和理论,主要是改进欧拉法

Ø会编制上述方法的计算程序

Ø针对实习题编制程序,并上机计算其所需要的结果;

二、实验内容:

Ø熟悉求解常微分方程初值问题的有关方法和理论,主要是改进欧拉法,体会其解法的功能。

程序与实例

Ø改进欧拉方法

算法概要

解一阶常微分方程初值问题

将区间[a,b]作n等分,取步长

欧拉公式为

梯形公式为

改进欧拉法,采用公式

或表为

实验题:

源代码:

#include

#definef(x,y)(-x*y*y)

intmain()

{

intn;

cout<<"您想把区间分成多少分?

"<<"";

cin>>n;

double*Xi=newdouble[n+1];

double*Yi=newdouble[n+1];

doubleh=3.0/n;

Xi[0]=0;

for(intk=0;k<=n;k++)

{

Xi[k+1]=Xi[k]+h;

}

Yi[0]=2;

for(inti=0;i<=n;i++)

{

Yi[i+1]=Yi[i]+(h/2.0)*(f(Xi[i],Yi[i])-(Xi[i+1]*(Yi[i]+h*f(Xi[i],Yi[i]))));

}

cout<<"n="<

for(intj=0;j<=n;j++)

{

cout<<"X"<

}

return0;

}

运行结果:

二分法和牛顿迭代法

一、目的与要求:

Ø通过对二分法和牛顿迭代法作编程练习和上机运算,进一步体会它们在方程求根中的不同特点;

Ø比较二者的计算速度和计算精度。

二、实验内容:

Ø通过对二分法和牛顿迭代法作编程练习和上机运算,进一步体会它们在方程求根中的不同特点

三、程序与实例

Ø二分法

算法:

给定区间[a,b],并设与符号相反,取为根的容许误差,为的容许误差。

(1)令c=(a+b)/2

(2)如果(c-a)<或,则输出,结束;否则执行(3),

(3)如果,则令;否则则令,重复

(1),

(2),(3)。

书上课后习题1(老教材)。

源代码:

#include

#definef(x)(x*x-x-1)

intmain()

{

doublewucha=0.05;

doublea=1.0,b=2.0;

doublem;

intn=4;

for(inti=1;i<=n;i++)

{

m=(b+a)/2.0;

if(f(m)>0)

{

b=m;

}

else

{

a=m;

}

cout<<"("<

}

cout<<"最后区间:

"<<"("<

return0;

}

运行结果:

Ø牛顿迭代法

算法:

给定初值

为根的容许误差,

的容许误差,N为迭代次数的容许值。

(1)如果

=0或迭代次数大于N,则算法失败,结束;否则执行

(2)。

(2)计算

=

-

(3)若

<

<

,则输出

,程序结束;否则执行(4)。

(4)令

=

,转向

(1)。

书上课后习题7的

(1)(老教材)

源代码:

#include

#include

#definef(x)(x*x*x-3*x-1)

#defineff(x)(3*x*x-3)

intmain()

{

doublex0=2,x1;

for(intn=0;n<3;n++)

{

if(ff(x0)!

=0)

{

cout<<"f'(x0)!

=0,执行下一步算法!

"<

}

else

{break;}

x1=x0-f(x0)/ff(x0);

cout<<"Xk="<

if(fabs(x1-x0)<0.0005)

{

cout<<"算法结束!

"<<""<<"x*="<

}

else

{

cout<<"f(x1)

"<

x0=x1;

}

}

return0;

}

运行结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1