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

合集下载

太原理工数据实验报告二

太原理工数据实验报告二

实验报告二课程名称:数据结构实验名称:数据结构实验地点:计算机110机房专业班级:计科Z1501 学号:2015001909 学生姓名:刘元瑞指导教师:孟亮2016年12 月23 日2.编写递归算法,计算二叉树中叶子结点的数目。

#include <stdio.h>#include<malloc.h>struct node{char info;struct node *llink, *rlink;};typedef struct node NODE;NODE *create(){ //构造二叉树char x;NODE *p;scanf("%c", &x);printf("%c", x); //打印出已输入的二叉树if(x!='.'){p=(NODE *)malloc(sizeof(NODE));p->info=x;p->llink=create();p->rlink=create();}else p=NULL;return p;}int run(NODE *t){static int count=0;if(t){run(t->llink); //递归遍历左子树,直到叶子处run(t->rlink); //递归遍历右子树,直到叶子处if(t->llink ==NULL && t->rlink == NULL) {count++;}}return count;}main(){ NODE *T;int left_number;printf("请输入一棵树:\n" );T=create();printf("\n");if(!T) printf("This is a empty binary tree.");else{left_number=run(T);printf("\n这棵树共有%d 个子叶. \n", left_number);}printf("\n");}3.编写递归算法,在二叉树中求位于先序序列中第K个位置的结点。

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

太原理工大学计算机数值方法实验报告
2.比较计算结果,对不同方法进行比较分析;
3.实验完成,提交实验结果并写出报告,分析计算结果是否符合问题的要求,找出计算成功的原因或计算失败的教训。
2、实验内容和原理:
(1)Gauss消元法:基本思想为:对于n阶线性方程组,只要各步主元素不为0,经过n-1步消元,就可以得到一个等价的的系数矩阵为上三角形矩阵的方程组,然后再利用回代过程即可求得原方程的解。时间复杂度约为O(n3)。
return 0;
}
(2)二分法:
#include<stdio.h>
#include<math.h>
#define esp 1e-3 //精度
double f(double x) //原函数
{
return (x*x*x+4*x*x-10);
}
double root(double (*fun)(double),double left,double right,double deviation)//用二分法求方程根
return x0; //满足精度要求时返回Xn+1的值
}
int main()
{
double x0=1.5;//初始近似值
double e=pow(10,-3); //精度
printf("初始近似值为:%lf\n",x0);
printf("近似根为:%lf\n",newton(x0,e));
return 0;
{ //其中形参*fun为指向原函数的指针
double x,y;
while(fabs(right-left)>deviation)//当不满足精度要求继续执行循环体
{

数值计算方法实习报告

数值计算方法实习报告

实习报告实习单位:XX大学计算中心实习时间:2023年1月1日至2023年1月31日实习内容:数值计算方法一、实习背景及目的随着科技的不断发展,数值计算方法在工程、物理、化学、生物学等领域发挥着越来越重要的作用。

为了更好地将所学知识应用于实际问题,提高自己的实践能力,我选择了数值计算方法作为实习内容。

本次实习的主要目的是:1. 加深对数值计算方法的理解,掌握基本的数值计算方法及其应用。

2. 提高编程能力,熟练运用C语言进行数值计算程序的设计与实现。

3. 学会分析并解决实际问题,将所学知识运用到实际项目中。

二、实习过程及收获1. 实习前期,我首先学习了数值计算方法的基本理论,包括误差分析、插值法、数值积分、常微分方程数值解等。

通过理论的学习,我对数值计算方法有了更深入的了解。

2. 在实习过程中,我使用C语言编写了一系列数值计算程序,包括求解方程的迭代法、高斯消去法、牛顿法等。

这些程序可以帮助我更好地理解数值计算方法的理论,并提高我的编程能力。

3. 针对实际问题,我运用所学知识进行了解决。

例如,我使用数值积分方法计算了函数在一个区间上的定积分,使用常微分方程数值解方法求解了一个实际物理问题。

这些实践经历使我更加熟悉了数值计算方法在实际问题中的应用。

4. 实习期间,我还参加了计算中心组织的讲座和讨论,与其他实习生交流心得,共同解决问题。

这使我受益匪浅,不仅提高了自己的实际操作能力,还拓宽了知识面。

三、实习总结通过本次实习,我对数值计算方法有了更全面的认识,掌握了基本的数值计算方法及其编程实现。

同时,我的编程能力和解决实际问题的能力也得到了很大提高。

此外,我还学会了如何将所学知识应用于实际项目,为将来的工作打下了坚实基础。

在今后的工作中,我将继续努力学习数值计算方法及相关知识,不断提高自己的实践能力。

同时,我也将把所学知识运用到实际工作中,为公司的发展做出贡献。

最后,感谢计算中心给我提供了一次宝贵的实习机会,使我受益匪浅。

太原理工大学数值计算试验报告

太原理工大学数值计算试验报告

TAIYUAN UNIVEaSIIY OF TECHNOLOGY本科实验报告计算机数值方法课程名称:实验项目:方程求根,线性方程组的直接求解, 线性方程组的迭代求解,代数插值和最小二乘法拟合实验地点:软件楼208 _______________专业班级:学号:学生姓名:___________________________指导教师:李志崔冬华2015年6月5 日实验内容和要求(必填)目的:《数值计算方法》是一门实践性和实用性都很强的课程,学习的目的在于应用已有的理论基础和技术方法,实现对实际计算问题的计算机求解。

本实验配合《计算数值方法》课堂教学,通过上机实践实验环节,巩固课堂和书本上所学的知识、加强实践能力、提高解决实际计算问题的水平、启发创新思想。

其基本目的是:(1)培养理论联系实际的思路,训练综合运用已经学过的理论和实际知识去分析和解决实际问题的能力。

(2)帮助学生全面消化已学的相关课程内容,深刻理解计算数值方法课程的内涵,培养使用电子计算机进行科学计算和解决问题的能力。

(3)进行基本技能训练和巩固。

使学生得到选择算法、编写程序、分析数值结果、写数值试验报告、课堂讨论等环节的综合训练。

要求:(1)应用结构化程序设计编出通用程序,源程序要有详细的注释和说明;(2)比较计算结果,分析数值解误差的原因;(3)实验完成,要求提交实验结果并写出报告,分析计算结果是否符合问题的要求,找出计算成功的原因或计算失败的教训。

实验原理(必填)选择上述方法中的两种方法求方程:f(x)=x3+4x2-10=0在[1,2]内的一个实根,且要求满足精度lx*-x n l<0.5x10-5主要仪器设备笔记本计算机实验记录(写出实验内容中的程序代码和运行结果)(可分栏或加页)迭代法:#include "stdafx.h"#include"stdio.h"#include〃math.h〃#include〃iostream〃using namespace std;float main()(float a;cin>>a;float t, x;x=a;do(x=sqrt((10-x*x*x)/4);t=a;a=x;}while(fabs(a-t)>0.5*1e-5);printf(〃x=%f〃,a); system(〃pause〃);)割线法:#include "stdafx.h"#include〃stdio.h〃#include〃math.h〃#include〃iostream〃using namespace std;float main()(float c,a=1.0,b=2.0;//cin>>a>>b;while(1)(c=b-(b*b*b+4*b*b-10)*(b-a)/(b*b*b+4*b*b-(a*a*a+4*a*a));if (fabs(b-c)<0.5*0.000001) break;b=c;)cout<<c;)实验结果和分析实验结果:心得体会(遇到的问题和解决方法)使用不同的方法,可以不同程度的求得方程的解,不同的方法速度不同。

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

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

本科实验报告课程名称:计算数值方法实验地点:综合楼五层506室专业班级:计科1002 学号:2010001414 学生姓名:xxx指导教师:王峥2012 年 6 月20太原理工大学学生实验报告2,)内有零点,反之在(a,(a+b)/2printf("%5d %5f %5f %5f %5f\n",i,a,b,x,fx);i++;if(fx==0) break;if(fx>0) b=x;else if(fx<0) a=x;if((b-a)<l)break; //进行计算并返值}while(1);}六、结果讨论和分析二分法:迭代法:太原理工大学学生实验报告六、结果讨论和分析Gauss消元法:列主元素消元法:LU分解法:追赶法:太原理工大学学生实验报告分析讨论:其实,这两个迭代法是之前迭代法的升级,多了几个迭代式子而已,而且两者相差不大比较简单,所以选择了雅克比迭代法进行求解,但是没有与另一种方法高斯赛德尔迭代法进行实质性的比较。

流程图:实验地点综合楼五层506室指导教师王峥太原理工大学学生实验报告六、结果讨论和分析分析讨论由于该程序将A矩阵和x0的值编写在程序中,所以要想修改成其他矩阵时比较麻烦,所以也有一定的局限性。

幂法是一种求任意矩阵A的按模最大特征值及其对应特征向量的迭代算法。

该方法的最大优点是计算简单,容易在计算机上实现,对稀疏矩阵较为适合,但有时收敛速度很慢。

流程图:实验地点综合楼五层506室指导教师王峥太原理工大学学生实验报告for(int i=1;i<=n;i++){M[i][j]=(M[i][j-1]-M[i-1][j-1])/(M[i][0]-M[i-j+1][0]);}}for(int i=1;i<=n;i++){cout<<"其"<<i<<"阶均差为:"<<M[i][i+1]<<endl;}cout<<"请输入x的值:x=";cin>>xx;for(int i=0;i<n;i++){X*=xx-M[i][0];N+=M[i+1][i+2]*X;P=M[0][1]+N;}cout<<"其函数值:y="<<P<<endl; // }}六、结果讨论和分析太原理工大学学生实验报告分析讨论数据拟合的具体作法是:对给定的数据(x i,y i)(i=0,1,…,m),在取定的函数类中,求p(x)属于此函数类,使误差ri =p(xi)- yi(i=0,1,…,m)的平方和最小,即∑r i2=∑(∑p(x i)-y i)2=min从几何意义上讲,就是寻求与给定点(x i ,y i)(i=0,1,…,m)的距离平方和为最小的曲线y=p(x)。

数值计算方法实验报告

数值计算方法实验报告
2如果f[(a+b)/2]<0,则区间((a+b)/2,b)内存在零点,(a+b)/2≥a;
3如果f[(a+b)/2]>0,则区间(a,(a+b)/2)内存在零点,(a+b)/2≤b;
返回①重新循环,不断接近零点。通过每次把f(x)的零点所在区间收缩一半的方法,使区间内的两个端点逐步逼近函数零点,最终求得零点近似值。
{
int z[10];
int maxi,maxj;
initdata();
for(int i=1;i<=N;i++)
z[i]=i;
for(int k=1;k<N;k++)
{
maxi=k;maxj=k;float maxv=abs(a[k][k]);
for(i=k;i<=N;i++)
for(int j=k;j<=N;j++)
34;请输入矩阵阶数:"<<endl;
cin>>N;
cout<<"请输入矩阵各项:"<<endl;
for(int i=1;i<=N;i++)
for(int j=1;j<=N+1;j++)
{
cin>>a[i][j];
}
cout<<endl;
}
void main()
{
for(i=1;i<=N;i++)
{
float t=a[i][k];a[i][k]=a[i][maxj];a[i][maxj]=t;

太原理工数据结构实验报告完整版

太原理工数据结构实验报告完整版

实验名称:线性表一.目的与要求本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。

要求仔细阅读并理解下列例题,上机通过,并观察其结果,然后独立完成后面的实习题。

二.例题[问题描述]用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串。

[输入]初始字符串,插入位置,插入字符,删除字符。

[输出]已建立链表(字符串),插入字符后链表,删除字符后链表,逆转后链表。

[存储结构]采用链式存储结构[算法的基本思想]建立链表:当读入字符不是结束符时,给结点分配存储空间,写数据域,将新结点插到表尾;插入字符:根据读入的字符在链表中找插入位置,将新结点插入到该位置之前;删除字符:根据读入的删除字符在链表中找到被删结点后,将其从链表中删除;链表逆转:从链表的第一个结点开始对所有结点处理,将每个结点的前驱变为它的后继;打印链表:从链表的第一个结点开始,依次打印各个结点的数据域。

[参考源程序]#define NULL 0typedef struct node{char a;struct node *link;}node,*nodelink;void readlink(nodelink head){nodelink p,q;char c;p=head;printf("Input a linktable(a string):");scanf("%c",&c);if (c=='\n') printf("This string is empty。

");while(c!='\n'){q=(nodelink)malloc(sizeof(node));q->a=c;p->link=q;p=q;scanf("%c",&c);}p->link=NULL;}void writelink(nodelink head){nodelink q;if (head->link==NULL) printf(" This link is empty。

太原理工大学EDA实验报告-2位十进制加法器

太原理工大学EDA实验报告-2位十进制加法器

实验报告课程名称:EDA技术与FPGA应用设计课设题目:2位十进制计数器实验地点:信息学院楼CPLD实验室专业班级:学号:学生姓名:指导教师:张文爱2016年4月1日实验二2位十进制计数器一、实验目的1.熟悉ispDesignEXPERT System、QuartusII的原理图设计流程的全过程。

2.学习简单时序电路的设计方法。

3.学习EDA设计的仿真和硬件测试方法。

二、实验原理2位十进制计数器参考原理图如图1所示,也可以采用其他元件实现。

图1.用74LS390设计一个有时钟使能的2位十进制计数器三、实验任务(1)设计2位十进制计数器电路。

(2)在EDA环境中输入原理图。

(3)对计数器进行仿真分析、引脚锁定、硬件测试。

四、实验步骤1、设计电路原理图设计含有时钟使能及进位扩展输出的十进制计数器。

可以选用双十进制计数器74LS390或者十进制计数器74LS160和其他一些辅助元件来完成。

2、计数器电路的实现。

绘制过程中应特别注意图形设计规则中信号标号和总线的表达方式。

若将一根细线变成一粗线显示的总线,可以先单机使其变红,再选Option选项中的Line Style;若在某线上加信号标号,也应该点击该线某处使其变成红色,然后键入标号名称,标有相同标号的线段可视为连接线段,不必直接连接。

总线可以以标号方式进行连接。

3、编程测试。

五、实验结果图2.用74LS390设计一个有时钟使能的2位十进制计数器六、实验感想通过本次实验学会了简单时序电路的设计方法。

学会了使用QuartusII软件调用元器件库进行原理图设计的方法和设计流程。

这次实验让我学会了用FPGA设计电路并且学会了FPGA的设计过程和实现方法。

提高了动手能力,加深了对所学知识的理解。

这次EDA实验,提高了动手能力,加深了对所学知识的理解。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科实验报告
课程名称:计算数值方法
实验地点:综合楼五层506室
专业班级:计科1002 学号: 2010001414 学生姓名: xxx
指导教师:王峥
2012 年 6 月 20
太原理工大学学生实验报告
2,)
内有零点,反之在(a,(a+b)/2
printf("%5d %5f %5f %5f %5f\n",i,a,b,x,fx);
i++;
if(fx==0) break;
if(fx>0) b=x;
else if(fx<0) a=x;
if((b-a)<l)
break; //进行计算并返值
}while(1);
}
六、结果讨论和分析
二分法:
迭代法:
太原理工大学学生实验报告
}
六、结果讨论和分析
Gauss消元法:列主元素消元法:
LU分解法:追赶法:
太原理工大学学生实验报告
分析讨论:
其实,这两个迭代法是之前迭代法的升级,多了几个迭代式子而已,而且两者相差不大比较简单,所以选择了雅克比迭代法进行求解,但是没有与另一种方法高斯赛德尔迭代法进行实质性的比较。

流程图:
实验地点综合楼五层506室指导教师王峥
太原理工大学学生实验报告
六、结果讨论和分析
分析讨论
由于该程序将A矩阵和x0的值编写在程序中,所以要想修改成其他矩阵时比较麻烦,所以也有一定的局限性。

幂法是一种求任意矩阵A的按模最大特征值及其对应特征向量的迭代算法。

该方法的最大优点是计算简单,容易在计算机上实现,对稀疏矩阵较为适合,但有时收敛速度很慢。

流程图:
实验地点综合楼五层506室指导教师王峥
太原理工大学学生实验报告
for(int i=1;i<=n;i++)
{
M[i][j]=(M[i][j-1]-M[i-1][j-1])/(M[i][0]-M[i-j+1][0]);
}
}
for(int i=1;i<=n;i++)
{
cout<<"其"<<i<<"阶均差为:"<<M[i][i+1]<<endl;
}
cout<<"请输入x的值:x=";
cin>>xx;
for(int i=0;i<n;i++)
{
X*=xx-M[i][0];
N+=M[i+1][i+2]*X;
P=M[0][1]+N;
}
cout<<"其函数值:y="<<P<<endl; // }
}
六、结果讨论和分析
太原理工大学学生实验报告
分析讨论
数据拟合的具体作法是:对给定的数据(x i,y i)(i=0,1,…,m),在取定的函数类中,
求p(x)属于此函数类,使误差r
i =p(x
i
)- y
i
(i=0,1,…,m)的平方和最小,即∑r i2=∑
(∑p(x i)-y i)2=min从几何意义上讲,就是寻求与给定点(x i ,y i)(i=0,1,…,m)的距离平方和为最小的曲线y=p(x)。

说明:上述程序中数据已被事先存入,可在源代码中任意修改想要的数据。

流程图:
实验地点综合楼五层506室指导教师王峥
(注:可编辑下载,若有不当之处,请指正,谢谢!)。

相关文档
最新文档