搜档网
当前位置:搜档网 › 计算数值实验报告(太原理工大学)

计算数值实验报告(太原理工大学)

计算数值实验报告(太原理工大学)
计算数值实验报告(太原理工大学)

本科实验报告

课程名称:计算数值方法

实验地点:综合楼五层506室

专业班级:计科1002 学号: 14

学生姓名: xxx 指导教师:王峥

2012 年 6 月 20

太原理工大学学生实验报告

2,)

内有零点,反之在(a,(a+b)/2

五、结构程序设计

迭代法:

#include<>

#include<>

main()

{

int i;

double xn[15],y,x1,x2,m ;

printf("请输入x1,x2的值:\n" );

scanf("%lf%lf",&x1,&x2);

printf("请输入精度要求:\n" );

scanf("%lf",&m);

printf(" n xn\n");

i=0;

do{

xn[0]=(x1+x2)/2 ;

xn[i+1]= sqrt(10/(4+xn[i]));

????

??????=????????????????????13814142210321321x x x ???

?

??

??????=?????????????????????

???

??--?-2178.4617.5911212592.1121130.6291.51314

.59103.043

2115

x x x x =

?

?

??????????????????????201161263841027851

2

4

4321x x x x ??

???

???

?

???????----=???????????

?????????????-555721121121121 n n x x x x

追赶法:

用来求对角方程组;将系数矩阵A 转化为A=L*U, L 为普通下n-1对角矩阵,U 为单位上n-1对角矩阵,然后通过

程组l*y=b,u*x=y,来求解x.

、主要仪器设备

c++ C-free CodeBlocks

、结构程序设计

Gauss 消元法:

#include

#include using namespace std; int main() {

int n,i,j,k;

double a[100][100],b[100],o; cout<<"输入未知数个数:"<>n;

cout<<"输入数列:"<

for (j=1;j<=n+1;j++) cin>>a[i][j]; for (i=1;i<=n;i++)

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

if (fabs(a[j][i])>1e-7)

{

o=a[i][i]/a[j][i];

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

a[j][k]=a[j][k]*o-a[i][k];

}

for (i=n;i>0;i--)

{

b[i]=a[i][n+1]/a[i][i];

for (j=i-1;j>0;j--)

a[j][n+1]=a[j][n+1]-b[i]*a[j][i];

}

cout<<"解得:"<

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

lf\n",i,d[i]);

}

、结果讨论和分析

消元法:列主元素消元法:

解法:追赶法:

讨论

从消元过程可以看出,对于n阶线性方程组,只要各步主元素不为零,经过n-1步消元,就可以得到一个等价的系数三角形阵的方程组,然后再利用回代过程可求得原方程组的解. 由于列主元素法相似且优于完全主元素法所以省略消元过程相当于分解 A为单位下三角阵L与上三角阵U的乘积,解方程组Ly=b回代过程就是解方程组Ux=y。其中的单位下三角阵、U为上三角阵. 在 A 的LU 分解中, L取下三角阵, U 取单位上三角阵,这样求解方程组Ax=d 的方法法。另外是追赶法和其他方法求同一方程结果不一样,我多次修改源程序,也不知道原因。再就是追赶法有很大的局改良。

图:

太原理工大学学生实验报告

x1[0]=x10;

x2[0]=x20;

x3[0]=x30;

x1[i+1]=*x2[i]+*x3[i]+;

x2[i+1]=*x1[i]+*x3[i]+;

x3[i+1]=*x1[i]+*x2[i]+;

printf("%5d %5lf %5lf %5lf\n",i,x1[i],x2[i],x3[i]);

} }

六、实验结果与分析:

雅克比迭代法:

分析讨论:

其实,这两个迭代法是之前迭代法的升级,多了几个迭代式子而已,而且两者相差不大比较简单,所以选择了雅克比迭代法进行求解,但是没有与另一种方法高斯赛德尔迭代法进行实质性的比较。

流程图:

太原理工大学学生实验报告

temp=0;

for(j=0;j

V[i]=temp;

}

for(i=0;i

if(k==1)r1=MaxValue(V,N);

else r2=MaxValue(V,N);

if(fabs(r2-r1)

r1=r2;

}

printf("r=%f\n",r2);

for(i=0;i

}

void main()

{

float A[N][N]={{2,-1,0},{-1,2,-1},{0,-1,2}} ;float U[N]; //A的值 U[0]=1;

U[1]=1;

U[2]=1;//x0的值

PowerMethod(A[0]);

}

六、结果讨论和分析

分析讨论

由于该程序将A矩阵和x0的值编写在程序中,所以要想修改成其他矩阵时比较麻烦,所以也有一定的局限性。幂法是一种求任意矩阵A的按模最大特征值及其对应特征向量的迭代算法。该方法的最大优点是计算简单,容易在计算机上实现,对稀疏矩阵较为适合,但有时收敛速度很慢。

流程图:

太原理工大学学生实验报告

P=M[0][1]+N;

}

cout<<"其函数值:y="<

}

六、结果讨论和分析

分析讨论

拉格朗日插值的优点是插值多项式特别容易建立,缺点是增加节点是原有多项式不能利用,必须重新建立,即所有基函数都要重新计算,这就造成计算量的浪费。所以该程序选择了牛顿法,由于在输入数据的时候比较麻烦所以将数据存在了程序里面,只能在程序里修改数据。另外由于精度问题计算结果有一定的误差。

流程图:

太原理工大学学生实验报告

《计算方法》课内实验报告

《计算方法》实验报告 姓名: 班级: 学号: 实验日期: 2011年10月26日

一、实验题目: 数值积分 二、实验目的: 1.熟悉matlab 编写及运行数值计算程序的方法。 2.进一步理解数值积分的基础理论。 3.进一步掌握应用不同的数值积分方法求解给定的积分并给出数据结果及误差分析。 三、实验内容: 1.分别用复合梯形求积公式及复合辛普森求积公式计算积分xdx x ln 10 ? , 要求计算精度达到410-,给出计算结果并比较两种方法的计算节点数. 2.用龙贝格求积方法计算积分dx x x ?+3 021,使误差不超过510-. 3.用3=n 的高斯-勒让德公式计算积分?3 1 sin x e x ,给出计算结果. 4.用辛普森公式(取2==M N ) 计算二重积分.5 .00 5 .00 dydx e x y ? ? - 四、实验结果: 1.(1)复合梯形法: 将区间[a,b]划分为n 等份,分点n k n a b h kh a x k ,2,1,0,,=-=+=在每个区间[1,+k k x x ](k=0,1,2,···n-1)上采用梯形公式,则得 )()]()([2)()(1 11 1 f R x f x f h dx x f dx x f I n n k k k b a n k x x k k ++===∑?∑? -=+-=+ 故)]()(2)([21 1 b f x f a f h T n k k n ++=∑-=称为复合梯形公式 计算步长和划分的区间 Eps=1E-4 h1=sqrt(Eps/abs(-(1-0)/12*1/(2+1))) h1 =0.0600 N1=ceil(1/h1) N1 =17 用复合梯形需要计算17个结点。 复合梯形: function T=trap(f,a,b,n) h=(b-a)/n;

数值分析实验报告1

实验一误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 其中ε(1.1)和(1.221,,,a a 的输出b ”和“poly ε。 (1(2 (3)写成展 关于α solve 来提高解的精确度,这需要用到将多项式转换为符号多项式的函数poly2sym,函数的具体使用方法可参考Matlab 的帮助。 实验过程: 程序: a=poly(1:20); rr=roots(a); forn=2:21 n form=1:9 ess=10^(-6-m);

ve=zeros(1,21); ve(n)=ess; r=roots(a+ve); -6-m s=max(abs(r-rr)) end end 利用符号函数:(思考题一)a=poly(1:20); y=poly2sym(a); rr=solve(y) n

很容易的得出对一个多次的代数多项式的其中某一项进行很小的扰动,对其多项式的根会有一定的扰动的,所以对于这类病态问题可以借助于MATLAB来进行问题的分析。 学号:06450210 姓名:万轩 实验二插值法

太原理工大学计算机网络实验报告

本科实验报告 课程名称:计算机网络B 实验地点:行勉楼 专业班级:学号 学生姓名: 指导教师: 实验成绩: 2016年 6 月 14 日

实验3 VLAN基本配置 一、实验目的 掌握交换机上创建VLAN、分配静态VLAN成员的方法。 二、实验任务 1、配置两个VLAN:VLAN 2和VLAN 3并为其分配静态成员。 2、测试VLAN分配结果。 三、实验设备 Cisco交换机一台,工作站PC四台,直连网线四条,控制台电缆一条。 四、拓扑结构 五、实验结果 PC0到PC1 想通 PC0到PC2 不通,不在相同VLAN PC2到PC3 不通,网段不同。 Switch#sh run Building configuration... Current configuration : 1127 bytes ! version 12.1 no service timestamps log datetime msec no service timestamps debug datetime msec no service password-encryption ! hostname Switch ! ! spanning-tree mode pvst ! interface FastEthernet0/1

! interface FastEthernet0/2 switchport access vlan 2 ! interface FastEthernet0/3 switchport access vlan 2 ! interface FastEthernet0/4 switchport access vlan 2 ! interface FastEthernet0/5 switchport access vlan 3 ! interface FastEthernet0/6 switchport access vlan 3 ! interface FastEthernet0/7 switchport access vlan 3 ! 六、实验心得 输入容易出现错误。重复输入次数多。

太原理工大学软件工程《数据结构实验报告4-查找》

本科实验报告 课程名称:数据结构B 实验项目:查找 实验地点:行勉楼C214 专业班级:软件XXX班学号:2014XXXX 学生姓名:xxxxx 指导教师:牛之贤张润梁 2016年 1 月 1 日

void insertBST(BiTree *bt, BiTree s) { if (*bt == NULL) *bt = s; else if (s->data.key<(*bt)->data.key) insertBST(&((*bt)->lchild), s); else if (s->data.key>(*bt)->data.key) insertBST(&((*bt)->rchild), s); } main() { char ch; KeyType key; BiTree bt, s; int i = 0; printf("请输入元素:\n"); scanf("%d", &key); bt = NULL; while (key != -1) { s = (BiTree)malloc(sizeof(BiTNode)); (s->data).key = key; s->lchild = s->rchild = NULL; insertBST(&bt, s); scanf("%d", &key); } do { printf("输入你想要查找的元素:"); scanf("%d", &key); s = searchBST(bt, key); if (s != NULL) printf("成功! 这个等价元素是 %d.\n", s->data.key); else printf("没有找到!\n"); printf("是否继续查找?(y/n):"); scanf("%c", &ch); ch = getchar(); } while (ch == 'y' || ch == 'Y'); getchar(); } 4.2#include int b_search(int *p, int l, int r, int key); int main() { int a[10] = { 1,2,3,4,5,6,7,8,9,10 }; int i, p, k; for (i = 0; i < 10; i++) { printf("a[%d]=%d\n", i, a[i]); } for (i = 0; i<2; i++) {

太原理工大学数值计算方法实验报告

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解 法、线性方程组的迭代解法、代数插值和最 小二乘拟合多项式 实验地点:行勉楼 专业班级: ******** 学号: ********* 学生姓名: ******** 指导教师:李誌,崔冬华 2016年 4 月 8 日

y = x*x*x + 4 * x*x - 10; return y; } float Calculate(float a,float b) { c = (a + b) / 2; n++; if (GetY(c) == 0 || ((b - a) / 2) < 0.000005) { cout << c <<"为方程的解"<< endl; return 0; } if (GetY(a)*GetY(c) < 0) { return Calculate(a,c); } if (GetY(c)*GetY(b)< 0) { return Calculate(c,b); } } }; int main() { cout << "方程组为:f(x)=x^3+4x^2-10=0" << endl; float a, b; Text text; text.Getab(); a = text.a; b = text.b; text.Calculate(a, b); return 0; } 2.割线法: // 方程求根(割线法).cpp : 定义控制台应用程序的入口点。// #include "stdafx.h" #include"iostream"

心得体会 使用不同的方法,可以不同程度的求得方程的解,通过二分法计算的程序实现更加了解二分法的特点,二分法过程简单,程序容易实现,但该方法收敛比较慢一般用于求根的初始近似值,不同的方法速度不同。面对一个复杂的问题,要学会简化处理步骤,分步骤一点一点的循序处理,只有这样,才能高效的解决一个复杂问题。

数值计算实验报告

(此文档为word格式,下载后您可任意编辑修改!) 2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:宋元台 学号: 成绩:

数值计算方法与算法实验报告 学期: 2014 至 2015 第 1 学期 2014年 12月1日课程名称: 数值计算方法与算法专业:信息与计算科学班级 12级5班 实验编号: 1实验项目Neton插值多项式指导教师:孙峪怀 姓名:宋元台学号:实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页)

1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)* Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. 2.用C语言实现算法的程序代码 #includeMAX_N) { printf("the input n is larger than MAX_N,please redefine the MAX_N.\n"); return 1; } if(n<=0) { printf("please input a number between 1 and %d.\n",MAX_N); return 1; } printf("now input the (x_i,y_i)i=0,...%d\n",n); for(i=0;i<=n;i++) { printf("please input x(%d) y(%d)\n",i,i);

太原理工大学计算机网络实验报告

本科实验报告 课程名称:计算机网络B 实验地点:行勉楼 专业班级:学号 学生姓名: 指导教师: 实验成绩: 2016年 6 月14 日

实验3 VLAN基本配置 一、实验目的 掌握交换机上创建VLAN、分配静态VLAN成员的方法。 二、实验任务 1、配置两个VLAN:VLAN 2和VLAN 3并为其分配静态成员。 2、测试VLAN分配结果。 三、实验设备 Cisco交换机一台,工作站PC四台,直连网线四条,控制台电缆一条。 四、拓扑结构 五、实验结果 PC0到PC1 想通 PC0到PC2 不通,不在相同VLAN PC2到PC3 不通,网段不同。 Switch#sh run Building configuration... Current configuration : 1127 bytes ! version 12.1 no service timestamps log datetime msec no service timestamps debug datetime msec no service password-encryption ! hostname Switch ! ! spanning-tree mode pvst ! interface FastEthernet0/1

! interface FastEthernet0/2 switchport access vlan 2 ! interface FastEthernet0/3 switchport access vlan 2 ! interface FastEthernet0/4 switchport access vlan 2 ! interface FastEthernet0/5 switchport access vlan 3 ! interface FastEthernet0/6 switchport access vlan 3 ! interface FastEthernet0/7 switchport access vlan 3 ! 六、实验心得 输入容易出现错误。重复输入次数多。

c 计算器实验报告

简单计算器 姓名: 周吉祥 实验目的:模仿日常生活中所用的计算器,自行设计一个简单的计算器程序,实现简单的计算功能。 实验内容: (1)体系设计: 程序是一个简单的计算器,能正确输入数据,能实现加、减、乘、除等算术运算,运算结果能正确显示,可以清楚数据等。 (2)设计思路: 1)先在Visual C++ 6.0中建立一个MFC工程文件,名为 calculator. 2)在对话框中添加适当的编辑框、按钮、静态文件、复选框和单 选框 3)设计按钮,并修改其相应的ID与Caption. 4)选择和设置各控件的单击鼠标事件。 5)为编辑框添加double类型的关联变量m_edit1. 6)在calculatorDlg.h中添加math.h头文件,然后添加public成 员。 7)打开calculatorDlg.cpp文件,在构造函数中,进行成员初始 化和完善各控件的响应函数代码。 (3)程序清单:

●添加的public成员: double tempvalue; //存储中间变量 double result; //存储显示结果的值 int sort; //判断后面是何种运算:1.加法2.减法3. 乘法 4.除法 int append; //判断后面是否添加数字 ●成员初始化: CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/) : CDialog(CCalculatorDlg::IDD, pParent) { //{{AFX_DATA_INIT(CCalculatorDlg) m_edit1 = 0.0; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); tempvalue=0; result=0; sort=0; append=0; }

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

《数值计算方法》上机实验报告华北电力大学 实验名称数值il?算方法》上机实验课程名称数值计算方法专业班级:电力实08学生姓名:李超然学号:200801001008 成绩: 指导教师:郝育黔老师实验日期:2010年04月华北电力大学实验报告数值计算方法上机实验报吿一. 各算法的算法原理及计算机程序框图1、牛顿法求解非线性方程 *对于非线性方程,若已知根的一个近似值,将在处展开成一阶 xxfx ()0, fx ()xkk 泰勒公式 "f 0 / 2 八八,fxfxfxxxxx 0 0 0 0 0 kkkk2! 忽略高次项,有 ,fxfxfxxx 0 ()()(),,, kkk 右端是直线方程,用这个直线方程来近似非线性方程。将非线性方程的 **根代入,即fx ()0, X ,* fxfxxx 0 0 0 0, ,, kkk fx 0 fx 0 0,

解出 fX 0 *k XX,, k' fx 0 k 水将右端取为,则是比更接近于的近似值,即xxxxk, Ik, Ik fx ()k 八XX, Ikk* fx()k 这就是牛顿迭代公式。 ,2,计算机程序框图:,见, ,3,输入变量、输出变量说明: X输入变量:迭代初值,迭代精度,迭代最大次数,\0 输出变量:当前迭代次数,当前迭代值xkl ,4,具体算例及求解结果: 2/16 华北电力大学实验报吿 开始 读入 l>k /fx()0?,0 fx 0 Oxx,,01* fx ()0 XX,,,?10 kk, ,1,kN, ?xx, 10 输出迭代输出X输出奇异标志1失败标志

,3,输入变量、输出变量说明: 结束 例:导出计算的牛顿迭代公式,并il ?算。(课本P39例2-16) 115cc (0), 求解结果: 10. 750000 10.723837 10. 723805 10. 723805 2、列主元素消去法求解线性方程组,1,算法原理: 高斯消去法是利用现行方程组初等变换中的一种变换,即用一个不为零的数乘 -个 方程后加只另一个方程,使方程组变成同解的上三角方程组,然后再自下而上 对上三角 3/16 华北电力大学实验报告方程组求解。 列选主元是当高斯消元到第步时,从列的以下(包括)的各元素中选出绝 aakkkkkk 对值最大的,然后通过行交换将其交换到的位置上。交换系数矩阵中的 两行(包括常ekk 数项),只相当于两个方程的位置交换了,因此,列选主元不影响求解的结 ,2,计算机程序框图:,见下页, 输入变量:系数矩阵元素,常向量元素baiji 输出变量:解向量元素bbb,,12n

太原理工大学web实验报告资料

本科实验报告 课程名称:Web开发实用技术基础 实验项目:HTML语言 网页程序设计Javascript Request与Response对象的应用 Application与Session对象的应用 实验地点:实验室211 专业班级:学号: 学生姓名: 指导教师: 2015年11月5日

学院名称学号实验成绩 学生姓名专业班级实验日期 课程名称Web开发实用技术基础实验题目HTML语言 一.实验目的和要求 1.掌握常用的HTML语言标记; 2.利用文本编辑器建立HTML文档,制作简单网页。 3.独立完成实验。 4.书写实验报告书。 二.实验内容 1.在文本编辑器“记事本”中输入如下的HTML代码程序,以文件名sy1.html保存,并在浏览器中运行。(请仔细阅读下列程序语句,理解每条语句的作用) 源程序清单如下: Example

welcome to you


A simple HTML document

Welcome to the world of HTML This is a simple HTML document.It is to give you an outline of how to write HTML file and how the markup tags work in the HTML file Following is three chapters
Following is items of the chapter two

太原理工大学多媒体实验报告

本科实验报告 课程名称:多媒体技术与应用 实验项目:《多媒体技术与应用》课程实验实验地点:思贤楼1108 专业班级:学号:201200 学生姓名: 指导教师:廖丽娟 2015年12月6日

太原理工大学学生实验报告

4)Rm格式 Rm是RealMedia文件的简称。 Real Networks公司所制定的音频视频压缩规范称为RealMedia,是目前在Internet上相当流行的跨平台的客户/服务器结构多媒体应用标准,它采用音频/视频流和同步回放技术来实现在Intranet上全带宽地提供最优质的多媒体,同时也能够在Internet上以28.8Kbps的传输速率提供立体声和连续视频。 4.硬件准备 目前,多媒体计算机中的音频处理工作主要借助声卡,从对声音信息的采集、编辑加工,直到声音媒体文件的回放这一整个过程都离不开声卡。声卡在计算机系统中的主要作用是声音文件的处理、音调的控制、语音处理和提供MIDI接口功能等。 进行录制音频信号所需的硬件除了声卡,还有麦克风、音箱以及外界的音源信号设备(如CD唱机、录音机等),把麦克风、音箱、外界音源信号设备与声卡正确连接完成硬件准备工作。 【实验步骤】 1.准备一段语音文件,本次实验使用机器猫的一段无音乐文件,文件名为机器猫.wav使用声音编辑软件(如Cool Edit)导入该语音素材: 2.使用“另存为”命令分别以A/mu-Law Wave、Microsoft ADPCM、PM3格式进行保存。将各种格式的语音文件的声音参数(如采样频率、量化精度、压缩算法、压缩前后的数据量等)以表格的形式记录: 采样频率量化精度压缩前压缩后压缩率A/mu-Law 44.1K/hz 8位 1.56 MB 218K 13% Wave Microsoft 44.1K/hz 4位 1.56 MB 402K 25% ADPCM PM344.1K/hz 1.56 MB 799K 50% 3.使用声音编辑软件(如Cool Edit)对语音进行降低噪声处理的方法:首先,导入要处理的波形文件,在单轨编辑区内,点击波形水平放大按钮将波形水平放大,找出一段适合用来作噪声的采样波形,选中采样波形,单击鼠标右键,在弹出的菜单中

计算方法实验报告格式

计算方法实验报告格式 小组名称: 组长姓名(班号): 小组成员姓名(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一个完整的实验,应包括数据准备、理论基础、实验内容及方法,最终对实验结果进行分析,以达到对理论知识的感性认识,进一步加深对相关算法的理解,数值实验以实验报告形式完成,实验报告格式如下: 一、实验名称 实验者可根据报告形式需要适当写出. 二、实验目的及要求 首先要求做实验者明确,为什么要做某个实验,实验目的是什么,做完该实验应达到什么结果,在实验过程中的注意事项,实验方法对结果的影响也可以以实验目的的形式列出. 三、算法描述(实验原理与基础理论) 数值实验本身就是为了加深对基础理论及方法的理解而设置的,所以要求将实验涉及到的理论基础,算法原理详尽列出. 四、实验内容 实验内容主要包括实验的实施方案、步骤、实验数据准备、实验的算法以及可能用到的仪器设备. 五、程序流程图 画出程序实现过程的流程图,以便更好的对程序执行的过程有清楚的认识,在程序调试过程中更容易发现问题. 六、实验结果 实验结果应包括实验的原始数据、中间结果及实验的最终结果,复杂的结果可以用表格

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 1.理解数值计算稳定性的概念. 2.了解数值计算方法的必要性. 3.体会数值计算的收敛性与收敛速度. 三、实验内容 计算dx x x I n n ? += 1 10 ,1,2,,10n = . 四、算法描述 由 dx x x I n n ? += 1 10 ,知 dx x x I n n ?+=--101110,则

数值分析实验报告模板

数值分析实验报告模板 篇一:数值分析实验报告(一)(完整) 数值分析实验报告 1 2 3 4 5 篇二:数值分析实验报告 实验报告一 题目:非线性方程求解 摘要:非线性方程的解析解通常很难给出,因此线性方程的数值解法就尤为重要。本实验采用两种常见的求解方法二分法和Newton法及改进的Newton法。利用二分法求解给定非线性方程的根,在给定的范围内,假设f(x,y)在[a,b]上连续,f(a)xf(b) 直接影响迭代的次数甚至迭代的收敛与发散。即若x0 偏离所求根较远,Newton法可能发散的结论。并且本实验中还利用利用改进的Newton法求解同样的方程,且将结果与Newton法的结果比较分析。 前言:(目的和意义) 掌握二分法与Newton法的基本原理和应用。掌握二分法的原理,验证二分法,在选对有根区间的前提下,必是收

敛,但精度不够。熟悉Matlab语言编程,学习编程要点。体会Newton使用时的优点,和局部收敛性,而在初值选取不当时,会发散。 数学原理: 对于一个非线性方程的数值解法很多。在此介绍两种最常见的方法:二分法和Newton法。 对于二分法,其数学实质就是说对于给定的待求解的方程f(x),其在[a,b]上连续,f(a)f(b) Newton法通常预先要给出一个猜测初值x0,然后根据其迭代公式xk?1?xk?f(xk) f'(xk) 产生逼近解x*的迭代数列{xk},这就是Newton法的思想。当x0接近x*时收敛很快,但是当x0选择不好时,可能会发散,因此初值的选取很重要。另外,若将该迭代公式改进为 xk?1?xk?rf(xk) 'f(xk) 其中r为要求的方程的根的重数,这就是改进的Newton 法,当求解已知重数的方程的根时,在同种条件下其收敛速度要比Newton法快的多。 程序设计: 本实验采用Matlab的M文件编写。其中待求解的方程写成function的方式,如下 function y=f(x);

2014太原理工大学C++实验报告

本科实验报告 课程名称:C++面向对象程序设计 实验项目:C++语言编程 实验地点:明向校区 专业班级:软件1431 学号:201400XXXX 学生姓名:白建兴 指导教师:崔晓红 2015年5月10日

1.运行例题程序: #include using namespace std; void fn1(int z=5); int x=1,y=2; int main() { cout<<"Begin. . ."<>p[i]; if(p[i]>0) plus++; else if(p[i]!=0) minus++; } cout<<"正数的个数:"<

计算方法实验报告 拟合

南京信息工程大学实验(实习)报告 一、实验目的: 用最小二乘法将给定的十个点拟合成三次多项式。 二、实验步骤: 用matlab编制以函数为基的多项式最小二乘拟合程序,并用于对下列数据作三次多项式最小二乘拟合(取权函数wi=1) x -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 y -2.30 -1 -0.14 -0.25 0.61 1.03 1.75 2.75 4.42 6.94 给定直线方程为:y=1/4*x3+1/2*x2+x+1 三、实验结论: 最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。 一般地。当测量数据的散布图无明显的规律时,习惯上取n次代数多项式。 程序运行结果为: a = 0.9731 1.1023 0.4862 0.2238 即拟合的三次方程为:y=0.9731+1.1023x+0.4862*x2+0.2238*x3

-2.5 -2-1.5-1-0.5 00.51 1.52 2.5 -4-20246 81012 x 轴 y 轴 拟合图 离散点 y=a(1)+a(2)*x+a(3)*x.2+a(4)*x.3 结论: 一般情况下,拟合函数使得所有的残差为零是不可能的。由图形可以看出最小二乘解决了残差的正负相互抵消的问题,使得拟合函数更加密合实验数据。 优点:曲线拟合是使拟合函数和一系列的离散点与观测值的偏差平方和达到最小。 缺点:由于计算方法简单,若要保证数据的精确度,需要大量的数据代入计算。

数值计算实验报告

2012级6班###(学号)计算机数值方法 实验报告成绩册 姓名:安元龙 学号:2012060501 成绩:

数值计算方法与算法实验报告 学期: 2014 至___2015 第 1 学期 2014年 10月26日课程名称:__数值计算方法与算法 __ 专业:信息与计算科学 12级5班实验编号: 1实验项目Neton插值多项式指导教师__孙峪怀姓名:安元龙学号: 2012060501 实验成绩: 一、实验目的及要求 实验目的: 掌握Newton插值多项式的算法,理解Newton插值多项式构造过程中基函数的继承特点,掌握差商表的计算特点。 实验要求: 1. 给出Newton插值算法 2. 用C语言实现算法 二、实验内容 三、实验步骤(该部分不够填写.请填写附页) 1.算法分析: 下面用伪码描述Newton插值多项式的算法: Step1 输入插值节点数n,插值点序列{x(i),f(i)},i=1,2,……,n,要计算的插值点x. Step2 形成差商表 for i=0 to n for j=n to i f(j)=((f(j)-f(j-1)/(x(j)-x(j-1-i)); Step3 置初始值temp=1,newton=f(0) Step4 for i=1 to n temp=(x-x(i-1))*temp/*由temp(k)=(x-x(k-1))*temp(k-1)形成 (x-x(0).....(x-x(i-1)*/ Newton=newton+temp*f(i); Step5 输出f(x)的近似数值newton(x)=newton. #include #define MAX_N 20 typedef struct tagPOINT { double x; double y; }POINT; int main() { int n; int i,j; POINT points[MAX_N+1];double diff[MAX_N+1]; double x,tmp,newton=0;

太原理工大学单片机实验报告

实验一双字节加法 一实验目的 (1)熟悉并掌握MCS-51指令系统和程序设计方法。 (2)掌握双字节加法的程序算法。 二实验设备 计算机 操作系统:Windows 98/2000/XP 应用软件:WAVE 6000或其他。 三实验内容 编写一个双字节加法程序并调试,设9930H存在R1R0中,6083H存在R2R3中,计算R1R0+R3R2,最后结果保存在R5R4中。 四实验原理 两数低位相加后保留进位位,高位数相加时,将低位的进位加上。 五实验程序流程图 开始 30H→R0,A9H→R1 B3H→R2,50H→R3 低位数相加 (R0)+(R2)→A,Cy A→R4 高位数带进位相加 (R1)+(R3)+(Cy) →A,Cy;A→R5 结束

七实验源程序 ORG 0 LJMP MAIN ORG 30H MAIN: MOV 30H,#25H MOV 31H,#13H MOV 32H,#14H MOV 33H,#35H MOV A,30H ADDC A,32H DA A MOV 40H,A MOV A,31H ADD A,33H DA A MOV 41H,A SJMP $ 八实验结果与分析 (40H)中的结果为39;(41H)中的结果为48.与计算结果相同说明实验正确。九实验心得与总结 通过实验增强了我们分析问题和解决问题的能力,以实践证实理论,从实践中加深对理论知识的理解和掌握。

实验二数据排序程序 一实验目的 (1)熟悉并掌握MCS-51指令系统和程序设计方法。 (2)掌握排序程序算法。 (3)掌握用循环程序实现数据排序的方法。 二实验设备 计算机 操作系统:Windows 98/2000/XP 应用软件:WAVE 6000或其他。 三实验内容 编写一个通用排序子程序并调试,其功能为将RAM的40H~4FH单元16个字节无符号二进制整数按从小到大顺序排序,将排序后的数据存放在50H~5FH缓冲区中。 四实验原理 从40H单元的第一个数开始依次和相邻单元的另一个数比较,如果顺序正确,则不作任何操作;如果顺序错误,则将这两个数位置对换。这样,在完成第一遍n-1次比较后,最小的数到了最后,所以第二遍比较只需要比较n-2次,最多作n-1遍比较就可完成排序。在比较中设立一个标志位flag清零,在循环结束时,若flag=1说明排序未完成,进入外循环;若flag=0,说明排序完成,程序结束。 五实验程序流程图

数值分析实验报告总结

数值分析实验报告总结 随着电子计算机的普及与发展,科学计算已成为现代科 学的重要组成部分,因而数值计算方法的内容也愈来愈广泛和丰富。通过本学期的学习,主要掌握了一些数值方法的基本原理、具体算法,并通过编程在计算机上来实现这些算法。 算法算法是指由基本算术运算及运算顺序的规定构成的完 整的解题步骤。算法可以使用框图、算法语言、数学语言、自然语言来进行描述。具有的特征:正确性、有穷性、适用范围广、运算工作量少、使用资源少、逻辑结构简单、便于实现、计算结果可靠。 误差 计算机的计算结果通常是近似的,因此算法必有误差, 并且应能估计误差。误差是指近似值与真正值之差。绝对误差是指近似值与真正值之差或差的绝对值;相对误差:是指近似值与真正值之比或比的绝对值。误差来源见表 第三章泛函分析泛函分析概要 泛函分析是研究“函数的函数”、函数空间和它们之间 变换的一门较新的数学分支,隶属分析数学。它以各种学科

如果 a 是相容范数,且任何满足 为具体背景,在集合的基础上,把客观世界中的研究对象抽 范数 范数,是具有“长度”概念的函数。在线性代数、泛函 分析及相关的数学领域,泛函是一个函数,其为矢量空间内 的所有矢量赋予非零的正长度或大小。这里以 Cn 空间为例, Rn 空间类似。最常用的范数就是 P-范数。那么 当P 取1, 2 ,s 的时候分别是以下几种最简单的情形: 其中2-范数就是通常意义下的距离。 对于这些范数有以下不等式: 1 < n1/2 另外,若p 和q 是赫德尔共轭指标,即 1/p+1/q=1 么有赫德尔不等式: II = ||xH*y| 当p=q=2时就是柯西-许瓦兹不等式 般来讲矩阵范数除了正定性,齐次性和三角不等式之 矩阵范数通常也称为相容范数。 象为元素和空间。女口:距离空间,赋范线性空间, 内积空间。 1-范数: 1= x1 + x2 +?+ xn 2-范数: x 2=1/2 8 -范数: 8 =max oo ,那 外,还规定其必须满足相容性: 所以

数值分析实验报告1

实验一 误差分析 实验1.1(病态问题) 实验目的:算法有“优”与“劣”之分,问题也有“好”与“坏”之别。对数值方法的研究而言,所谓坏问题就是问题本身对扰动敏感者,反之属于好问题。通过本实验可获得一个初步体会。 数值分析的大部分研究课题中,如线性代数方程组、矩阵特征值问题、非线性方程及方程组等都存在病态的问题。病态问题要通过研究和构造特殊的算法来解决,当然一般要付出一些代价(如耗用更多的机器时间、占用更多的存储空间等)。 问题提出:考虑一个高次的代数多项式 )1.1() ()20()2)(1()(20 1∏=-=---=k k x x x x x p 显然该多项式的全部根为1,2,…,20共计20个,且每个根都是单重的。现考虑该多项式的一个扰动 )2.1(0 )(19=+x x p ε 其中ε是一个非常小的数。这相当于是对(1.1)中19x 的系数作一个小的扰动。我们希望比较(1.1)和(1.2)根的差别,从而分析方程(1.1)的解对扰动的敏感性。 实验内容:为了实现方便,我们先介绍两个Matlab 函数:“roots ”和“poly ”。 roots(a)u = 其中若变量a 存储n+1维的向量,则该函数的输出u 为一个n 维的向量。设a 的元素依次为121,,,+n a a a ,则输出u 的各分量是多项式方程 01121=+++++-n n n n a x a x a x a 的全部根;而函数 poly(v)b = 的输出b 是一个n+1维变量,它是以n 维变量v 的各分量为根的多项式的系数。可见“roots ”和“poly ”是两个互逆的运算函数。 ;000000001.0=ess );21,1(zeros ve = ;)2(ess ve =

计算方法上机实验报告——拉格朗日插值问题

计算方法上机实验报告——拉格朗日插值问题 一、方法原理 n次拉格朗日插值多项式为:Ln(x)=y0l0(x)+y1l1(x)+y2l2(x)+…+ynln(x) n=1时,称为线性插值,L1(x)=y0(x-x1)/(x0-x1)+y1(x-x0)/(x1-x0)=y0+(y1-x0)(x-x0)/(x1-x0) n=2时,称为二次插值或抛物线插值,精度相对高些 L2(x)=y0(x-x1)(x-x2)/(x0-x1)/(x0-x2)+y1(x-x0)(x-x2)/(x1-x0)/(x1-x 2)+y2(x-x0)(x-x1)/(x2-x0)/(x2-x1) 二、主要思路 使用线性方程组求系数构造插值公式相对复杂,可改用构造方法来插值。 对节点xi(i=0,1,…,n)中任一点xk(0<=k<=n)作一n次多项式lk(xk),使它在该点上取值为1,而在其余点xi(i=0,1,…,k-1,k+1,…,n)上为0,则插值多项式为Ln(x)=y0l0(x)+y1l1(x)+y2l2(x)+…+ynln(x) 上式表明:n个点xi(i=0,1,…,k-1,k+1,…,n)都是lk(x)的零点。可求得lk 三.计算方法及过程:1.输入节点的个数n 2.输入各个节点的横纵坐标 3.输入插值点 4.调用函数,返回z 函数语句与形参说明 程序源代码如下: 形参与函数类型 参数意义 intn 节点的个数 doublex[n](double*x) 存放n个节点的值 doubley[n](double*y) 存放n个节点相对应的函数值 doublep 指定插值点的值 doublefun() 函数返回一个双精度实型函数值,即插值点p处的近似函数值 #include #include usingnamespacestd; #defineN100 doublefun(double*x,double*y,intn,doublep); voidmain() {inti,n; cout<<"输入节点的个数n:"; cin>>n;

相关主题
item content