一元多项式的计算课程设计报告

一元多项式的计算课程设计报告
一元多项式的计算课程设计报告

合肥学院

计算机科学与技术系

课程设计报告

2008~2009学年第二学期

课程程序设计语言Ⅱ课程设计

课程设计名称多项式的计算

学生姓名王建敏

学号0804013029

专业班级计算机科学与技术(3)班

指导教师张贯虹汪彩梅

2009年6月

一、课程设计题目:多项式(单项链表的应用)

二、分析与设计

1.程序的基本功能

(1)建立多项式

(2)输出多项式

(3)删除多项式以释放空间

(4)删除多项式中的某一项

(5)将多项式合并同类项

(6)拷贝多项式

(7)将多项式按指数升序排列

(8)判断两多项式是否相等

(9)两个多项式相加,建立并输出和多项式

(10)两个多项式相减,建立并输出差多项式

(11)两个多项式相乘,建立并输出积多项式

(12)两个多项式相除,建立并输出商多项式

2.算法设计

本程序主要应用了链表,结构体和类模板。用结构体来定义多项式的结点(即每一项),它包含三个域,分别存放该项的系数、指数以及指向下一项结点的指针;用链表来存储多项式,为了节省空间,只存储多项式中系数非0 的项,用多项式链表类来实现设定的程序的基本功能。

涉及的主要算法有:

(1)使用尾插法创建多项式,即从一个空表开始,重复读入数据,生成新结点,将读入数据存放在新结点的数据域中,然后将新结点插入到当前链表的表尾上,直到读入结束标志(某一项的系数为零)为止。

(2)输出一个非空的多项式链表,不要输出最后一项,即输入系数为零的结束项,用if……else语句判断。

(3)删除整个多项式是一项一项的删,使用链表删除其结点的方法,使用free()函数释放存储空间。在删除非空的多项式的某一项时,定义k来找到要删除的那一项的位置,再使用delete 将其删除。

(4)在对多项式合并同类项时,主要有两点,一是看两项指数是否相等,若相等则合并成一项,二是看两项系数和是否为零,若为零则去掉这两项。在对多项式排序时,先合并同类项,再按指数值从小到大排序。

(5)在拷贝多项式时使用重载函数,将系数和指数都拷贝给新的多项式。

(6)在判断两多项式是否相等时,先分别对两多项式进行排序,再从头项开始,一项一项的比较其系数和指数,一旦有一个不相等就结束,即这两多项式不相等,否则相等。

(7)计算多项式加减,其算法思想是相同的。以多项式加法为例,先对两多项式排序,再将两多项式的每一项逐项相加,在相加之前,先比较两项的指数是否相等,若相等则将系数相加,再判断系数是否为零,若为零则删除,否则存储在和多项式中。若两项指数不相等,当多项式pa 指数大于多项式pb指数时,则将pa结点副本插入到和多项式PolyC尾部;当pa指数小于pb指数时,则将pb结点副本插入到和多项式PolyC尾部,最后插入剩余结点。

(8)计算多项式乘法时,先判断两多项式是否为空,若为空,则返回乘多项式,否则要先对两多项式进行合并排序,先将两多项式的第一项相乘,即系数相乘,指数相加,其值作为乘多项式的第一结点,其后使用双重循环将一多项式的每一项与另一多项式的每一项分别相乘,结果存到乘多项式中。

(9)计算多项式除法时,同样要判断两多项式是否为空,只要有一为空,则直接返回空,否则将一多项式整个除以另一多项式,系数相除,指数相减,结果存到商多项式中。

3.系统总框图

4.定义的主要函数及说明

CreatePoly()-------创建多项式链表

OutputPoly()-------输出多项式

DestroyPoly()------完全删除多项式

DelPoly()-----------删除多项式中的某一项

EqualPoly()---------判断两多项式是否相等

MergePoly()--------将多项式和并同类项

SortPoly()-----------将多项式按升序排列

PolyAdd()-----------多项式和的计算

PolySub()----------多项式差的计算

PolyMutiply()-------多项式积的计算

PolyDivide()---------多项式商的计算

三、系统实施

1.源程序代码(见后附录)

2.上机调试过程

1)调试中遇到的主要问题

问题一:开始用类来定义多项式链表的结点,即typedef struct PolyNode{}PolyNode , * PolyList,并将三个数据域设为私有成员,系统报错。

问题二:将多项式类的析构函数体写为:~Polynomial(){delete head;delete rear;delete Length;},

系统报错。

问题三:在记录多项式项数Length时,在创建多项式的函数体内,写成:Length=n-1,

编译通过,可运行结果不正确,多了一项。

问题四:在多项式类中所定义的两个多项式的加减乘除及判断是否相等这些功能函数本来用的是友元函数(也应该用友元函数),例对多项式的加法用的是函数friend PolyList PolyAdd(PolyList &PolyA , PolyList &PolyB),系统报错。

问题五:在程序运行过程中出现错误error C2955: 'Polynomial' : use of class template requires template argument list。

2)解决问题

解决题一:根据错误提示发现多项式类成员函数的实现不能访问结点类的私有成员,在结点类里添加一个友元类friend class Polynomial,运行后还是有错误,经过反复修改,根据提示意识到自己不能解决typedef在类模板中的正确使用,导致反复不能运行,最后将多项式链表的结点用结构体来定义,即用typedef struct PolyNode{}PolyNode , * PolyList,运行最终正确。

解决题二:根据错误提示将析构函数改为:~Polynomial(){delete head;delete rear;},运行对。

解决题三:根据运行的错误结果将错误代码改为:Length=n-2,运行正确。

解决题四:据错误提示应该是PolyA本是指针成员,在前加上地址运算符&会出错,且PolyList 非类名,故系统报错。将&全部去掉,运行仍错误,反复对其修改,都不能运行,最后将友元函数改为普通函数,如上面的加法函数改为PolyList PolyAdd(PolyList PolyA , PolyList PolyB),运行正确(虽然不该在多项式类中定义这样的函数,因为这些功能并非多项式的基本行为,但毕竟个人能力有限,只希望以后掌握更多的知识来进行弥补)。

解决题五:根据错误指示位置发现在使用类模板的地方出现了问题,误将void Polynomial::MergePoly(PolyList Poly)写为void Polynomial::MergePoly(PolyList Poly),了解到在实现模板类的成员函数时,要加上来限制。

3)算法改进设想

自己的课程设计还不够完善,有些功能未设计到,有很多需要改进的地方,现列举以下几个改进设想:

设想一:希望可以对某一个多项式进行插入一项或插入另一个多项式。

设想二:用类来定义多项式链表的结点,添加构造函数、拷贝构造函数和析构函数等基本类函数,使用友元类访问结点的私有成员。

设想三:对两个多项式间的加减乘除及判断是否相等使用友元函数来实现,因为这些功能并非多项式的行为。

设想四:希望可以用磁盘文件输入数据,并完整的清晰的将运行结果进行保存。

设想五:希望自己做的系统界面更加美观、实用,令读者运行快乐。

设想六:可以用重载函数来实现多项式间的加减乘除运算,重载运算符“+、—、×、\”,但也必须使用友元函数来写。

4)经验与体会

虽然课程设计做的不够完善,但在设计的过程中受益匪浅,通过查资料等学到了很多以

前不知道或不太会应用的知识,主要包括以下几点:

a.对typedef的应用有了新的认识。如typedef int *bom 将int另命名为*bom,则用bom 定义的类型为int指针类型的指针,例如bom n ,则n为int型的指针。typedef有利于程序的通用和移植。

b.最主要的是对单向链表的使用有了更深刻的了解和掌握,因为多项式的计算要求用单向链表来实现,所以在做课程设计之前通过网上找资料,查参考书及问辅导老师等对单向链表的使用比以前掌握的更加到位,并且能够灵活运用,通篇几乎用的都是单向链表,这是受益的一大重点。

c.更正了对运算符delete的使用,以前一直以为delete可以删除一切基本数据类型的数据,以释放它们的空间,可运行报错。通过查看课本发现delete是用来删除由new建立的对象,释放指针所指向的内存空间,格式为:delete 指针名,这可以与运算符new一起记忆,new 的功能是动态分配内存。

d.对重载运算符的使用也比以前更加深入,本程序是使用了重载赋值运算符“=”,来实现对多项式的拷贝,深记重载函数的一般语法形式为:函数类型operator 运算符(形参表){函数体}。

e.由于课程设计中要求使用模板,为了正确使用模板,学习了很多关于模板使用的方法及注意事项,促使我对类模板的使用有了更深一步的理解,牢记在类模板以外定义成员函数,需采用以下的形式:(模板参数表用class T或typename T,常用前者。)

template<模板参数表>

类型名类名::函数名(参数表)

5)不足之处

本程序最大的不足便在于计算多项式的加减乘除和判断两多项式是否相等未使用友元函数,虽然程序仍能正确运行,但从本质上讲,不用友元函数是不正确的,因为这些功能并非单个多项式所具有的行为。本程序另一不足之处在于对磁盘文件的处理不规范,它只能存储程序运行结果所输出的多项式,而不能存储多项式前的说明文字,如对某一多项式进行合并同类项,屏幕上显示的是“合并后的PolyA为:6x^3+3.5x^7”,但文件里保存的只是“6x^3+3.5x^7”,让旁观者不清楚这是什么函数功能运行的结果。

这些不足主要是因为自己对知识的掌握不是很牢固,不能正确灵活运用所学知识。针对这些不足,我以后要认真学习这些不足的知识,深刻理解并掌握它们。

3.测试结果及其分析

运行说明:运行程序后,先出现以下主菜单:

(说明:界面缩小了)

3)进入帮助菜单

4)创建PolyA多项式

5)先输出PolyA并记录项数,再删除PolyA

4)对刚未删除的PolyA修改,进入修改菜单

5)拷贝PolyA,再创建一个PolyB多项式并输出

6)进入多项式运算菜单(加减乘除及判断两多项式是否相等)

7)当输入错误时系统给出错误提示

8)系统结束时界面如下

四、参考书目

【1】杨正宏《数据结构(C/C++版)》北京:清华大学出版社,2004年11月

【2】王睿伯《面向对象程序设计》北京:科学出版社,2003年7月

【3】傅仕星《C++语言程序设计习题与实验指导》北京:清华大学出版社,2000年7月【4】张基温《c++程序开发例题与习题》北京:清华大学出版社,2001年9月

【5】王昆仑《数据结构与算法》中国:中国铁道出版社,2007年5月

【6】郑莉《C++语言程序设计(第三版)》北京:清华大学出版社

【7】郑莉《C++语言程序设计(第三版)学生用书》北京:清华大学出版社

【8】刘振安《C++程序设计课程设计》中国:机械工业出版社

【9】吴乃陵《C++程序设计》北京:高等教育出版社

【10】李春葆《C++程序设计学习与上机实验指导》北京:清华大学出版社

【11】范辉《Visual C++6.0程序设计简明教程》北京:高等教育出版社

【12】李龙澍《C++程序设计实训教程》北京:清华大学出版社

【13】洪国胜《C++ Builder程序设计轻松上手》北京:清华大学出版社

【14】宁正元《数据结构(c语言)》南京:东南大学出版社,2000年6月第1版

【15】严蔚敏《数据结构(c语言版)》北京:清华大学出版社,1997年4月第1版。

【16】胡学钢《数据结构算法设计指导》北京:清华大学出版社,1999年第1版。

顺序链式一元多项式加法、减法、乘法运算的实现

1.1设计内容及要求 1)设计内容 (1)使用顺序存储结构实现多项式加、减、乘运算。 例如: 10321058)(2456+-+-+=x x x x x x f ,x x x x x x g +--+=23451020107)( 求和结果:102220128)()(2356++-+=+x x x x x g x f (2)使用链式存储结构实现多项式加、减、乘运算, 10305100)(1050100+-+=x x x x f ,x x x x x x g 320405150)(10205090+++-= 求和结果:1031040150100)()(102090100++-++=+x x x x x x g x f 2)设计要求 (1)用C 语言编程实现上述实验内容中的结构定义和算法。 (2)要有main()函数,并且在main()函数中使用检测数据调用上述算法。 (3)用switch 语句设计如下选择式菜单。 ***************数据结构综合性实验**************** *******一、多项式的加法、减法、乘法运算********** ******* 1.多项式创建 ********** ******* 2.多项式相加 ********** ******* 3.多项式相减 ********** ******* 4.多项式相乘 ********** ******* 5.清空多项式 ********** ******* 0.退出系统 ********** ******* 请选择(0—5) ********** ************************************************* *请选择(0-5): 1.2数据结构设计 根据下面给出的存储结构定义: #define MAXSIZE 20 //定义线性表最大容量

电力系统潮流计算课程设计报告

课程设计报告 学生姓名:学号: 学院:电气工程学院 班级: 题目: 电力系统潮流计算 职称: 副教授 指导教师:李翠萍职称: 副教授 2014年 01月10日

1 潮流计算的目的与意义 潮流计算的目的:已知电网的接线方式与参数及运行条件,计算电力系统稳态运行各母线电压、个支路电流与功率及网损。对于正在运行的电力系统,通过潮流计算可以判断电网母线电压、支路电流和功率是否越限,如果有越限,就应采取措施,调整运行方式。对于正在规划的电力系统,通过潮流计算,可以为选择电网供电方案和电气设备提供依据。潮流计算还可以为继电保护和自动装置定整计算、电力系统故障计算和稳定计算等提供原始数据。 潮流计算的意义: (1)在电网规划阶段,通过潮流计算,合理规划电源容量及接入点,合理规划网架,选择无功补偿方案,满足规划水平的大、小方式下潮流交换控制、调峰、调相、调压的要求。 (2)在编制年运行方式时,在预计负荷增长及新设备投运基础上,选择典型方式进行潮流计算,发现电网中薄弱环节,供调度员日常调度控制参考,并对规划、基建部门提出改进网架结构,加快基建进度的建议。 (3)正常检修及特殊运行方式下的潮流计算,用于日运行方式的编制,指导发电厂开机方式,有功、无功调整方案及负荷调整方案,满足线路、变压器热稳定要求及电压质量要求。 (4)预想事故、设备退出运行对静态安全的影响分析及作出预想的运行方式调整方案。 2 潮流计算数学模型 1.变压器的数学模型: 变压器忽略对地支路等值电路:

2.输电线的数学模型: π型等值电路: 3 数值方法与计算流程 利用牛顿拉夫逊法进行求解,用MATLAB 软件编程,可以求解系统潮流分 布根据题目的不同要求对参数进行调整,通过调节变压器变比和发电厂的电压,求解出合理的潮流分布,最后用matpower 进行潮流分析,将两者进行比较。 牛顿—拉夫逊法 1、牛顿—拉夫逊法概要 首先对一般的牛顿—拉夫逊法作一简单的说明。已知一个变量X 函数为: 0)(=X f 到此方程时,由适当的近似值) 0(X 出发,根据: ,......)2,1() ()() ()() () 1(='-=+n X f X f X X n n n n 反复进行计算,当) (n X 满足适当的收敛条件就是上面方程的根。这样的方 法就是所谓的牛顿—拉夫逊法。 这一方法还可以做下面的解释,设第n 次迭代得到的解语真值之差,即) (n X 的误差为ε时,则: 0)()(=+εn X f 把)() (ε+n X f 在) (n X 附近对ε用泰勒级数展开 0......)(! 2)()()()(2 )() () (=+''+ '+=+n n n n X f X f X f X f εεε 上式省略去2ε以后部分 0)()()()(≈'+n n X f X f ε

一元多项式加减乘除运算

中国计量学院实验报告 实验课程:算法与数据结构实验名称:一元二项式班级:学号: 姓名:实验日期: 2013-5-7 一.实验题目: ①创建2个一元多项式 ②实现2个多项式相加 ③实现2个多项式相减 ④实现2个多项式相乘 ⑤实现2个多项式相除 ⑥销毁一元多项式 实验成绩:指导教师:

二.算法说明 ①存储结构:一元多项式的表示在计算机内可以用链表来表示,为了节省存储 空间,只存储多项式中系数非零的项。链表中的每一个结点存放多项式的一个系数非零项,它包含三个域,分别存放该项的系数、指数以及指向下一个多项式项结点的指针。创建一元多项式链表,对一元多项式的运算中会出现的各种可能情况进行分析,实现一元多项式的相加、相减操作。 ②加法算法

三.测试结果 四.分析与探讨 实验数据正确,部分代码过于赘余,可以精简。 五.附录:源代码#include<> #include<> #include<> typedef struct Polynomial { float coef; int expn; struct Polynomial *next; }*Polyn,Polynomial; 出多项式a和b\n\t2.多项式相加a+b\n\t3.多项式相减a-b\n"); printf("\t4.多项式相除a*b\n\t5.多项式相除a/b\n\t6.销毁多项式\n"); printf("\t7.退出

\n*********************************** ***********\n"); printf("执行:"); scanf("%d",&flag); switch(flag) { case(1): printf("多项式a:");PrintPolyn(pa); printf("多项式b:");PrintPolyn(pb);break; case(2): pc=AddPolyn(pa,pb); printf("多项式a+b:");PrintPolyn(pc); DestroyPolyn(pc);break; case(3): pd=SubtractPolyn(pa,pb); printf("多项式a-b:");PrintPolyn(pd); DestroyPolyn(pd);break; case(4): pf=MultiplyPolyn(pa,pb); printf("多项式a*b:");PrintPolyn(pf); DestroyPolyn(pf);break; case(5): DevicePolyn(pa,pb); break; case(6): DestroyPolyn(pa); DestroyPolyn(pb); printf("成功销毁2个一元二项式\n"); printf("\n接下来要执行的操作:\n1 重新创建2个一元二项式 \n2 退出程序\n"); printf("执行:"); scanf("%d",&i); if(i==1) { // Polyn pa=0,pb=0,pc,pd,pf;//定义各式的头指针,pa与pb在使用前付初值NULL printf("请输入a的项数:"); scanf("%d",&m); pa=CreatePolyn(pa,m);// 建立多项式a printf("请输入b的项

计算方法上机实验报告

《计算方法》上机实验报告 班级:XXXXXX 小组成员:XXXXXXX XXXXXXX XXXXXXX XXXXXXX 任课教师:XXX 二〇一八年五月二十五日

前言 通过进行多次的上机实验,我们结合课本上的内容以及老师对我们的指导,能够较为熟练地掌握Newton 迭代法、Jacobi 迭代法、Gauss-Seidel 迭代法、Newton 插值法、Lagrange 插值法和Gauss 求积公式等六种算法的原理和使用方法,并参考课本例题进行了MATLAB 程序的编写。 以下为本次上机实验报告,按照实验内容共分为六部分。 实验一: 一、实验名称及题目: Newton 迭代法 例2.7(P38):应用Newton 迭代法求 在 附近的数值解 ,并使其满足 . 二、解题思路: 设'x 是0)(=x f 的根,选取0x 作为'x 初始近似值,过点())(,00x f x 做曲线)(x f y =的切线L ,L 的方程为))((')(000x x x f x f y -+=,求出L 与x 轴交点的横坐标) (') (0001x f x f x x - =,称1x 为'x 的一次近似值,过点))(,(11x f x 做曲线)(x f y =的切线,求该切线与x 轴的横坐标) (') (1112x f x f x x - =称2x 为'x

的二次近似值,重复以上过程,得'x 的近似值序列{}n x ,把 ) (') (1n n n n x f x f x x - =+称为'x 的1+n 次近似值,这种求解方法就是牛顿迭代法。 三、Matlab 程序代码: function newton_iteration(x0,tol) syms z %定义自变量 format long %定义精度 f=z*z*z-z-1; f1=diff(f);%求导 y=subs(f,z,x0); y1=subs(f1,z,x0);%向函数中代值 x1=x0-y/y1; k=1; while abs(x1-x0)>=tol x0=x1; y=subs(f,z,x0); y1=subs(f1,z,x0); x1=x0-y/y1;k=k+1; end x=double(x1) K 四、运行结果: 实验二:

电力系统潮流计算课程设计报告

课程设计报告 学生:学号: 学院: 班级: 题目: 电力系统潮流计算课程设计

课设题目及要求 一 .题目原始资料 1、系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。 2、发电厂资料: 母线1和2为发电厂高压母线,发电厂一总装机容量为( 300MW ),母线3为机压母线,机压母线上装机容量为( 100MW ),最大负荷和最小负荷分别为50MW 和20MW ;发电厂二总装机容量为( 200MW )。 3、变电所资料: (一) 变电所1、2、3、4低压母线的电压等级分别为:35KV 10KV 35KV 10KV (二) 变电所的负荷分别为: 60MW 40MW 40MW 50MW (三) 每个变电所的功率因数均为cos φ=0.85; 变电所1 变电所母线 电厂一 电厂二

(四) 变电所1和变电所3分别配有两台容量为75MVA 的变压器,短路损 耗414KW ,短路电压(%)=16.7;变电所2和变电所4分别配有两台容 量为63MVA 的变压器,短路损耗为245KW ,短路电压(%)=10.5; 4、输电线路资料: 发电厂和变电所之间的输电线路的电压等级及长度标于图中,单位长度的电阻为Ω17.0,单位长度的电抗为Ω0.402,单位长度的电纳为S -610*2.78。 二、 课程设计基本容: 1. 对给定的网络查找潮流计算所需的各元件等值参数,画出等值电路图。 2. 输入各支路数据,各节点数据利用给定的程序进行在变电所在某一负荷 情况下的潮流计算,并对计算结果进行分析。 3. 跟随变电所负荷按一定比例发生变化,进行潮流计算分析。 1) 4个变电所的负荷同时以2%的比例增大; 2) 4个变电所的负荷同时以2%的比例下降 3) 1和4号变电所的负荷同时以2%的比例下降,而2和3号变电所的 负荷同时以2%的比例上升; 4. 在不同的负荷情况下,分析潮流计算的结果,如果各母线电压不满足要 求,进行电压的调整。(变电所低压母线电压10KV 要求调整围在9.5-10.5 之间;电压35KV 要求调整围在35-36之间) 5. 轮流断开支路双回线中的一条,分析潮流的分布。(几条支路断几次) 6. 利用DDRTS 软件,进行绘制系统图进行上述各种情况潮流的分析,并进 行结果的比较。 7. 最终形成课程设计成品说明书。 三、课程设计成品基本要求: 1. 在读懂程序的基础上画出潮流计算基本流程图 2. 通过输入数据,进行潮流计算输出结果 3. 对不同的负荷变化,分析潮流分布,写出分析说明。 4. 对不同的负荷变化,进行潮流的调节控制,并说明调节控制的方法,并 列表表示调节控制的参数变化。 5. 打印利用DDRTS 进行潮流分析绘制的系统图,以及潮流分布图。

数据结构中实现一元多项式简单计算

数据结构中实现一元多项式简单计算: 设计一个一元多项式简单的计算器。 基本要求: 一元多项式简单计算器的基本功能为: (1)输入并建立多项式; (2)输出多项式; (3)两个多项式相加,建立并输出和多项式; (4)两个多项式相减,建立并输出差多项式; #include #include #define MAX 20 //多项式最多项数 typedef struct//定义存放多项式的数组类型 { float coef; //系数 int exp; //指数 } PolyArray[MAX]; typedef struct pnode//定义单链表结点类型 { float coef; //系数 int exp; //指数 struct pnode *next; } PolyNode; void DispPoly(PolyNode *L) //输出多项式 { PolyNode *p=L->next; while (p!=NULL) { printf("%gX^%d ",p->coef,p->exp); p=p->next; } printf("\n"); } void CreateListR(PolyNode *&L,PolyArray a,int n) //尾插法建表 { PolyNode *s,*r;int i; L=(PolyNode *)malloc(sizeof(PolyNode)); //创建头结点 L->next=NULL; r=L; //r始终指向终端结点,开始时指向头结点for (i=0;i

计算方法实验报告格式

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

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 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,则

基于matlab--psat软件的电力系统潮流计算课程设计

东北电力大学课程设计改革试用任务书: 电力系统潮流计算课程设计任务书 设计名称:电力系统潮流计算课程设计 设计性质:理论计算,计算机仿真与验证 计划学时:两周 一、设计目的 1.培养学生独立分析问题、解决问题的能力; 2.培养学生的工程意识,灵活运用所学知识分析工程问题的能力 3.编制程序或利用电力系统分析计算软件进行电力系统潮流分析。 二、原始资料 1、系统图:IEEE14节点。 2、原始资料:见IEEE14节点标准数据库 三、课程设计基本内容: 1.采用PSAT仿真工具中的潮流计算软件计算系统潮流; 1)熟悉PSAT仿真工具的功能; 2)掌握IEEE标准数据格式内容; 3)将IEEE标准数据转化为PSAT计算数据; 2.分别采用NR法和PQ分解法计算潮流,观察NR法计算潮流中雅可比矩阵的变化情况, 分析两种方法计算潮流的优缺点; 3.分析系统潮流情况,包括电压幅值、相角,线路过载情况以及全网有功损耗情况。

4.选择以下内容之一进行分析: 1)找出系统中有功损耗最大的一条线路,给出减小该线路损耗的措施,比较各种措施 的特点,并仿真验证; 2)找出系统中电压最低的节点,给出调压措施,比较各种措施的特点,并仿真验证; 3)找出系统中流过有功功率最大的一条线路,给出减小该线路有功功率的措施,比较 各种措施的特点,并仿真验证; 5.任选以下内容之一作为深入研究:(不做要求) 1)找出系统中有功功率损耗最大的一条线路,改变发电机有功出力,分析对该线路有 功功率损耗灵敏度最大的发电机有功功率,并进行有效调整,减小该线路的损耗; 2)找出系统中有功功率损耗最大的一条线路,进行无功功率补偿,分析对该线路有功 功率损耗灵敏度最大的负荷无功功率,并进行有效调整,减小该线路的损耗; 3)找出系统中电压最低的节点,分析对该节点电压幅值灵敏度最大的发电机端电压, 并有效调整发电机端电压,提高该节点电压水平; 四、课程设计成品基本要求: 1.绘制系统潮流图,潮流图应包括: 1)系统网络参数 2)节点电压幅值及相角 3)线路和变压器的首末端有功功率和无功功率 2.撰写设计报告,报告内容应包括以下几点: 1)本次设计的目的和设计的任务; 2)电力系统潮流计算的计算机方法原理,分析NR法和PQ分解法计算潮流的特点; 3)对潮流计算结果进行分析,评价该潮流断面的运行方式安全性和经济性; 4)找出系统中运行的薄弱环节,如电压较低点或负载较大线路,给出调整措施; 5)分析各种调整措施的特点并比较它们之间的差异; 6)结论部分以及设计心得; 五、考核形式 1.纪律考核:学生组织出勤情况和工作态度等; 2.书面考核:设计成品的完成质量、撰写水平等; 3.答辩考核:参照设计成品,对计算机方法进行电力系统潮流计算的相关问题等进行答辩; 4.采用五级评分制:优、良、中、及格、不及格五个等级。

数据结构一元多项式的计算

课程设计成果 学院: 计算机工程学院班级: 13计科一班 学生姓名: 学号: 设计地点(单位): 设计题目:一元多项式的计算 完成日期:年月日 成绩(五级记分制): _________________ 教师签名:_________________________ 目录 1 需求分析 ......................................................................... 错误!未定义书签。 2 概要设计 ......................................................................... 错误!未定义书签。 2.1一元多项式的建立 ............................................................... 错误!未定义书签。 2.2显示一元多项式 ................................................................... 错误!未定义书签。 2.3一元多项式减法运算 ........................................................... 错误!未定义书签。 2.4一元多项式加法运算 ........................................................... 错误!未定义书签。 2.5 设计优缺点.......................................................................... 错误!未定义书签。3详细设计 .......................................................................... 错误!未定义书签。 3.1一元多项式的输入输出流程图........................................... 错误!未定义书签。 3.2一元多项式的加法流程图................................................... 错误!未定义书签。 3.3一元多项式的减法流程图.................................................. 错误!未定义书签。 3.4用户操作函数....................................................................... 错误!未定义书签。4编码 .................................................................................. 错误!未定义书签。5调试分析 .......................................................................... 错误!未定义书签。4测试结果及运行效果...................................................... 错误!未定义书签。5系统开发所用到的技术.................................................. 错误!未定义书签。参考文献 ............................................................................. 错误!未定义书签。附录全部代码................................................................... 错误!未定义书签。

河海大学水文分析与计算课程设计报告

水文分析计算课程设计报告书 学院:水文水资源 专业:水文与水资源工程 学号: 姓名: 指导老师:梁忠民、李国芳 2015年06月12日 南京

目录 1、设计任务 (1) 2、流域概况 (1) 3、资料情况及计算方案拟定 (1) 4、计算步骤及主要成果 (2) 4.1 设计暴雨X p(t)计算 (2) 4.1.1 区域降雨资料检验 (2) 4.1.2 频率分析与设计雨量计算 (3) 4.2计算各种历时同频率雨量X t,P (9) 4.3 选典型放大推求X P (t) (9) 4.4 产汇流计算 (9) 4.4.1 径流划分及稳渗μ值率定 (12) 4.4.2 地表汇流 (17) 4.5 由设计暴雨X P(t)推求Q P(t) (18) 4.5.1 产流计算 (18) 4.5.2 地面汇流 (18) 4.5.3地下汇流计算 (19) 4.5.4 设计洪水过程线 (20) 5、心得体会 (22)

1、设计任务 推求江西良田站设计洪水过程线,本次要求做P 校,即推求Q 0.01%(t)。 2、流域基本概况 良田是赣江的支流站。良田站以上控制的流域面积仅为44.5km 2,属于小流域,如右图所示。年降水均值在1500~1600mm 之内,变差系数Cv 为0.2,即该地区降雨充沛,年际变化小,地处湿润地区。暴雨集中。暴雨多为气旋雨、台风雨,季节为3~8月,暴雨历时为2~3日。 3、资料情况及计算方案拟定 3.1资料情况 设计站(良田)流量资料缺乏,邻近站雨量资料相对充分,具体如表3-1: 表3-1 良田站及邻近地区的实测暴雨系列、历时洪水、特大暴雨资料 (设计站(良田)流量资料缺乏,邻近站雨量资料相对充分。) 站名 实测暴雨流量系列 特大暴雨、历史洪水 良田 75~78 (4年) Q=216m 3 /s ,N=80(转化成X 1日,移置峡江站) 峡江 53~80 (28年) 吉安 36~80 (45年) 桑庄 57~80 (24年) X 1日=416mm ,N=100~150(74.8.11) 寨头 57~80 (24年) 沙港 特大暴雨 X 1日=396mm ,N=100~150(69.6.30) (移置到寨头站)

东北电力大学电力系统潮流计算课程设计报告书

目录 一、设计任务 (1) 1.1 课程设计要求 (1) 1.2 课程设计题目 (1) 1.3 课程设计基本容 (2) 二、问题分析 (3) 2.1 节点设置及分类 (3) 2.2 参数求取 (3) 2.3 计算方法 (4) 三、问题求解 (7) 3.1 等值电路的计算 (7) 3.2画出系统等值电路图: (7) 3.3 潮流计算 (8) 四、误差分析 (29) 五、心得体会及总结 (38) 附录: (39) 参考文献 (39) 程序 (39)

电力系统潮流计算课程设计 一、设计任务 1.1 课程设计要求 1、在读懂程序的基础上画出潮流计算基本流程图 2、通过输入数据,进行潮流计算输出结果 3、对不同的负荷变化,分析潮流分布,写出分析说明。 4、对不同的负荷变化,进行潮流的调节控制,并说明调节控制的方法,并 列表表示调节控制的参数变化。 5、打印利用DDRTS进行潮流分析绘制的系统图,以及潮流分布图。 1.2 课程设计题目 系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。 变电所1 变电所2 母线电厂一电厂二

发电厂资料: 母线1和2为发电厂高压母线,发电厂一总装机容量为( 300MW ),母线3为机压母线,机压母线上装机容量为( 100MW ),最大负荷和最小负荷分别为50MW 和20MW ;发电厂 二总装机容量为( 200MW )。 变电所资料: (一)变电所1、2、3、4低压母线的电压等级分别为:35KV 10KV 35KV 10KV (二)变电所的负荷分别为:60MW 40MW 70MW 50MW (三)每个变电所的功率因数均为cos φ=0.85; (四)变电所1和变电所3分别配有两台容量为75MVA 的变压器,短路损耗414KW ,短路 电压(%)=16.7;变电所2和变电所4分别配有两台容量为63MVA 的变压器,短路损耗为245KW ,短路电压(%)=10.5; 输电线路资料: 发电厂和变电所之间的输电线路的电压等级及长度标于图中,单位长度的电阻为 Ω17.0,单位长度的电抗为Ω0.402,单位长度的电纳为S -610*2.78。 1.3 课程设计基本容 1. 对给定的网络查找潮流计算所需的各元件等值参数,画出等值电路图。 2. 输入各支路数据,各节点数据利用给定的程序进行在变电所在某一负荷情况下的潮 流计算,并对计算结果进行分析。 3. 跟随变电所负荷按一定比例发生变化,进行潮流计算分析。 1) 4个变电所的负荷同时以2%的比例增大; 2) 4个变电所的负荷同时以2%的比例下降 3) 1和4号变电所的负荷同时以2%的比例下降,而2和3号变电所的负荷同时以 2%的比例上升; 4. 在不同的负荷情况下,分析潮流计算的结果,如果各母线电压不满足要求,进行电 压的调整。(变电所低压母线电压10KV 要求调整围在9.5-10.5之间;电压35KV 要求调整围在35-36之间) 5. 轮流断开支路双回线中的一条,分析潮流的分布。(几条支路断几次) 6. 利用DDRTS 软件,进行绘制系统图进行上述各种情况潮流的分析,并进行结果的比 较。 7. 最终形成课程设计成品说明书。

C语言一元多项式计算

C语言一元多项式计算集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

#include <> #include <> #include <> #define LEN sizeof(node) //结点构造 typedef struct polynode { int coef; //系数 int exp; //指数 struct polynode *next; }node; node * create(void) { node *h,*r,*s; int c,e; h=(node *)malloc(LEN); r=h; printf("系数:"); scanf("%d",&c); printf("指数:"); scanf("%d",&e); while(c!=0) { s=(node *)malloc(LEN); s->coef=c; s->exp=e; r->next=s; r=s; printf("系数:"); scanf("%d",&c); printf("指数:"); scanf("%d",&e); } r->next=NULL; return(h);

} void polyadd(node *polya, node *polyb) { node *p,*q,*pre,*temp; int sum; p=polya->next; q=polyb->next; pre=polya; while(p!=NULL&&q!=NULL) { if(p->exp>q->exp) { pre->next=p; pre=pre->next; p=p->next; } else if(p->exp==q->exp) { sum=p->coef+q->coef; if(sum!=0) { p->coef=sum; pre->next=p;pre=pre->next;p=p->next; temp=q;q=q->next;free(temp); } else { temp=p->next;free(p);p=temp; temp=q->next;free(q);q=temp; } } else { pre->next=q; pre=pre->next; q=q->next; } } if(p!=NULL) pre->next=p; else pre->next=q; } void print(node * p) {

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

本科实验报告 课程名称:计算机数值方法 实验项目:方程求根、线性方程组的直接解法、线性方程组的迭代解法、代数插值和最小二乘拟合多项式 实验地点:行勉楼 专业班级:******** 学号:********* 学生:******** 指导教师:誌,冬华 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"

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

电力系统潮流计算课程设计(终极版)

目录 摘要................................................. - 1 - 1.设计意义与要求..................................... - 2 - 1.1设计意义 ...................................... - 2 - 1.2设计要求(具体题目)........................... - 2 - 2.题目解析........................................... - 3 - 2.1设计思路 ...................................... - 3 - 2.2详细设计 ...................................... - 4 - 2.2.1节点类型.................................. - 4 - 2.2.2待求量 ................................... - 4 - 2.2.3导纳矩阵.................................. - 4 - 2.2.4潮流方程.................................. - 5 - 2.2.5牛顿—拉夫逊算法.......................... - 6 - 2.2.5.1牛顿算法数学原理:................... - 6 - 2.2.5.2修正方程............................. - 7 - 2.2.5.3收敛条件............................. - 9 - 3.结果分析.......................................... - 10 - 4.小结.............................................. - 11 - 参考文献............................................ - 12 -

一元多项式计算问题课程设计

长沙学院课程设计说明书 题目一元多项式计算问题系(部) 计算机系 专业(班级) 10级软件D班 姓名向栋良 学号2010022D08 指导教师邓旭东 起止日期2011.9.4-2011.9.8

课程设计任务书 课程名称:数据结构与算法 设计题目:一元多项式计算问题 已知技术参数和设计要求: 问题描述: 设计一个稀疏多项式简单计算器 基本要求: (1)输入并分别建立多项式A和B (2)输入输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……,其中n是多项式的项数,ci和ei是第i项的系数和指数,序列按指数降序排列 (3)完成两个多项式的相加、相减,并将结果输出; 测试数据: (1) A+B A= 3x14-8x8+6x2+2 B=2x10+4x8+-6x2 (2) A-B A=11x14+3x10+2x8+10x6+5 B=2x14+3x8+5x6+7 (3) A+B A=x3+x1B=-x3-x1 (4) A+B A=0 B=x7+x5+x3+x1 (5) A-B A=100x100+50x50+20x20+x B=10x100+10x50+10x20+x 选作内容: (1).多项式在x=1时的运算结果 (2)求多项式A和B的乘积 设计工作量: 40课时 日期节次地点设计方式9月4日(周日)1-4 科1408 讲授内容 9月4日(周日)5-8 科1608 答疑 9月5日(周一)1-4科1408上机调试 9月5日(周一)5-8 科1608 答疑 9月6日(周二)1-4科1408上机调试 9月6日(周二)5-8 科1608 答疑 9月7日(周三)1-4科1408上机调试 9月7日(周三)5-8 科1608 答疑 9月8日(周四)1-4科1608答疑 9月8日(周四)5-8 科1408 答辩

电力系统潮流计算课程设计论文

课程设计论文 基于MATLAB的电力系统潮流计算 学院:电气工程学院 专业:电气工程及自动化 班级:电自0710班 学号:0703110304 姓名: 马银莎

内容摘要 潮流计算是电力系统最基本最常用的计算。根据系统给定的运行条件,网络接线及元件参数,通过潮流计算可以确定各母线的电压(幅值和相角),各支路流过的功率,整个系统的功率损耗。潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节。因此,潮流计算在电力系统的规划计算,生产运行,调度管理及科学计算中都有着广泛的应用。 潮流计算在数学上是多元非线性方程组的求解问题,牛顿—拉夫逊Newton-Raphson法是数学上解非线性方程组的有效方法,有较好的收敛性。运用电子计算机计算一般要完成以下几个步骤:建立数学模型,确定解算方法,制订计算流程,编制计算程序。 关键词 牛顿-拉夫逊法(Newton-Raphson)变压器及非标准变比无功调节 高斯消去法潮流计算Mtlab

一 .电力系统潮流计算的概述 在电力系统的正常运行中,随着用电负荷的变化和系统运行方式的改变,网络中的损耗也将发生变化。要严格保证所有的用户在任何时刻都有额定的电压是不可能的,因此系统运行中个节点出现电压的偏移是不可避免的。为了保证电力系统的稳定运行,要进行潮流调节。 随着电力系统及在线应用的发展,计算机网络已经形成,为电力系统的潮流计算提供了物质基础。电力系统潮流计算是电力系统分析计算中最基本的内容,也是电力系统运行及设计中必不可少的工具。根据系统给定的运行条件、网络接线及元件参数,通过潮流计算可以确定各母线电压的幅值及相角、各元件中流过的功率、整个系统的功率损耗等。潮流计算是实现电力系统安全经济发供电的必要手段和重要工作环节,因此潮流计算在电力系统的规划设计、生产运行、调度管理及科学研究中都有着广泛的应用。它的发展主要围绕这样几个方面:计算方法的收敛性、可靠性;计算速度的快速性;对计算机存储容量的要求以及计算的方便、灵活等。 常规的电力系统潮流计算中一般具有三种类型的节点:PQ 、PV 及平衡节点。一个节点有四个变量,即注入有功功率、注入无功功率,电压大小及相角。常规的潮流计算一般给定其中的二个变量:PQ 节点(注入有功功率及无功功率),PV 节点(注入有功功率及电压的大小),平衡节点(电压的大小及相角)。 1、变量的分类: 负荷消耗的有功、无功功率——1L P 、1L Q 、2L P 、2L Q 电源发出的有功、无功功率——1G P 、1G Q 、2G P 、2G Q 母线或节点的电压大小和相位——1U 、2U 、1δ、2δ 在这十二个变量中,负荷消耗的有功和无功功率无法控制,因它们取决于用户,它们就称为不可控变量或是扰动变量。电源发出的有功无功功率是可以控制的自变量,因此它们就称为控制变量。母线或节点电压的大小和相位角——是受控制变量控制的因变量。其中, 1U 、2U 主要受1G Q 、2G Q 的控制, 1δ、2δ主要受 1G P 、2G P 的控制。这四个变量就是简单系统的状态变量。 为了保证系统的正常运行必须满足以下的约束条件: 对控制变量 max min max min ;Gi Gi Gi Gi Gi Gi Q Q Q P P P <<<< 对没有电源的节点则为 0;0==Gi Gi Q P 对状态变量i U 的约束条件则是 m a x m i n i i i U U U <<

一元多项式计算器

一元多项式计算器 目录 摘要 (1) 1绪论 (1) 2系统分析 (1) 2.1功能需求 (1) 2.2数据需求 (1) 2.3性能需求 (1) 3总体设计 (2) 3.1系统设计方案 (2) 3.2功能模块设计 (2) 4详细设计 (3) 4.1建立多项式 (4) 4.2多项式相加 (4) 4.3多项式相减 (5) 4.4多项式相乘 (5) 4.5计算器主函数 (6) 5调试与测试 (7) 5.1调试 (7) 5.2测试 (8) 6结论 (9) 结束语 (9) 参考文献 (9) 附录1-用户手册 (10) 附录2-源程序 (12)

摘要 随着生活水平的提高,现代科技也日益发达。日常生活中多位计算再所难免,因此设计一个简单计算器可解决许多不必要的麻烦。 开发这样一个程序主要运用了C的结点,链表等方面知识。系统主要实现了多项式的建立,多项式的输入输出,以及多项式加减乘等运算。 报告主要从计算器的程序段,对输入输出数据的要求,计算器的性能,以及总体的设计来介绍此计算器程序的实现过程。 关键词:多项式;链表;结点 1绪论 随着日益发达的科技,计算器已应用于各行各业。设计一个计算器需要运用C中多方面知识,更是以多项式的建立,输入输出,以及结点,链表为主。(扩充) 任务书。。。。。 2系统分析 2.1 功能需求 多项式的建立多项式输入输出多项式加减乘等运算 2.2数据需求 在输入过程中,首先要确定输入的数据,数据不能是字母,只能是数字。不能连续输入数据,必须按要求配以空格输入要计算的数据。 (1) 链节节点数字 (2) 数字 2.3 性能需求 系统必须安全可靠,不会出现无故死机状态,速度不宜过慢。

相关文档
最新文档