当前位置:文档之家› 计算方法第七章上机报告

计算方法第七章上机报告

计算方法第七章上机报告
计算方法第七章上机报告

实验报告名称求解常微分方程

班级:020991 学号:02099037 姓名:杜凡成绩:

1实验目的

1)熟悉求解常微分方程初值问题的有关方法和理论,主要是改进欧拉法、四阶龙格-库塔法与阿当姆斯方法。2)会变质上述方法的计算程序,包括求解常微分方程组的计算程序。

3)通过对各种求解方法的计算实习,体会各种解法的功能、优缺点及适用场合,会选取适当的求解方法。

2 实验内容

实习题7.1用改进欧拉法与四阶龙格-库塔公式求解所给微分方程初值问题;

7.2 用四阶龙格-库塔公式解下列微分方程初值问题;

7.3用阿当姆斯方法解微分方程初值问题;

3实验步骤

7.1

1)根据改进欧拉法的算法编写改进欧拉法求微分方程的函数

// 实验环境的配置,例如添加什么函数,库,头文件等,以及你的思路都可以写。

3 程序设计

// 程序流程图、代码。

以下均用matlab编写

1)改进欧拉法

function Heun2(f,a,b,y0,n)

h=(b-a)/n;

x=a:h:b;

%ytrue=f1(-1*x);

y=y0*ones(1,n+1);

for j=2:n+1

yp=y(j-1)+h*f(x(j-1),y(j-1));

yc=y(j-1)+h*f(x(j),yp);

y(j)=(yp+yc)/2;

end

for i=1:n+1

fprintf('x[%d]=%f\t y[%d]=%f\n',i-1,x(i),i-1,y(i));

%fprintf('x[%d]=%f\t y[%d]=%f\t ytrue[%d]=%f\n',i-1,x(i),i-1,y(i),i-1,%ytrue(i));

end

4实验结果及分析

// 程序运行的结果,可以添加截图以说明问题。

7.1

1)改进欧拉法

2)四阶龙格库塔公式解方程组3)阿当姆斯方法解方程

//实验结果分析,包括误差分析和结论。

2)实验结果分析

改进欧拉公式的局部截断误差O(h^3),h=0.1,则绝对误差e<1.0*10^2.

四阶龙格库塔方法的局部截断误差为O(h^5),h=0.1,则绝对误差e<1.0*10^4.

阿当姆斯方法的局部截断误差为O(h^5),h=0.1,则绝对误差e<1.0*10^4.

5总结

// 通过本实验掌握的内容,以及在实验中遇到的问题及解决方法。

通过本实验,掌握了求解常微分方程的几种方法,包括改进欧拉法,四阶龙格库塔方法与阿当姆斯方法,并且学会了编制上述方法的程序,了解了各种解法的适用场合。6参考资料

// 学习相关理论、编写程序及为了完成实验查阅的书籍和文献

// 英文参考文献格式

// 期刊

// [序号] 主要责任者. 文献题名[J]. 刊名, 年, 卷(期): 起止页码.

// 专著、论文集、学位论文、报告

// [序号] 主要责任者. 文献题名[文献类型标识]. 出版地: 出版者, 出版年. 起止页码.

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

《计算方法》实验报告 姓名: 班级: 学号: 实验日期: 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;

计算方法上机实验报告

. / 《计算方法》上机实验报告 班级: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 四、运行结果:

计算方法上机实验报告

《计算方法》上机实验报告 班级: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 四、运行结果: 实验二:

数值计算方法教学大纲

《数值计算方法》教学大纲 课程编号:MI3321048 课程名称:数值计算方法英文名称:Numerical and Computational Methods 学时: 30 学分:2 课程类型:任选课程性质:任选课 适用专业:微电子学先修课程:高等数学,线性代数 集成电路设计与集成系统 开课学期:Y3开课院系:微电子学院 一、课程的教学目标与任务 目标:学习数值计算的基本理论和方法,掌握求解工程或物理中数学问题的数值计算基本方法。 任务:掌握数值计算的基本概念和基本原理,基本算法,培养数值计算能力。 二、本课程与其它课程的联系和分工 本课程以高等数学,线性代数,高级语言编程作为先修课程,为求解复杂数学方程的数值解打下良好基础。 三、课程内容及基本要求 (一) 引论(2学时) 具体内容:数值计算方法的内容和意义,误差产生的原因和误差的传播,误差的基本概念,算法的稳定性与收敛性。 1.基本要求 (1)了解算法基本概念。 (2)了解误差基本概念,了解误差分析基本意义。 2.重点、难点 重点:误差产生的原因和误差的传播。 难点:算法的稳定性与收敛性。 3.说明:使学生建立工程中和计算中的数值误差概念。 (二) 函数插值与最小二乘拟合(8学时) 具体内容:插值概念,拉格朗日插值,牛顿插值,分段插值,曲线拟合的最小二乘法。 1.基本要求 (1)了解插值概念。 (2)熟练掌握拉格朗日插值公式,会用余项估计误差。 (3)掌握牛顿插值公式。 (4)掌握分段低次插值的意义及方法。

(5)掌握曲线拟合的最小二乘法。 2.重点、难点 重点:拉格朗日插值, 余项,最小二乘法。 难点:拉格朗日插值, 余项。 3.说明:插值与拟合是数值计算中的常用方法,也是后续学习内容的基础。 (三) 第三章数值积分与微分(5学时) 具体内容:数值求积的基本思想,代数精度的概念,划分节点求积公式(梯形辛普生及其复化求积公式),高斯求积公式,数值微分。 1.基本要求 (1)了解数值求积的基本思想,代数精度的概念。 (2)熟练掌握梯形,辛普生及其复化求积公式。 (3)掌握高斯求积公式的用法。 (4)掌握几个数值微分计算公式。 2.重点、难点 重点:数值求积基本思想,等距节点求积公式,梯形法,辛普生法,数值微分。 难点:数值求积和数值微分。 3.说明:积分和微分的数值计算,是进一步的各种数值计算的基础。 (四) 常微分方程数值解法(5学时) 具体内容:尤拉法与改进尤拉法,梯形方法,龙格—库塔法,收敛性与稳定性。 1.基本要求 (1)掌握数值求解一阶方程的尤拉法,改进尤拉法,梯形法及龙格—库塔法。 (2)了解局部截断误差,方法阶等基本概念。 (3)了解收敛性与稳定性问题及其影响因素。 2.重点、难点 重点:尤拉法,龙格-库塔法,收敛性与稳定性。 难点:收敛性与稳定性问题。 3.说明:该内容是常用的几种常微分方程数值计算方法,是工程计算的重要基础。 (五) 方程求根的迭代法(4学时) 具体内容:二分法,解一元方程的迭代法,牛顿法,弦截法。 1.基本要求 (1)了解方程求根的对分法和迭代法的求解过程。 (2)熟练掌握牛顿法。 (3)掌握弦截法。 2.重点、难点 重点:迭代法,牛顿法。

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

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

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

西安交通大学计算方法B上机报告

计算方法上机报告

姓名: 学号: 班级:能动上课班级:

题目及求解: 一、对以下和式计算: ∑ ∞ ? ?? ??+-+-+-+=0681581482184161n n n n S n ,要求: ① 若只需保留11个有效数字,该如何进行计算; ② 若要保留30个有效数字,则又将如何进行计算; 1 算法思想 (1)根据精度要求估计所加的项数,可以使用后验误差估计,通项为: 1421114 16818485861681 n n n a n n n n n ε??= ---<< ?+++++??; (2)为了保证计算结果的准确性,写程序时,从后向前计算; (3)使用Matlab 时,可以使用以下函数控制位数: digits(位数)或vpa(变量,精度为数) 2 算法结构 ;0=s ?? ? ??+-+-+-+= 681581482184161n n n n t n ; for 0,1,2,,n i =??? if 10m t -≤ end; for ,1,2,,0n i i i =--??? ;s s t =+ 3 Matlab 源程序 clear; %清除工作空间变量 clc; %清除命令窗口命令 m=input('请输入有效数字的位数m='); %输入有效数字的位数 s=0;

for n=0:50 t=(1/16^n)*(4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6)); if t<=10^(-m) %判断通项与精度的关系break; end end; fprintf('需要将n值加到n=%d\n',n-1); %需要将n值加到的数值 for i=n-1:-1:0 t=(1/16^i)*(4/(8*i+1)-2/(8*i+4)-1/(8*i+5)-1/(8*i+6)); s=s+t; %求和运算 end s=vpa(s,m) %控制s的精度 4 结果与分析 若保留11位有效数字,则n=7,此时求解得: s =3.1415926536; 若保留30位有效数字时,则n=22, 此时求解得: s =3.8。 通过上面的实验结果可以看出,通过从后往前计算,这种算法很好的保证了计算结果要求保留的准确数字位数的要求。 二、某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示:

数值计算方法实验5

实验报告 学院(系)名称: 主程序部分列选主元部分

实验结果: 一.列主元消去法 输入各个数据,最终使用列选主元法,得到结果为:x1=x2=x3=1二.高斯-赛德尔迭代法 输入各个数据,输出每一步迭代数据,最终结果为:x1=0.285716,附录(源程序及运行结果) 一.列主元高斯消去法 #include #include void print(double a[3][3],int n,double b[3]){ printf("输出矩阵:\n"); for(int i=0;ifabs(d)){ d=a[i][k]; l=i; } i++; } printf("选出主元:%lf\n",d); if(d==0) printf("矩阵奇异!\n"); else if(l!=k){ for(int j=k;j

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; }

计算方法第二章方程求根上机报告

实验报告名称 班级:学号:姓名:成绩: 1实验目的 1)通过对二分法与牛顿迭代法作编程练习与上级运算,进一步体会二分法与牛顿迭代法的不同特点。 2)编写割线迭代法的程序,求非线性迭代法的解,并与牛顿迭代法。 2 实验内容 用牛顿法和割线法求下列方程的根 x^2-e^x=0; x*e^x-1=0; lgx+x-2=0; 3实验步骤 1)根据二分法和牛顿迭代法,割线法的算法编写相应的求根函数; 2)将题中所给参数带入二分法函数,确定大致区间; 3)用牛顿迭代法和割线法分别对方程进行求解; 3 程序设计 牛顿迭代法x0=1.0; N=100; k=0; eps=5e-6; delta=1e-6; while(1) x1=x0-fc1(x0)/fc2(x0); k=k+1; if k>N disp('Newmethod failed')

break end if(abs(x1-x0)=delta) c=x1; x1=cutnext(x0,x1); x0=c; %x0 x1μYí?μ?μ?x1 x2 è?è?±£′??úx0 x1 end k=k+1; if k>N disp('Cutline method failed') break; end if(abs(x1-x0)

《数值计算方法实习》教学大纲

《数值计算方法实习》教学大纲 Numerical Computation Method Practice 适用本科四年制信息与计算科学专业(2周 2学分) 一、课程的目的和任务 本课程的授课对象是信息与计算科学专业本科生,属信息与计算科学专业公共基础课。 数值计算方法是一门专门研究各种数学问题近似解法的课程,它是一门与计算机应用密切结合的实用性很强的数学课程。在数值计算方法课程中,讲授了各种数学问题的近似解法,这些近似解法的计算量很大,只有利用计算机计算,这些解法才具有实用意义。因而上机实习,掌握这些近似解法的计算机实现是数值计算方法课程学习的一个重要环节。 本课程实习的主要目的是通过科学计算语言MA TLAB的学习,利用MA TLAB求解各种数学问题的近似解,使学生对数值计算方法课程所学的各种近似解法能在计算机上实现,提高学生对数值计算方法课程讲授的各种数学问题近似解法的理解和掌握。 通过本实践环节,要求学生初步掌握MATLAB的使用方法,掌握利用MATLAB求解各种数学问题近似解的算法,通过上机实践,提高学生对各种数学问题近似解法的实际运用能力,并能应用所学的方法解决一些较简单的实际问题。 二、课程的基本要求和特点 本课程是一门既有系统理论又有较强实践性的技术基础课,学习本课程需坚持理论联系实际的学风,必须在学习数值计算方法课程讲授的各种数学问题近似解法的基础上,动手编写一些简单的MA TLAB程序,利用MATLAB来实现求解各种数学问题的近似解;同时要注意数学软件的使用原理及使用方法。本课程是一门实用性很强的应用数学课程。 三、本课程与其它课程的联系 本课程实习是对前期《数值计算方法》课程的巩固,数值计算方法课程涉及面较宽,必须先修课程为《数学分析》、《高等代数》、《常微分方程》、《计算机应用基础》、《数值计算方法》。 四、课程的主要内容 1 数学软件MATLAB 教学要求: 了解:MA TLAB的基本特点,MATLAB的启动方法和工作界面,MATLAB数值计算,MATLAB程序设计,MATLAB绘图。 掌握:MA TLAB的基本操作,MATLAB的基本运算。。 教学要点: (1)MATLAB的基本特点、启动方法和工作界面; (2)MATLAB的基本操作; (3)MATLAB的基本运算; (4)MATLAB数值计算; (5)MATLAB程序设计; (6)MATLAB绘图。 2数值计算方法实习 教学要求: 掌握:MATLAB数值计算语句的使用,利用MA TLAB编制程序将求解各种数学问题近似解的公式转化为计算机程序,利用MA TLAB绘图。

计算方法实验报告格式

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

形式列出,较为简单的结果可以与实验结果分析合并出现. 七、实验结果分析 实验结果分析包括对对算法的理解与分析、改进与建议. 数值实验报告范例 为了更好地做好数值实验并写出规范的数值实验报告,下面给出一简单范例供读者参考. 数值实验报告 小组名称: 小组成员(班号): 按贡献排序情况: 指导教师评语: 小组所得分数: 一、实验名称 误差传播与算法稳定性. 二、实验目的 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.用Newton 法求方程 X 7-X 4+14=0 在(0.1,1.9)中的近似根(初始近似值取为区间端点,迭代6次或误差小于0.00001)。 1.1 理论依据: 设函数在有限区间[a ,b]上二阶导数存在,且满足条件 {}α?上的惟一解在区间平方收敛于方程所生的迭代序列 迭代过程由则对任意初始近似值达到的一个中使是其中上不变号 在区间],[0)(3,2,1,0,) (') ()(],,[x |))(),((|,|,)(||)(|.4;0)(.3],[)(.20 )()(.110......b a x f x k x f x f x x x Newton b a b f a f mir b a c x f a b c f x f b a x f b f x f k k k k k k ==- ==∈≤-≠>+ 令 )9.1()9.1(0)8(4233642)(0)16(71127)(0)9.1(,0)1.0(,1428)(3 2 2 5 333647>?''<-=-=''<-=-='<>+-=f f x x x x x f x x x x x f f f x x x f 故以1.9为起点 ?? ?? ? ='- =+9.1)()(01x x f x f x x k k k k 如此一次一次的迭代,逼近x 的真实根。当前后两个的差<=ε时,就认为求出了近似的根。本程序用Newton 法求代数方程(最高次数不大于10)在(a,b )区间的根。

1.2 C语言程序原代码: #include #include main() {double x2,f,f1; double x1=1.9; //取初值为1.9 do {x2=x1; f=pow(x2,7)-28*pow(x2,4)+14; f1=7*pow(x2,6)-4*28*pow(x2,3); x1=x2-f/f1;} while(fabs(x1-x2)>=0.00001||x1<0.1); //限制循环次数printf("计算结果:x=%f\n",x1);} 1.3 运行结果: 1.4 MATLAB上机程序 function y=Newton(f,df,x0,eps,M) d=0; for k=1:M if feval(df,x0)==0 d=2;break else x1=x0-feval(f,x0)/feval(df,x0); end e=abs(x1-x0); x0=x1; if e<=eps&&abs(feval(f,x1))<=eps d=1;break end end

《大数据分析与挖掘》课程教学大纲

《大数据分析与挖掘》课程教学大纲 一、课程基本信息 课程代码:16054103 课程名称:大数据分析与挖掘 英文名称:Big data analysis and mining 课程类别:专业选修课 学时:48(理论课:32, 实验课:16) 学 分:3 适用对象: 软件工程专业、计算机科学与技术 考核方式:考查 先修课程:多媒体技术、程序设计、软件工程 二、课程简介 本课程从大数据挖掘分析技术实战的角度,结合理论和实践,全方位地介绍基于Python语言的大数据挖掘算法的原理与使用。本课程涉及的主题包括基础篇和实战篇两部分, 其中基础篇包括:数据挖掘基础,Python数据分析简介,数据探索,数据预处理和挖掘建模;实战篇包括:电力窃漏电用户自动识别,航空公司客户价值分析,中医证型关联规则挖掘,基于水色图像的水质评价,家用电器用户行为分析与事件识别,应用系统负载分析与磁盘容量预测和电子商务网站用户行为分析及服务推荐。 本课程不是一个泛泛的理论性、概念性的介绍课程,而是针对问题讨论基于Python语言机器学习模型解决方案的深入课程。教师对于上述领域有深入的理论研究与实践经验,在课程中将会针对这些问题与学员一起进行研究,在关键点上还会搭建实验环境进行实践研究,以加深对于这些解决方案的理解。通过本课程学习,目的是让学生能够扎实地掌握大数据分析挖掘的理论与应用。 This course introduces the principle and application of big data mining algorithm based on Python language comprehensively from the perspective of big data mining analysis technology practice, combining theory and practice. This course covers two parts, the basic part and the practical part. The basic part includes: basic data mining, introduction to Python data analysis, data exploration, data preprocessing and mining modeling. Practical article included: electric power leakage automatic identification of the user, airlines customer value analysis, TCM syndrome association rule mining, based on water quality evaluation of color image, household electrical appliances

计算方法上机实习题大作业(实验报告).

计算方法实验报告 班级: 学号: 姓名: 成绩: 1 舍入误差及稳定性 一、实验目的 (1)通过上机编程,复习巩固以前所学程序设计语言及上机操作指令; (2)通过上机计算,了解舍入误差所引起的数值不稳定性 二、实验内容 1、用两种不同的顺序计算10000 21n n -=∑,分析其误差的变化 2、已知连分数() 1 01223//(.../)n n a f b b a b a a b =+ +++,利用下面的算法计算f : 1 1 ,i n n i i i a d b d b d ++==+ (1,2,...,0 i n n =-- 0f d = 写一程序,读入011,,,...,,,...,,n n n b b b a a 计算并打印f 3、给出一个有效的算法和一个无效的算法计算积分 1 041 n n x y dx x =+? (0,1,...,1 n = 4、设2 2 11N N j S j == -∑ ,已知其精确值为1311221N N ?? -- ?+?? (1)编制按从大到小的顺序计算N S 的程序 (2)编制按从小到大的顺序计算N S 的程序 (3)按两种顺序分别计算10001000030000,,,S S S 并指出有效位数 三、实验步骤、程序设计、实验结果及分析 1、用两种不同的顺序计算10000 2 1n n -=∑,分析其误差的变化 (1)实验步骤: 分别从1~10000和从10000~1两种顺序进行计算,应包含的头文件有stdio.h 和math.h (2)程序设计: a.顺序计算

#include #include void main() { double sum=0; int n=1; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0)printf("sun[%d]=%-30f",n,sum); if(n>=10000)break; n++; } printf("sum[%d]=%f\n",n,sum); } b.逆序计算 #include #include void main() { double sum=0; int n=10000; while(1) { sum=sum+(1/pow(n,2)); if(n%1000==0) printf("sum[%d]=%-30f",n,sum); if(n<=1)break; n--; } printf("sum[%d]=%f\n",n,sum); } (3)实验结果及分析: 程序运行结果: a.顺序计算

计算方法实验报告 拟合

南京信息工程大学实验(实习)报告 一、实验目的: 用最小二乘法将给定的十个点拟合成三次多项式。 二、实验步骤: 用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 结论: 一般情况下,拟合函数使得所有的残差为零是不可能的。由图形可以看出最小二乘解决了残差的正负相互抵消的问题,使得拟合函数更加密合实验数据。 优点:曲线拟合是使拟合函数和一系列的离散点与观测值的偏差平方和达到最小。 缺点:由于计算方法简单,若要保证数据的精确度,需要大量的数据代入计算。

数值计算方法大纲

数值分析 一、课程名称:数值分析(Numerical Analysis ) 课程负责人:邹昌文 二、学时与学分:64学时,4学分 三、适用专业:信息与计算科学 四、课程教材:李有法编. 数值计算方法. 高等教育出版社,1996 五、参考教材:杜延松编. 数值分析及实验. 科学出版社,2006 丁丽娟编. 数值计算方法. 北京理工大学出版社,1997 郑咸义编.计算方法. 华南理工大学出版社,2002 六、开课单位:理学院 七、课程的性质、目的和任务: 本课程是计算机科学与技术本科专业的一门专业基础课,是培养学生掌握计算机上常用的数值分析方法以及有关的基本概念与理论的专业基础学科。 本课程的主要任务是,通过对数值分析内容的讲解,培养学生使用所学方法进行科学计算的能力,着重培养学生用数学的思想去指导编程的能力。 八、课程的基本要求: 通过理论教学达到如下基本要求。 1.了解误差的概念 2.掌握常用的解非线性方程根的方法 3.熟练掌握线性代数方法组的解法 4.熟练掌握插值与拟合的常用方法 5.掌握数值积分方法 6.了解常微分方程初值问题的数值方法 九、课程的主要内容: 理论教学 1. 误差的概念 误差的来源、绝对误差、相对误差、有效数字、误差的传播、数值运算中应注意的问题 2. 解非线性方程根的方法 二分法、迭代法、牛顿迭代法、迭代法的收敛阶与加速收敛方法 3. 线性代数方法组的解法 高斯消去法、三角分析法、向量与矩阵的范数、迭代法、方程组的状态与解的迭代改善 4. 插值与拟合 插值概念与基本理论、插值多项式的存在唯一性、插值多项式的求法、分段低次插值、曲线拟合的最小二乘法 5. 数值积分方法 构造数值积分公式的基本方法与有关概念、牛顿-科茨公式 6. 常微分方程初值问题的数值方法 欧拉方法与改进欧拉方法、龙格-库塔法

计算方法B上机报告

计算方法B 上机报告 第1题 某通信公司在一次施工中,需要在水面宽度为20米的河沟底部沿直线走向铺设一条沟底光缆。在铺设光缆之前需要对沟底的地形进行初步探测,从而估计所需光缆的长度,为工程预算提供依据。已探测到一组等分点位置的深度数据(单位:米)如下表所示: (1)请用合适的曲线拟合所测数据点; (2)估算所需光缆长度的近似值,并作出铺设河底光缆的曲线图; 问题分析和算法思想: 本题的主要目的是对21个测量数据进行拟合,同时对拟合曲线进行线积分即可得到河底光缆长度的近似值,可以用的插值方法很多:多项式插值、Lagrange 插值、Newton 插值、三次样条插值等。由于数值点较多时,采用高次多项式插值将产生很大的误差,用拉格朗日插值多项式会出现龙格现象。故为了将所有的数据点都用上,且题中光缆为柔性,可光滑铺设于水底,鉴于此特性,采用三次样条插值的方法较为合适。 计算光缆长度近似值,只需将每两点之间的距离算出,然后依次相加,所得的折线长度,即为光缆长度的近似值。 光缆长度计算公式: 19 1 k k k l +===∑? ? ? 算法结构: 三次样条算法结构见《计算方法教程》P110。 源程序: clear;clc; x=0:20;

y=[9.01 8.96 7.96 7.97 8.02 9.05 10.13 11.18 12.26 13.28 13.32 12.61 11.29 10.22 9.15 7.90 7.95 8.86 9.81 10.80 10.93]; d=y; plot(x,y,'k.','markersize',15) hold on %%%计算二阶差商 for k=1:2 for i=21:-1:(k+1) d(i)=(d(i)-d(i-1))/(x(i)-x(i-k)); end end %%%假定d的边界条件,采用自然三次样条 for i=2:20 d(i)=6*d(i+1); end d(1)=0; d(21)=0; %%%追赶法求解带状矩阵的m值 a=0.5*ones(1,21); b=2*ones(1,21); c=0.5*ones(1,21); a(1)=0;c(21)=0; u=ones(1,21); u(1)=b(1); r=c; yy(1)=d(1); %%%追的过程 for k=2:21 l(k)=a(k)/u(k-1); u(k)=b(k)-l(k)*r(k-1); yy(k)=d(k)-l(k)*yy(k-1); end %%%赶的过程 m(21)=yy(21)/u(21); for k=20:-1:1 m(k)=(yy(k)-r(k)*m(k+1))/u(k); end %%%利用插值点画出拟合曲线 k=1; nn=100; xx=linspace(0,20,nn); l=0; for j=1:nn for i=2:20 if xx(j)<=x(i) k=i;

计算方法实验报告册

实验一——插值方法 实验学时:4 实验类型:设计 实验要求:必修 一 实验目的 通过本次上机实习,能够进一步加深对各种插值算法的理解;学会使用用三种类型的插值函数的数学模型、基本算法,结合相应软件(如VC/VB/Delphi/Matlab/JAVA/Turbo C )编程实现数值方法的求解。并用该软件的绘图功能来显示插值函数,使其计算结果更加直观和形象化。 二 实验内容 通过程序求出插值函数的表达式是比较麻烦的,常用的方法是描出插值曲线上尽量密集的有限个采样点,并用这有限个采样点的连线,即折线,近似插值曲线。取点越密集,所得折线就越逼近理论上的插值曲线。本实验中将所取的点的横坐标存放于动态数组[]X n 中,通过插值方法计算得到的对应纵坐标存放 于动态数组[]Y n 中。 以Visual C++.Net 2005为例。 本实验将Lagrange 插值、Newton 插值和三次样条插值实现为一个C++类CInterpolation ,并在Button 单击事件中调用该类相应函数,得出插值结果并画出图像。CInterpolation 类为 class CInterpolation { public : CInterpolation();//构造函数 CInterpolation(float *x1, float *y1, int n1);//结点横坐标、纵坐标、下标上限 ~ CInterpolation();//析构函数 ………… ………… int n, N;//结点下标上限,采样点下标上限 float *x, *y, *X;//分别存放结点横坐标、结点纵坐标、采样点横坐标 float *p_H,*p_Alpha,*p_Beta,*p_a,*p_b,*p_c,*p_d,*p_m;//样条插值用到的公有指针,分别存放 i h ,i α,i β,i a ,i b ,i c ,i d 和i m }; 其中,有参数的构造函数为 CInterpolation(float *x1, float *y1, int n1) { //动态数组x1,y1中存放结点的横、纵坐标,n1是结点下标上限(即n1+1个结点) n=n1; N=x1[n]-x1[0]; X=new float [N+1]; x=new float [n+1]; y=new float [n+1];

计算方法课程教学大纲解答

计算方法》课程教学大纲 课程编号: 学时:54 学分:3 适用对象:教育技术学专业先修课程:高等数学、线性代数 考核方式:本课程考试以笔试为主70%,兼顾学生的平时成绩30%。使用教材及主要参考书:使用教材: 李庆扬. 《数值分析(第四版)》, 清华大学出版,2014 年。 主要参考书: 1.朱建新,李有法. 《高等学校教材:数值计算方法(第3版)》,高等教育出版社,2012 2.徐萃薇,孙绳武. 《计算方法引论(第4版)》,高等教育出版社,2015 。 一课程的性质和任务计算方法是教育技术学专业学生的一门专业选修课。作为计算数学的一个重要分支,它是数学科学与计算机技术结合的一门应用性很强的学科,本课程重点介绍计算机上常用的基本计算方法的原理和使用;同时对计算方法作适当的分析。 教学任务:通过本课程的学习,要使学生具有现代数学的观点和方法,并初步掌握处理计算机常用数值分析的构造思想和计算方法。同时,也要培养学生抽象思维和慎密概括的能力,使学生具有良好的开拓专业理论的素质和使用所学知识分析和解决实际问题的能力。 二教学目的与要求教学目的:通过学习使学生了解数值计算方法的基本原理。了解计算机与数学结合的作用及课程的应用性。为今后使用计算机解决实际问题中的数值计算问题打下基础。 通过理论教学达到如下基本要求。 1.了解误差的概念2.掌握常用的解非线性方程根的方法3.熟练掌握线性代数方法组的解法4.熟练掌握插值与拟合的常用方法5.掌握数值积分方法 6.了解常微分方程初值问题的数值方法 三学时分配

四教学中应注意的问题 本课程是一门理论性较强、内容较抽象的综合课程,因此面授辅导或自学,将是不可缺少的辅助教学手段,教师在教学的过程中一定要注意理论结合实际,课堂教学并辅助上机实验,必须通过做练习题和上机实践来加深对概念的理解和掌握,熟悉公式的运用,从而达到消化、掌握所学知识的目的。同时应注重面授辅导或答疑,及时解答学生的疑难问题。五教学内容 第一章绪论(误差) 基本内容: 第一节数值分析研究的对象和特点 第二节数值计算的误差 1.误差的来源与分类 2.误差与有效数字 3.数值运算的误差估计 第三节误差的定性分析与避免误差的危害 1.病态问题与条件数 2.算法的数值稳定性 3.避免误差危害的若干原则教学重点难点: 重点:数值运算的误差估计 难点:误差的定性分析与避免误差的危害。 教学建议: 了解数值分析的背景、对象与特点。理解误差的来源与分类、有效数字、误差估计、算法的数值稳定性与病态算法。熟练掌握与误差相关的概念以及避免误差危害的若干原则。第二章插值法基本内容: 第一节引言 第二节拉格朗日插值 1.线性插值与抛物插值 2.拉格朗日插值多项式 3.插值余项、误差估计

相关主题
文本预览
相关文档 最新文档