计算方法实验八
- 格式:docx
- 大小:15.66 KB
- 文档页数:1
计算方法实验报告计算方法实验报告概述:计算方法是一门研究如何用计算机解决数学问题的学科。
在本次实验中,我们将学习和应用几种常见的计算方法,包括数值逼近、插值、数值积分和常微分方程求解。
通过实验,我们将深入了解这些方法的原理、应用场景以及其在计算机科学和工程领域的重要性。
数值逼近:数值逼近是一种通过使用近似值来计算复杂函数的方法。
在实验中,我们通过使用泰勒级数展开和牛顿迭代法等数值逼近技术,来计算函数的近似值。
这些方法在科学计算和工程领域中广泛应用,例如在信号处理、图像处理和优化问题中。
插值:插值是一种通过已知数据点来估算未知数据点的方法。
在实验中,我们将学习和应用拉格朗日插值和牛顿插值等方法,以及使用这些方法来构造函数的近似曲线。
插值技术在数据分析、图像处理和计算机图形学等领域中具有重要的应用价值。
数值积分:数值积分是一种通过将函数曲线划分为小矩形或梯形来估算函数的积分值的方法。
在实验中,我们将学习和应用矩形法和梯形法等数值积分技术,以及使用这些方法来计算函数的近似积分值。
数值积分在物理学、金融学和统计学等领域中被广泛使用。
常微分方程求解:常微分方程求解是一种通过数值方法来求解微分方程的方法。
在实验中,我们将学习和应用欧拉法和龙格-库塔法等常微分方程求解技术,以及使用这些方法来求解一些常见的微分方程。
常微分方程求解在物理学、生物学和工程学等领域中具有广泛的应用。
实验结果:通过实验,我们成功地应用了数值逼近、插值、数值积分和常微分方程求解等计算方法。
我们得到了准确的结果,并且在不同的应用场景中验证了这些方法的有效性和可靠性。
这些实验结果将对我们进一步理解和应用计算方法提供重要的指导和支持。
结论:计算方法是计算机科学和工程领域中的重要学科,它提供了解决复杂数学问题的有效工具和方法。
通过本次实验,我们深入了解了数值逼近、插值、数值积分和常微分方程求解等计算方法的原理和应用。
这些方法在科学研究、工程设计和数据分析等领域中具有广泛的应用价值。
实验八原电池电动的测定实验八电动势的测定动势的方法。
极。
负极进行氧化反应,正极进行还原反应。
如果电池反应是自发的,则电池电动势为正。
符号“|”表示两相界面,成如下电池:-Ag(固)|AgCl(固)|KCl(0.1mol.L-1)||AgNO3(0.01mol.L-1)|Ag(固)+E左=E0左-RT/F×ln1/aCl-E右=E0右-RT/Fln1/aAg+l.L-1)→AgCl2.303RT,求得AgCl的Ksp。
H,可设计如下电池:氢醌的未知pH溶液|Pt+0H)2/a醌.a2H+=E0醌氢醌-2.30RT/F*pH .30RT/F*pH-E甘汞03RT/F)未知溶液的pH值。
氯化银电极,铂电极,银电极,标准电池,50mL烧杯5个;10mL移液管2支;洗瓶1个。
. 1mol.L-1KCl;饱和KCl溶液;氢醌固体粉末;0.2mol.L-1HOAc;0.2mol.L-1NaOAc;未知溶液。
0.01mol.L-1)|Ag(固)+|AgNO(0.01mol.L-1)|Ag(固)+3|Pt+.1mol.L-1 HOAc+0.1mol.L-1 NaAcO)Q.QH2|Pt+知样品Q.QH2预习时算好)电源开关预热5分钟。
将右侧功能选择开关置于测量档。
标准电池电动势值,计算公式如下:Et=[1.0186-4.06×10-5(t℃-20)-9.5×10-7(t℃-20)2]V,t—实验温度,℃,。
)测量线的一端插入数字电位差计的外标线路相对应的“+”极与“-”极,其另一端与标准电池的“+”极与“-“X1000mV、X100mV、X10mV、X1mV、X0.1mV到Et值,旋转X0.01mV电位器,使电动势指示的值与Et完全相符,且平与数字电位差计的测量线路“+”极、“-”极连接,将面板右侧的“功能选择”开关拨至“测量”位置,依次调节V电位器,使平衡指示为0.0000止,读出电动势指示值,即为所测电池的电动势。
一、实验目的1. 理解并掌握计算方法的基本概念和原理;2. 学会使用计算方法解决实际问题;3. 提高编程能力和算法设计能力。
二、实验内容本次实验主要涉及以下内容:1. 线性方程组的求解;2. 多项式插值;3. 牛顿法求函数零点;4. 矩阵的特征值和特征向量求解。
三、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 科学计算库:NumPy、SciPy四、实验步骤及结果分析1. 线性方程组的求解(1)实验步骤a. 导入NumPy库;b. 定义系数矩阵A和增广矩阵b;c. 使用NumPy的linalg.solve()函数求解线性方程组。
(2)实验结果设系数矩阵A和增广矩阵b如下:A = [[2, 1], [1, 2]]b = [3, 2]解得:x = [1, 1]2. 多项式插值(1)实验步骤a. 导入NumPy库;b. 定义插值点x和对应的函数值y;c. 使用NumPy的polyfit()函数进行多项式拟合;d. 使用poly1d()函数创建多项式对象;e. 使用多项式对象计算插值点对应的函数值。
(2)实验结果设插值点x和对应的函数值y如下:x = [1, 2, 3, 4, 5]y = [1, 4, 9, 16, 25]拟合得到的二次多项式为:f(x) = x^2 + 1在x = 3时,插值得到的函数值为f(3) = 10。
3. 牛顿法求函数零点(1)实验步骤a. 导入NumPy库;b. 定义函数f(x)和导数f'(x);c. 设置初始值x0;d. 使用牛顿迭代公式进行迭代计算;e. 判断迭代结果是否满足精度要求。
(2)实验结果设函数f(x) = x^2 - 2x - 3,初始值x0 = 1。
经过6次迭代,得到函数零点x ≈ 3。
4. 矩阵的特征值和特征向量求解(1)实验步骤a. 导入NumPy库;b. 定义系数矩阵A;c. 使用NumPy的linalg.eig()函数求解特征值和特征向量。
班级:地信11102班序号: 20姓名:任亮目录计算方法实验报告(一) (3)计算方法实验报告(二) (6)计算方法实验报告(三) (9)计算方法实验报告(四) (13)计算方法实验报告(五) (18)计算方法实验报告(六) (22)计算方法实验报告(七) (26)计算方法实验报告(八) (28)计算方法实验报告(一)一、实验题目:Gauss消去法解方程组二、实验学时: 2学时三、实验目的和要求1、掌握高斯消去法基础原理2、掌握高斯消去法法解方程组的步骤3、能用程序语言对Gauss消去法进行编程实现四、实验过程代码及结果1、实验算法及其代码模块设计(1)、建立工程,建立Gauss.h头文件,在头文件中建类,如下:class CGauss{public:CGauss();virtual ~CGauss();public:float **a; //二元数组float *x;int n;public:void OutPutX();void OutputA();void Init();void Input();void CalcuA();void CalcuX();void Calcu();};(2)、建立Gauss.cpp文件,在其中对个函数模块进行设计2-1:构造函数和析构函数设计CGauss::CGauss()//构造函数{a=NULL;x=NULL;cout<<"CGauss类的建立"<<endl;}CGauss::~CGauss()//析构函数{cout<<"CGauss类撤销"<<endl;if(a){for(int i=1;i<=n;i++)delete a[i];delete []a;}delete []x;}2-2:函数变量初始化模块void CGauss::Init()//变量的初始化{cout<<"请输入方程组的阶数n=";cin>>n;a=new float*[n+1];//二元数组初始化,表示行数for(int i=1;i<=n;i++){a[i]=new float[n+2];//表示列数}x=new float[n+1];}2-3:数据输入及输出验证函数模块void CGauss::Input()//数据的输入{cout<<"--------------start A--------------"<<endl;cout<<"A="<<endl;for(int i=1;i<=n;i++)//i表示行,j表示列{for(int j=1;j<=n+1;j++){cin>>a[i][j];}}cout<<"--------------- end --------------"<<endl;}void CGauss::OutputA()//对输入的输出验证{cout<<"-----------输出A的验证-----------"<<endl;for(int i=1;i<=n;i++){for(int j=1;j<=n+1;j++){cout<<a[i][j]<<" ";}cout<<endl;}cout<<"---------------END--------------"<<endl;}2-4:消元算法设计及实现void CGauss::CalcuA()//消元函数for(int k=1 ;k<n;k++){for(int i=k+1;i<=n;i++){double lik=a[i][k]/a[k][k];for(int j=k;j<=n+1;j++){a[i][j]-=lik*a[k][j];}a[i][k]=0; //显示消元的效果}}}2-5:回代计算算法设计及函数实现void CGauss::CalcuX()//回带函数{for(int i=n;i>=1;i--){double s=0;for(int j=i+1;j<=n;j++){s+=a[i][j]*x[j];}x[i]=(a[i][n+1]-s)/a[i][i];}}2-6:结果输出函数模块void CGauss::OutPutX()//结果输出函数{cout<<"----------------X---------------"<<endl;for(int i=1 ;i<=n;i++){cout<<"x["<<i<<"]="<<x[i]<<endl;}}(3)、“GAUSS消元法”主函数设计int main(int argc, char* argv[]){CGauss obj;obj.Init();obj.Input();obj.OutputA();obj.CalcuA();obj.OutputA();obj.CalcuX();obj.OutPutX();//obj.Calcu();return 0;2、实验运行结果计算方法实验报告(二)一、实验题目:Gauss列主元消去法解方程组二、实验学时: 2学时三、实验目的和要求1、掌握高斯列主元消去法基础原理(1)、主元素的选取(2)、代码对主元素的寻找及交换2、掌握高斯列主元消去法解方程组的步骤3、能用程序语言对Gauss列主元消去法进行编程实现四、实验过程代码及结果1、实验算法及其代码模块设计(1)、新建头文件CGuassCol.h,在实验一的基础上建立类CGauss的派生类CGuassCol公有继承类CGauss,如下:#include "Gauss.h"//包含类CGauss的头文件class CGaussCol:public CGauss{public:CGaussCol();//构造函数virtual ~CGaussCol();//析构函数public:void CalcuA();//列主元的消元函数int FindMaxIk(int k);//寻找列主元函数void Exchange(int k,int ik);//交换函数void Calcu();};(2)、建立CGaussCol.cpp文件,在其中对个函数模块进行设计2-1:头文件的声明#include "stdafx.h"#include "CGuassCol.h"#include "math.h"#include "iostream.h"2-2:派生类CGaussCol的构造函数和析构函数CGaussCol::CGaussCol()//CGaussCol类构造函数{cout<<"CGaussCol类被建立"<<endl;}CGaussCol::~CGaussCol()//CGaussCol类析构函数{cout<<"~CGaussCol类被撤销"<<endl;}2-3:高斯列主元消元函数设计及代码实现void CGaussCol::CalcuA()//{for(int k=1 ;k<n;k++){int ik=this->FindMaxIk(k);if(ik!=k)this->Exchange(k,ik);for(int i=k+1;i<=n;i++){float lik=a[i][k]/a[k][k];for(int j=k;j<=n+1;j++){a[i][j]-=lik*a[k][j];}}}}2-4:列主元寻找的代码实现int CGaussCol::FindMaxIk(int k)//寻找列主元{float max=fabs(a[k][k]);int ik=k;for(int i=k+1;i<=n;i++){if(max<fabs(a[i][k])){ik=i;max=fabs(a[i][k]);}}return ik;}2-5:主元交换的函数模块代码实现void CGaussCol::Exchange(int k,int ik)//做交换{for(int j=k;j<=n+1;j++){float t=a[k][j];a[k][j]=a[ik][j];a[ik][j]=t;}}(3)、建立主函数main.cpp文件,设计“Gauss列主元消去法”主函数模块3-1:所包含头文件声明#include "stdafx.h"#include "Gauss.h"#include "CGuassCol.h"3-2:主函数设计int main(int argc, char* argv[]){CGaussCol obj;obj.Init();//调用类Gauss的成员函数obj.Input();//调用类Gauss的成员函数obj.OutputA();//调用类Gauss的成员函数obj.CalcuA();obj.OutputA();obj.CalcuX();obj.OutPutX();return 0;}2、实验结果计算方法实验报告(三)一、实验题目:Gauss完全主元消去法解方程组二、实验学时: 2学时三、实验目的和要求1、掌握高斯完全主元消去法基础原理;2、掌握高斯完全主元消去法法解方程组的步骤;3、能用程序语言对Gauss完全主元消去法进行编程(C++)实现。
实验八微波二端口网络参数的测量、分析和计算一、实验目的(1)理解可变短路器实现开路的原理;(2)学会不同负载下的反射系数的测量、分析和计算;(3)学会利用三点法测量、分析和计算微波网络的[S]参数。
二、实验原理[S] 参数是微波网络中重要的物理量,其中[S]参数的三点测量法是基本测量方法,其测量原理如下:对于互易双口网络有S12=S21,故只要测量求得S11、S12 及S21三个量就可以了。
被测网络连接如图8-1 所示。
图8-1 [S] 参数的测量设终端接负载阻抗Z l,令终端反射系数为Γl,则有: a2 = Γl b2, 代入[S]参数定义式得:于是输入端(参考面T1)处的反射系数为将待测网络依次换接终端短路负载(既有Γl = -1)、终端开路负载(即Γl = 1)和终端匹配负载(即Γl = 0)时,测得的输入端反射系数分别为Γs、Γo 和Γm,代入式(8-1)并解出:由此得到[S]参数,这就是三点测量法原理。
在实际测量中,由于波导开口并不是真正的开路,故一般用精密可移动短路器实现终端等效开路l0位置(或用波导开口近视等效为开路),如图8-2 所示。
图8-2 用可变短路器测量[S]参数实验步骤三、实验内容和步骤(1)将匹配负载接在测量线终端,并将测量线测试系统调整到最佳工作状态;(2)将短路片接在测量线终端,从测量线终端向信源方向旋转探针座位置(测量线前的大旋钮),使选频放大器指示为零(或最小),此时的位置即为等效短路面,记作zmin0 ;(3)在终端将短路片取下,换接上可变短路器,在探针位置zmin0 处,调节可变短路器使选频放大器指示为零(或最小),记录此时可变短路器的位置l1 ;(4)继续调节可变短路器,使选频放大器指示再变为零,再记录此时可变短路器的位置l2 ;(5)在终端将可变短路器取下,换接上待测网络,并在待测网络的终端再接上匹配负载,按照实验五的方法测量和计算得到此时的反射系数Γm ;(6)在待测网络的终端取下匹配负载,换接上可变短路器,并将可变短路器调到位置l1 ,按照实验五的方法测量和计算得到此时的反射系数Γs;(7)将可变短路器调到终端等效开路位置,即l0=(l1+l2)/2 的位置,按实验五的方法测量和计算得到此时的反射系数Γo;(8)要求反复测量三次,并处理数据(即参考实验五方法,将根据测量得到的Imin 、Imax 、zmin1 等数据计算相应的反射系数) ;(9)再根据式(8-3)计算得到[S]参数。
实验八单机-无穷大系统稳态运行方式实验一、实验目的1.熟悉远距离输电的线路基本结构和参数的测试方法。
2.掌握对称稳定工况下,输电系统的各种运行状态与运行参数的数值变化范围。
3.掌握输电系统稳态不对称运行的条件、参数和不对称运行对发电机的影响等。
二、原理说明单机-无穷大系统模型,是简单电力系统分析的最基本,最主要的研究对象。
本实验平台建立的是一种物理模型,如下图3-4-1所示。
图3-4-1 单机-无穷大系统示意图发电机组的原动机采用国标直流电动机模拟,但其特性与电厂的大型原动机并不相似。
发电机组并网运行后,输出有功功率的大小可以通过调节直流电动机的电枢电压来调节(具体操作必须严格按照调速器的正确安全操作步骤进行!可参考《微机调速装置基本操作实验》)。
发电机组的三相同步发电机采用的是工业现场标准的小型发电机,参数与大型同步发电机不相似,但可将其看作一种具有特殊参数的电力系统发电机。
实验平台的输电线路是用多个接成链型的电抗线圈来模拟,其电抗值满足相似条件。
“无穷大系统”采用大功率三相自耦调压器,三相自耦调压器的容量远大于发电机的容量,可近似看作无穷大电源,并且通过调压器可以方便的模拟系统电压的波动。
实验平台提供的测量仪表可以方便的测量(电压,电流,功率,功率因数,频率)。
QSZTQ-II(微机准同期系统)上有功角显示,便于直接观察功角变化。
三、实验设备四、实验内容与步骤1. 合上总电源开关,合上主电源源开关,输电线路选择XL1和XL3(即闭合QF1、QF3和QF5,灯为红色),调节三相调压器,主控屏系统电压表显示380V,发电机组启机,建压,通过可控线路单回路并网输电。
3. 打开QSTSXT-II(微机调速系统)和QSLCXT-II(微机励磁系统)电源开关;微机调速系统选择电压闭环,“给定电压”通过软件盘给定170V左右电压,点击“启动”按钮,使电机运行起来,转速达到1500转左右,如果达不到通过“+”键或“-”键,使电机转速为1500转左右。
实验八非线性丙类功率放大器实验一、实验目的1. 熟悉非线性丙类放大器的基本工作原理;2. 掌握非线性丙类放大器的谐振网络设计及相关参数计算方法;3. 通过实验验证非线性丙类放大器的放大性能及功率效率。
二、实验原理非线性丙类功率放大器由通过谐振网络连接的非线性元件管和反馈网络组成。
丙类放大器的偏压电压在截止和饱和之间变化(即平均偏置电流为零),具有很高的功率效率。
但丙类放大器在输入信号较小时,输出波形失真,因此一般只在功率放大器中使用。
谐振网络在丙类功率放大器中很重要,它的作用是将输出信号中的谐波滤去,将基波放大。
合理的谐振网络设计能够提高功率放大器的功率效率和线性度。
三、实验内容1. 根据实验箱中提供的电路图,按照电路要求,搭建非线性丙类功率放大器电路。
2. 接通功率放大器电源,调节可变电阻,使之达到允许的最大值。
观察波形及电压的情况,记录下放大器已经达到的最大输出功率。
3. 改变输入信号的频率和幅度,记录不同情况下输出波形和电压的情况及波形失真情况。
4. 计算非线性丙类功率放大器的功率效率及谐波抑制比。
四、实验步骤1. 按照电路图,搭建非线性丙类功率放大器电路。
注意检查连接是否正确,特别是非线性元件管和反馈网络是否连接正确。
4. 安全关闭电源。
五、实验注意事项2. 确认电路无误后再上电,避免对仪器设备造成损坏。
3. 调节电路中的元器件时,应注意各个元件之间的相互作用。
4. 在实验过程中,应注意保持仪器设备的清洁和安全,确保实验的正常进行。
5. 实验结束后,应注意关闭仪器设备,并保持仪器设备的清洁和整洁。
六、实验结果分析本实验验证了非线性丙类功率放大器的基本工作原理,掌握了非线性丙类放大器的谐振网络设计及相关参数计算方法,同时也通过实验验证了非线性丙类放大器的放大性能及功率效率。
在实验过程中,应注意电路的正确连接和各个元件之间的相互作用。
在实验结束后,应注意关闭仪器设备,并保持仪器设备的清洁和整洁。
实验一:误差传播与算法稳定性实验目的:体会稳定性在选择算法中的地位。
实验内容:考虑一个简单的由积分定义的序列10I ,0,1,10nn x dx n a x==+⎰其中a 为参数,分别对0.05a =及15a =按下列两种方法计算。
方案1:用递推公式11,1,2,,10n n I aI n n-=-+= 递推初值可由积分直接得01lna I a+= 方案2:用递推公式111(),,1,,1n n I I n N N a n-=-+=-根据估计式当1n a n ≥+时,11(1)(1)(1)n I a n a n <<+++或当01n a n ≤<+时,11(1)(1)n I a n n<≤++ 取递推初值 当1n a n ≥+时, 11121()2(1)(1)(1)2(1)(1)N N a I I a N a N a a N +≈+=+++++ 当01n a n ≤<+时,111()2(1)(1)N N I I a N N≈+++ 实验要求:列出结果,并对其稳定性进行分析比较,说明原因。
实验二:非线性方程数值解法实验目的:探讨不同方法的计算效果和各自特点 实验内容:应用算法(1)牛顿法;(2)割线法 实验要求:(1)用上述各种方法,分别计算下面的两个例子。
在达到精度相同的前提下,比较其迭代次数。
(I )31080x x +-=,取00x =;(II) 2281(0.1)sin 1.060x x x -+++=,取00x =;(2) 取其它的初值0x ,结果如何?反复选取不同的初值,比较其结果; (3) 总结归纳你的实验结果,试说明各种方法的特点。
实验三:选主元高斯消去法----主元的选取与算法的稳定性问题提出:Gauss 消去法是我们在线性代数中已经熟悉的。
但由于计算机的数值运算是在一个有限的浮点数集合上进行的,如何才能确保Gauss 消去法作为数值算法的稳定性呢?Gauss 消去法从理论算法到数值算法,其关键是主元的选择。
浙江大学城市学院实验报告
课程名称计算方法
实验项目名称矩阵特征值与特征向量
实验成绩指导老师(签名)日期
一. 实验目的和要求
1.利用Matlab软件掌握求矩阵的特征值和特征向量的幂法和反幂法。
二. 实验内容和原理
分析应用题要求将问题的分析过程、Matlab源程序、运行结果和结果的解释、算法的分析等写在实验报告上。
2-1 编写用幂法和反幂法求矩阵的主特征值和特征向量的程序。
幂法:
function [t,y]=lpower(A,x0,eps,N)
k=1;
z=0;
y=x0./max(abs(x0));
x=A*y;
b=max(x);
if abs(z-b)<eps
t=max(x);
return;
end
while abs(z-b)>eps && k<N
k=k+1;
z=b;
y=x./max(abs(x));
x=A*y;
b=max(x);
end
[m,index]=max(abs(x));
t=x(index);
end。