欢迎来到千学网!
您现在的位置:首页 > 实用文 > 其他范文

Romberg龙贝格算法实验报告

时间:2023-01-12 07:48:23 其他范文 收藏本文 下载本文

下面是小编精心整理的Romberg龙贝格算法实验报告,本文共2篇,仅供参考,大家一起来看看吧。

Romberg龙贝格算法实验报告

篇1:Romberg龙贝格算法实验报告

Romberg龙贝格算法实验报告

课 程 实 验 报 告

课程名称:

专业班级: CS1306班 学 号: U14967 姓 名: 段沛云 指导教师: 报告日期:

计算机科学与技术学院

目录

1 实验目的 ........................................................ 1

2 实验原理 ........................................................ 1

3 算法设计与流程框图 .............................................. 2

4 源程序 .......................................................... 4

5 程序运行 ........................................................ 7

6 结果分析 ........................................................ 7

7 实验体会 ........................................................ 7

1 实验目的

掌握Romberg公式的用法,适用范围及精度,熟悉Romberg算法的流程,并能够设计算法计算积分

31

得到结果并输出。 1x

2 实验原理

2.1 取k=0,h=b-a,求T0=

数)。 2.2 求梯形值T0(

b-a

),即按递推公式(4.1)计算T0。 k

2

h

[f(a)+f(b)],令1→k,(k记区间[a,b]的二分次2

2.3 求加速值,按公式(4.12)逐个求出T表的第k行其余各元素Tj(k-j)

(j=1,2,….k)。

2.4 若|Tk+1-Tk|

n-1

11T2n=[Tn+hn∑f(xi+)]

22i=0

1

Sn=T2n+(T2n-Tn)

31

Cn=S2n+(S2n-Sn)

151

Rn=C2n+(C2n-Cn)

63

3 算法设计与流程框图

算法设计:(先假定所求积分二分最大次数次数为20) 3.1 先求T[k][0] 3.2 再由公式T

(k)m

4m(k+1)1)=mTm-1-mTm(k-1(k=1,2,) 求T[i][j] 4-14-1

3.3 在求出的同时比较T[k][k]与T[k-1][k-1]的大小,如果二者之差的绝对

值小于1e-5,就停止求T[k][k];此时的k就是所求的二分次数,而此时的T[k][k]就是最终的结果 3.4 打印出所有的T[i][j]; 程序流程图

4 源程序

#include #include #include #include int main(void) {

float f(float(x)) {

float y; y=1/x; return y; }

float a,b,e,h,s,k,x,T1=0,T2=0,S1=0,S2=0,C1=0,C2=0,R1=0,R2=0; int i=0;

printf(“请输入积分下限 : ”); scanf(“%f”,&a);

printf(“\n请输入积分上限 :”); scanf(“%f”,&b);

printf(“\n请输入允许误差 :”); scanf(“%f”,&e); k大学网=1; h=b-a;

T1=h*(f(a)+f(b))/2;

printf(“____________________________________________\n”); printf(“计算结果如下 : \n”);

printf(“\nk T2 S2 C2 R2\n”); printf(“%d %10.7f %10.7f %10.7f %10.7f\n”,i,T1,S1,C1,R1); do {

x=a+h/2; s=0; while(x

{ s=s+f(x); x=x+h; }

T2=(T1+s*h)/2; S2=T2+(T2-T1)/3; if(k==1) {

T1=T2; S1=S2; h=h/2; k=k+1; }

else if(k==2) {

C2=S2+(S2-S1)/15; C1=C2; T1=T2; S1=S2; h=h/2; k=k+1; }

else if(k==3) {

R2=C2+(C2-C1)/63; C2=S2+(S2-S1)/15; C1=C2; T1=T2; S1=S2; h=h/2; k=k+1; } else {

C2=S2+(S2-S1)/15;

R2=C2+(C2-C1)/63; if(fabs(R2-R1)

printf(“%d %10.7f %10.7f %10.7f %10.7f\n”,i+1,T2,S2,C2,R2);

break;

} else { R1=R2; C1=C2; T1=T2; S1=S2; h=h/2; k=k+1; } } i++;

printf(“%d %10.7f %10.7f %10.7f %10.7f\n”,i,T2,S2,C2,R2); } while(1); system(“pause”); return 0; }

5 程序运行

6 结果分析

如上所示的结果与课本中求得的结果完全一样,表明程序编写正确,且符合要求,事实上,只要再将所求值的.精度设置得更小,则所求的结果将更加准确,最终将无限接近于标准值,由上表也可以看出用龙贝格积分法求函数的积分值在精度比较低的情况下就能求到很准确的值!

7 实验体会

本次实验较为简单,主要时间是耗费在循环判断上面,因为书上已经给了流程图,都是基本的C语言,难度不大。过程中唯一遇到的一点障碍就是在写循环判断时由于多重判断多重循环导致混乱,幸好最后改

正了,最后得到的结果经检验与给定的结果相同。通过这次实验上机,

使我更进一步了解了龙贝格法的计算思想,其在精度上很有保证,收敛较快,是解积分问题的有效方法。

篇2:线性系统龙伯格能控规范型的算法分析

线性系统龙伯格能控规范型的算法分析

潘晓中  苏   D   王法能武警工程学院电子技术系(西安,  710086) 【摘要】该文从线性系统能控规范型的基本理论入手,详细介绍了龙伯格能控规范型的构造方法和实现步骤,并就此问题给出了一个具有较高实用价值的MATLAB通用程序。【关键词】线性系统    能控规范型    MATLAB  中图分类号:TP312MA    O231.1 Algorithmic analysis of Linear system Luenberger ControllableStandard Model (Pan Xiaozhong  Suyang   Wang Faneng)(Electronic Technology Department ,Engineering College of Armed Police Force)

1前言线性系统的状态空间分析法,是线性系统理论中最重要和影响最广泛的一个分支。状态空间法中,用以表征系统动力学特征的数学模型是反映输入、输出变量和状态变量之间关系的一对向量方程,称为状态方程和输出方程。(状态方程)(输出方程)这是一种时间域分析方法,在系统的分析和综合中,所涉及的计算主要为矩阵运算和矩阵变换,MATLAB为此提供了一个强有力的工具。线性系统能控规范型的实现,在线性反馈系统的状态变量反馈和含状态观测器的状态变量反馈系统的设计中占有很重要的地位。本文针对线性系统理论中的极点配置问题,着重讨论如何利用MATLAB语言来实现任意线性多输入、多输出系统的龙伯格能控规范型的算法。并给出了一个利用MATLAB语言编制的实现此算法的通用程序。2线性系统能控规范型的相关理论2.1  能控性和能观性的概念能控性和能观性是系统的两个基本的'结构特征。现代控制理论的发展表明,这两个概念对于控制和估计问题的研究有着极其重要的意义。在一个系统中,输入输出构成系统的外部变量,状态变量为系统的内部变量,能控性是反映系统的所有内部(状态)变量能否由输入变量来影响和控制,并由任意始点到达原点。能观性则是表明系统内部(状态)变量能否由输出完全反映。

法兰克.贝格的体悟  

实验报告

大学化学实验报告

有机化学实验报告

初中化学实验报告

实验报告总结

示波器实验报告

基尔霍夫定律实验报告

心理学实验报告

光电效应实验报告

《Romberg龙贝格算法实验报告(锦集2篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式

点击下载本文文档