计算数值实验报告材料(太原理工大学)
- 格式:doc
- 大小:303.00 KB
- 文档页数:46
实验报告二课程名称:数据结构实验名称:数据结构实验地点:计算机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个位置的结点。
课程名称:计算机数值方法实验项目:方程求根,线性方程组的直接解法与迭代解法,代数插值,最小二乘法拟合多项式实验地点:逸夫楼402专业班级:学号:学生姓名:指导教师:***2012年4月26日太原理工大学学生实验报告}3.追赶法五、实验数据记录和处理1.二分法2..牛顿法六、实验结果与分析通过这个两个程序可看出,二分法的计算量更大一些。
七、讨论、心得通过这个实验,我了解了线性方程的一些求根方法,对于方程近似值的求解有了更多的理解。
太原理工大学学生实验报告for(i=1;i<=n;++i){y[i] = b[i];for(j=1;j<i;++j){y[i]-=l[i][j]*y[j];}}for(i=n;i>0;--i){x[i] = y[i];for(j=i+1;j<=n;++j){x[i]-=u[i][j]*x[j];}x[i]/= u[i][i];}for(i=1;i<=n;++i){printf("%0.2lf\n",x[i]);}return 0;}五.实验数据记录和处理1.高斯2.LU分解六、实验结果与分析本次实验数据较多,在输入上要多费点功夫,一不小心就全部都错了。
在今后编程过程中,一定要小心谨慎。
七、讨论、心得通过本次实验,我深刻理解了直接法在计算机上解线性方程组的有效性,对于Gauss消元法、LU分解法也有了深刻的理解。
实验地点逸夫楼402指导教师于亚男太原理工大学学生实验报告学院名称软件学院专业班级学号学生姓名实验日期4月26日成绩课程名称计算机数值方法实验题目线性方程组的迭代解法一、实验目的和要求掌握雅可比迭代法和高斯-赛德尔迭代法对方程组进行求解二、实验内容和原理六、实验结果与分析在本次实验中,编程不太容易,对c/c++的学习应该更进一步。
七、讨论、心得通过这次实验,我明白了雅克比迭代的一般性解法,对于编程的应用也有了更深刻的理解。
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)。
实验名称:线性表一.目的与要求本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。
要求仔细阅读并理解下列例题,上机通过,并观察其结果,然后独立完成后面的实习题。
二.例题[问题描述]用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串。
[输入]初始字符串,插入位置,插入字符,删除字符。
[输出]已建立链表(字符串),插入字符后链表,删除字符后链表,逆转后链表。
[存储结构]采用链式存储结构[算法的基本思想]建立链表:当读入字符不是结束符时,给结点分配存储空间,写数据域,将新结点插到表尾;插入字符:根据读入的字符在链表中找插入位置,将新结点插入到该位置之前;删除字符:根据读入的删除字符在链表中找到被删结点后,将其从链表中删除;链表逆转:从链表的第一个结点开始对所有结点处理,将每个结点的前驱变为它的后继;打印链表:从链表的第一个结点开始,依次打印各个结点的数据域。
[参考源程序]#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技术与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实验,提高了动手能力,加深了对所学知识的理解。
本科实验报告
课程名称:计算数值方法
实验地点:综合楼五层506室
专业班级:计科1002 学号:2010001414 学生:xxx
指导教师:王峥
2012 年 6 月20
理工大学学生实验报告
2,)
迭代法:
分析讨论:
使用不同的方法,可以不同程度的求得方程的解,不同的方法速度不同,求得的结果也稍有区别,当然和要求精度也有关系。
刚开始的时候用数组对二分法进行求解,发现循环到第二次就无法实现值的传递,于是换了另外一种方法代替了数组。
理工大学学生实验报告
A[i][i]=A[i][i]-A[i][i-1]*A[i-1][i];
b[0]=b[0]/A[0][0];
for(i=1;i<3;i++)
b[i]=(b[i]-A[i][i-1]*b[i-1])/A[i][i];
for(i=1;i>=0;i--)
b[i]=b[i]-A[i][i+1]*b[i+1];
for(i=0;i<3;i++)
printf("x[%d]=%.6lf\n",i,d[i]);
}
六、结果讨论和分析
Gauss消元法:列主元素消元法:
LU分解法:追赶法:
分析讨论
从消元过程可以看出,对于n阶线性方程组,只要各步主元素不为零,经过n-1步消元,就可以得到一个等价的系数矩阵为上三角形阵的方程组,然后再利用回代过程可求得原方程组的解. 由于列主元素法相似且优于完全主元素法所以省略了后者。
消元过程相当于分解A为单位下三角阵L与上三角阵U的乘积,解方程组Ly=b回代过程就是解方程组Ux=y。
其中的L为n阶单位下三角阵、U为上三角阵. 在A 的LU 分解中, L取下三角
理工大学学生实验报告
x2[0]=x20;
x3[0]=x30;
x1[i+1]=0.1*x2[i]+0.2*x3[i]+0.72;
x2[i+1]=0.1*x1[i]+0.2*x3[i]+0.83;
x3[i+1]=0.2*x1[i]+0.2*x2[i]+0.84;
printf("%5d %5lf %5lf %5lf\n",i,x1[i],x2[i],x3[i]);
} }
六、实验结果与分析:
雅克比迭代法:
理工大学学生实验报告
理工大学学生实验报告
理工大学学生实验报告
}
六、结果讨论和分析
分析讨论
数据拟合的具体作法是:对给定的数据(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)。
说明:上述程序中数据已被事先存入,可在源代码中任意修改想要的数据。