12级数值分析课程设计

合集下载

12级课程设计题目及要求

12级课程设计题目及要求

12级数据结构课程设计题目及要求一、课程设计目的《数据结构》是计算机专业一门重要的专业技术基础课程,是一门关键性核心课程。

《数据结构》课程的目标是使学生学会分析研究计算机加工对象的特性,选择合适的数据结构和存储表示,以及编制相应的实现算法,培养和提高学生程序设计的能力。

《数据结构》课程也是一门实践性较强的课程,设置实践环节是十分重要的。

本课程设计的目标就是要达到理论与实际应用相结合,提高学生组织数据及编写大型程序的能力,并培养基本的、良好的程序设计技能以及合作能力。

二、课程设计内容题目一:仓库管理系统(线性表应用)[问题描述]建立一个仓库管理程序,可以按顺序和货物名称查询仓库存储情况,也可以增加、修改或删除货物以及建立新的仓库存储系统。

[实现提示]可以采用双向链表的存储结构,如可定义如下的存储结构:typedef struct dnode /*定义单向链表结构体*/{int number; /*货物编号*/char name[max]; /*货物名称*/int counter; /*货物数量*/struct dnode *prior,*next; /*定义指针*/}dlnode;题目二:学生成绩管理系统(线性表应用)[问题描述]提供身份验证,和使用系统的权限设置、判定。

教师用户能实现本班同学各学期各科成绩的录入、编辑,数据必须保存在文件中,以便反复使用。

学生用户提供对学号或姓名,各学期、各学科成绩的查询。

学生和教师用户能按各学期、各学科分数排序输出。

教师用户能统计各科成绩分数段的分布,并输出。

[实现提示]1、操作界面美观、友好,有必要的容错处理。

2、分数段统计结果要求保存在单独的文件中。

题目三:员工通讯录管理系统(线性表应用)[问题描述]建立一个通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号、及电子邮箱。

其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录表的输出。

大学数值分析课程设计

大学数值分析课程设计

大学数值分析课程设计一、课程目标知识目标:1. 理解数值分析的基本概念,掌握数值计算方法及其数学原理;2. 掌握线性代数、微积分等基本数学工具在数值分析中的应用;3. 学会分析数值算法的稳定性和误差,评估数值结果的正确性。

技能目标:1. 能够运用数值分析方法解决实际工程和科学研究问题;2. 掌握常用数值分析软件的使用,提高数据处理和问题求解的效率;3. 培养编程实现数值算法的能力,提高解决复杂问题的技能。

情感态度价值观目标:1. 培养学生对数值分析的浓厚兴趣,激发学习积极性;2. 培养学生的团队合作精神,提高沟通与协作能力;3. 增强学生的数学素养,使其认识到数学在科学研究和社会发展中的重要性。

课程性质分析:本课程为大学数值分析课程,旨在教授学生数值计算的基本理论和方法,培养学生解决实际问题的能力。

学生特点分析:学生具备一定的高等数学基础,具有较强的逻辑思维能力和抽象思维能力。

教学要求:1. 注重理论与实践相结合,提高学生的实际操作能力;2. 鼓励学生主动参与讨论,培养学生的创新意识和解决问题的能力;3. 结合实际案例,强化学生对数值分析在工程和科研中的应用认识。

二、教学内容1. 数值分析基本概念:包括误差分析、稳定性、收敛性等;教材章节:第一章 数值分析概述2. 数值线性代数:矩阵运算、线性方程组求解、特征值与特征向量计算等;教材章节:第二章 线性代数的数值方法3. 数值微积分:数值积分、数值微分、常微分方程数值解等;教材章节:第三章 微积分的数值方法4. 非线性方程与系统求解:迭代法、牛顿法、弦截法等;教材章节:第四章 非线性方程与系统的数值解法5. 优化问题的数值方法:线性规划、非线性规划、最小二乘法等;教材章节:第五章 优化问题的数值方法6. 数值模拟与数值实验:蒙特卡洛方法、有限元方法、差分方法等;教材章节:第六章 数值模拟与数值实验7. 数值软件应用:MATLAB、Python等数值计算软件在数值分析中的应用;教材章节:第七章 数值软件及其应用教学进度安排:第1-2周:数值分析基本概念第3-4周:数值线性代数第5-6周:数值微积分第7-8周:非线性方程与系统求解第9-10周:优化问题的数值方法第11-12周:数值模拟与数值实验第13-14周:数值软件应用及综合案例分析教学内容确保科学性和系统性,注重理论与实践相结合,提高学生的实际操作能力。

列主消元法课程设计

列主消元法课程设计

《数值分析》课程设计列主消元法解方程组院(系)名称信息工程学院专业班级学号学生姓名指导教师2013 年05 月31日数值分析课程设计评阅书题目列主消元法解方程组学生姓名学号指导教师评语及成绩指导教师签名:年月日答辩评语及成绩答辩教师签名:年月日教研室意见总成绩:教研室主任签名:年月日课程设计任务书2012—2013学年第二学期专业班级:学号:姓名:课程设计名称:数值分析Ⅰ、Ⅱ设计题目:列主消元法解方程组完成期限:自2013 年05月21 日至2013年05 月31日共10天设计依据、要求及主要内容:一、设计目的熟练掌握求解方程组的列主消元法,并应用Matlab软件编写列主消元法解方程组的程序,应用列主消元法求解线性方程组.二、设计内容(1) 掌握列主消元法的背景及其构造原理;(2) 编写列主元高斯消去法和列主消元法的Matlab程序;(3) 调用编写的函数求解方程组;(4) 通过所学知识对列主消元法有一个充分的认识并对该课程设计进行总结.三、设计要求1.了解列主消元法的背景及构造原理.2.正确编写列主消元法的MATLAB程序并调用求解方程组.3. 对列主消元法求解方程组有一个充分认识,并进行总结.计划答辩时间:2013年06 月 5 日工作任务与工作量要求:查阅文献资料不少于3篇,课程设计报告1篇不少于3000字.指导教师(签字):教研室主任(签字):批准日期:2013 年05 月20 日列主消元法解方程组摘要在自然科学和工程中有很多问题的解决归结为求解线性方程组或者非线性方程组的数学问题。

求解线性方程组的直接法主要有选主元高斯消去法、平方根法、追赶法等.列主元素消去法既是选主元高斯消去法的一种,也是实际计算中常用的部分选主元消去法.本文即是讨论利用列主元素消去法求解线性方程组问题.通过掌握的列主消元法的背景及构造原理,编写MATLAB程序并调用函数成功求解线性方程组.并对其结果进行分析与讨论,得到结果比之高斯法更为精确.关键词:列主消元法,MATLAB,线性方程组目录1 前言 (1)2 列主元消去法的背景 (1)3 列主元消去法的构造原理 (2)3.1 列主高斯消元法 (4)4 MATLAB程序实现 (5)4.1 列主高斯消元法 (7)5算法分析 (9)总结 (10)参考文献 (10)1 前言在科学研究和工程技术中有许多问题可归结为求解线性代数方程组,其中所产生的线性方程组,其系数矩阵大致可分为两种:一种是低阶稠密矩阵;另一类是大型稀疏矩阵(此类矩阵阶数高,但零元素较多).对于这两种矩阵,我们可以把线性代数方程组的数值解法大致的分为两类:直接法和迭代法。

《数值分析课程设计》课程教学大纲(本科)

《数值分析课程设计》课程教学大纲(本科)

《数值分析课程设计》教学大纲课程编号:sx080课程名称:数值分析英文名称:Numerical Analysis课程类型:实践教学课程要求:必修学时/学分:1周/I开课学期:4适用专业:数学与应用数学授课语言:中文课程网站:超星泛雅平台一、课程设计性质与任务数值分析课程设计是一门借助计算机实现数值计算方法设计的课程。

通过数值算法基本理论和实现能力的训练,具有利用计算机实现算法的能力,具有分析和优化算法能力;通过查找文献熟悉科学与工程计算问题中的领先的数值算法理论,形成自主学习以及独立设计和运用数值算法解决实际问题的能力。

二、课程设计与其他课程或教学环节的联系先修课程:《数值分析》,《C语言程序设计》后续课程:《数学模型》、《微分方程数值解法》联系:《数值分析》是数值分析课程设计的理论基础,《C语言程序设计》是数值分析课程设计实现工具之一。

数值分析课程设计为《微分方程数值解》的算法实现提供算法基础,为《数学模型》中数学问题的求解提供了一种重要的实现手段。

三、课程设计教学目标1 .通过应用C语言、Matlab等计算机语言,使学生具有编程实现数值算法并解决实际问题的能力;(支撑毕业要求指标点5.1)2.通过基本算法原理的学习与实现,具有优化算法和根据具体问题改进算法的能力;(支撑毕业要求指标点3.3)3.通过查阅资料和应用数值算法解决实际科学问题,形成学生的自主学习意识和有效的学习方法。

(支撑毕业要求指标点12.1)四、教学内容、基本要求与学时分配课程思政元素案例解析:1 .崇尚科学,敢于创新通过从牛顿法到其变形方法这样一个循序渐进的算法改进过程,来向学生阐释什么叫科学研究无止境,从而培养学生的永不满足的科学精神,激发学生努力学习,掌握好知识,敢于创新的精神。

2.热爱祖国,奋发图强在讲授数值积分的梯形公式和辛普森公式时,将会给同学们介绍华罗庚先生写的一本书——《数值积分及其应用》,突出介绍华罗庚先生与王元教授合作在数值积分方法与应用等的研究成果,并同时介绍了华罗庚先生的生平事迹,特别是他放弃美国优越生活条件和良好的科研环境,克服重重困难回到祖国怀抱,投身我国数学科研事业,为中国数学事业发展做出了杰出的贡献,被誉为“人民的数学家”,激发学生的爱国热情。

数值分析方法课程设计

数值分析方法课程设计

数值分析方法课程设计背景介绍数值分析是一门研究求解各种数学问题的有效数值计算方法的学科,其应用广泛,如科学计算、工程设计和金融计算等领域。

在数值分析中,许多方法依赖于计算机的计算能力。

此外,数值分析还需要对数学理论和计算机科学两方面的知识有较深的理解。

本课程设计旨在通过实践,帮助学生深入了解数值分析方法及其应用,并提高学生的计算机编程能力。

课程设计目标•熟练掌握数值分析中的基本算法和方法,如插值法、数值积分等•能够将所学算法应用于实际问题,并编写可靠的程序解决问题•加深对计算机编程的理解和掌握,增强编程实践和创新能力•提高对数值分析和计算机科学交叉领域的理解课程内容第一部分:基本算法和方法1.数值微积分基本概念和原理2.插值法及其在实际中的应用3.数值积分的基本方法和理论基础4.常微分方程常用数值解法第二部分:实践应用与编程实现1.利用插值法和数值积分求解实际问题2.实现数值微积分和常微分方程的求解程序3.利用现有的数值分析软件解决实际问题,如 MATLAB 和 Python 等课程设计方案1.向学生介绍数值分析基本算法和方法,并讲解其理论基础和实际应用。

2.向学生提供一些实际问题,引导学生根据所学算法和方法进行求解。

3.给予学生一定的编程实践机会,让他们能够将所学算法实现为程序,并运用到具体的问题中。

4.通过课程作业、仿真实验等形式对学生进行考核和评价,确保学生能够有效掌握所学知识和能力。

评价标准1.学生掌握数值分析基本算法和方法的程度2.学生在实际问题中应用所学算法的能力3.学生编程实践和创新能力的水平4.学生对数值分析和计算机科学交叉领域的理解总结本课程设计旨在培养学生的数值分析和计算机编程实践,通过课程作业和编程实践等形式将理论知识与实际问题相结合,提高学生的实践应用能力。

同时,本课程设计也为学生未来的研究和工作提供了一定的基础。

数值分析课程设计(最终版)

数值分析课程设计(最终版)

数值分析课程设计(最终版)本⽂主要通过Matlab 软件,对数值分析中的LU 分解法、最⼩⼆乘法、复化Simpon 积分、Runge-Kutta ⽅法进⾏编程,并利⽤这些⽅法在MATLAB 中对⼀些问题进⾏求解,并得出结论。

实验⼀线性⽅程组数值解法中,本⽂选取LU 分解法,并选取数据于《数值分析》教材第5章第153页例5进⾏实验。

所谓LU 分解法就是将⾼斯消去法改写为紧凑形式,可以直接从矩阵A 的元素得到计算L 、U 元素的递推公式,⽽不需要任何步骤。

⽤此⽅法得到L 、U 矩阵,从⽽计算Y 、X 。

实验⼆插值法和数据拟合中,本⽂选取最⼩⼆乘拟合⽅法进⾏实验,数据来源于我们课堂学习该章节时的课件中的多项式拟合例⼦进⾏实验。

最⼩⼆乘拟合是⼀种数学上的近似和优化,利⽤已知的数据得出⼀条直线或者曲线,使之在坐标系上与已知数据之间的距离的平⽅和最⼩。

利⽤excel 的⾃带函数可以较为⽅便的拟合线性的数据分析。

实验三数值积分中,本⽂选取复化Simpon 积分⽅法进⾏实验,通过将复化Simpson 公式编译成MATLAB 语⾔求积分∫e ;x dx 10完成实验过程的同时,也对复化Simpon 积分章节的知识进⾏了巩固。

实验四常微分⽅程数值解,本⽂选取Runge-Kutta ⽅法进⾏实验,通过实验了解Runge-Kutta 法的收敛性与稳定性同时学会了学会⽤Matlab 编程实现Runge-Kutta 法解常微分⽅程,并在实验的过程中意识到尽管我们熟知的四种⽅法,事实上,在求解微分⽅程初值问题,四阶法是单步长中最优秀的⽅法,通常都是⽤该⽅法求解的实际问题,计算效果⽐较理想的。

实验五数值⽅法实际应⽤,本⽂采⽤最⼩⼆乘法拟合我国2001年到2015年的⼈⼝增长模型,并预测2020年我国⼈⼝数量。

关键词:Matlab ;LU 分解法;最⼩⼆乘法;复化Simpon 积分;Runge-Kutta⼀.LU分解法 (1)1.1实验⽬的 (1)1.2基本原理 (1)1.3实验内容 (2)1.4数据来源 (3)1.5实验结论 (3)⼆.Lagrange插值 (4)2.1实验⽬的 (4)2.2基本原理 (5)2.3实验内容 (5)2.4数据来源 (6)2.5实验结论 (6)三.复化simpon积分 (7)3.1实验⽬的 (7)3.2基本原理 (7)3.3实验内容 (7)3.4数据来源 (8)3.5实验结论 (8)四.Runge-Kutta⽅法 (9)4.1实验⽬的 (9)4.2基本原理 (9)4.3实验内容 (10)4.4数据来源 (11)4.5实验结论 (11)五.数值⽅法实际应⽤ (11)5.1实验⽬的 (11)5.2基本原理 (12)5.3实验内容 (12)5.4数据来源 (13)5.5实验结论 (13)总结 (16)参考⽂献 (17)⼀.LU 分解法1.1实验⽬的[1] 了解LU 分解法的基本原理和⽅法;[2] 通过实例掌握⽤MATLAB 求线性⽅程组数值解的⽅法; [3] 编程实现LU 分解1.2基本原理对于矩阵A ,若存在⼀个单位下三⾓矩阵L 和⼀个上三⾓U ,使得A =LU (1.1)。

《数值分析》课程设计

《数值分析》课程设计

1.直接三角形分解#include<stdio.h>#include<math.h>#define N 10double a[N][N],b[N],X[N],Y[N],u[N][N],v[N][N],c[N][N];int n;void input(){int i,j;printf("请输入矩阵的阶数n=");scanf("%d",&n);printf("请输入矩阵的各项元素(按矩阵形式输入以空格隔开)a[n][n]:\n");for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%lf",&a[i][j]);printf("请输入矩阵的常数列:\n");for(i=0;i<n;i++)scanf("%lf",&b[i]);}void solveUandV(){int i,j,k;double temp1,temp2;for(i=n-1;i>=0;i--){for(j=i;j>=0;j--){temp1=0;for(k=i+1;k<n;k++){temp1+=u[j][k]*v[k][i];}u[j][i]=a[j][i]-temp1;temp2=0;for(k=i+1;k<N;k++){temp2+=u[i][k]*v[k][j];}v[i][j]=(a[i][j]-temp2)/u[i][i];}}printf("上三角u为:\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%lf\t",u[i][j]);printf("\n");}printf("下三角单位矩阵v为:\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%lf\t",v[i][j]);printf("\n");}}void substituting(){int i,j;double temp1,temp2;printf("中间解Y=\n");for(i=n-1;i>=0;i--){temp1=0;for(j=i+1;j<n;j++)temp1+=Y[j]*u[i][j];Y[i]=(b[i]-temp1)/u[i][i];printf("%lf\t\t",Y[i]);}printf("\n");for(i=0;i<n;i++){temp2=0;for(j=0;j<i;j++){temp2+=X[j]*v[i][j];}X[i]=Y[i]-temp2;}}void verification(){int i,j,k;double t;for(i=0;i<n;i++){for(j=0;j<n;j++){t=0;for(k=0;k<n;k++)t+=u[i][k]*v[k][j];c[i][j]=t;}}printf("原系数矩阵为:\n");for(i=0;i<n;i++){for(j=0;j<n;j++)printf("%lf\t",c[i][j]);printf("\n");}}void output(){int i;printf("方程的解为:\n");for(i=0;i<n;i++)printf("x[%d]= %lf\n",i,X[i]); }void main(){input();solveUandV();substituting();verification();output();}结果:#include"iostream.h"#include"math.h"#define e 0.00000000000001 double f(double x){double y;if (x==0){return y=1.0;}else y=sin(x)/x;return y;}void romberg(double a,double b) {int n=1,k=0;double h,T2,S2=0,C2=0,R2=0,T1,C1,S1,R1;h=(b-a)/2;T2=h*(f(a)+f(b));while (fabs((R2-R1))>e){R1=R2;T1=T2;S1=S2;C1=C2;double sum=0;int i;for(i=1;i<=n;i++){sum=sum+f(a+(2*i-1)*h);}T2=T1/2+sum*h;S2=(4*T2-T1)/3;C2=(16*S2-S1)/15;R2=(64*C2-C1)/63;n=n*2;k++;h=h/2;}cout<<"*****最后结果为:"<<"I="<<R2<<endl;}void main(){double a,b;cout<<"***输入上下限a,b的值用空格隔开***"<<endl;cin>>a>>b;cout<<"***下限a="<<a<<endl;cout<<"***上限b="<<b<<endl;cout<<"***被积函数为:y=sin(x)/x"<<endl;cout<<"*********************结果如下*********************"<<endl;romberg(a,b);}牛顿插值:#include <iostream.h>#include <math.h>void main(){int n,i,j;double A[50][50];double x[50],y[50];double K=1,X=0,N=0,P;cout<<"请输入所求均差阶数:";cin>>n;for(i=0;i<=n;i++){cout<<"请输入x"<<i<<"=";cin>>x[i];cout<<"请输入y"<<i<<"=";cin>>y[i];A[i][0]=x[i]; A[i][1]=y[i];}for(j=2;j<=n+1;j++){for(i=1;i<=n;i++){A[i][j]=(A[i][j-1]-A[i-1][j-1])/(A[i][0]-A[i-j+1][0]);}}for(i=0;i<=n;i++){cout<<"输出第"<<i<<"阶均差为:"<<A[i][i+1]<<endl;}cout<<"请所要代入计算的x的值:X=";cin>>X;for(i=0;i<n;i++){K*=X-x[i];N+=A[i+1][i+2]*K;P=A[0][1]+N;}cout<<"所要求的函数值为:y="<<P<<endl;}(1)Jacobi迭代法#include<stdio.h>#include<math.h>void main(){float a[10][11],x1[10],x2[10],temp=0,fnum=0; int i,j,n,bk=0;printf("输入方程组的未知数的个数(n<10):\nn="); scanf("%d",&n);for(i=1;i<n+1;i++)x1[i]=0;printf("\n输入方程组的系数矩阵:\n");for(i=1;i<n+1;i++){j=1;while(j<n+1){printf("a%d%d=",i,j);scanf("%f",&a[i][j]);j++;}}printf("输入方程组的常数项:\n");for(i=1;i<n+1;i++){printf("b%d=",i);scanf("%f",&a[i][n+1]);}printf("\n");while(bk!=1){for(i=1;i<n+1;i++){for(j=1;j<n+1;j++){if (j!=i)temp=a[i][j]*x1[j]+temp;}x2[i]=(a[i][n+1]-temp)/a[i][i]; temp=0;}for(i=1;i<n+1;i++){fnum=float(fabs(x1[i]-x2[i])); if(fnum>temp) temp=fnum;}if(temp<=pow(10,-4)) bk=1;for(i=1;i<n+1;i++)x1[i]=x2[i];}printf("原方程组的解为:\n");for(i=1;i<n+1;i++){printf("x%d=%7.4f ",i,x1[i]); printf("\n");}}(2)Gauss-Seidel迭代法# include <stdio.h># include <math.h>double sd(double c[3][3],double d[3],int n,double x[3],double ep,int ip,int nmax) {int i,j,k;double emax,s;k=0;do{emax=0;for(i=0;i<n;i++){s=d[i];for(j=0;j<n;j++){s=s+c[i][j]*x[j];}if(fabs(s-x[i])>emax) emax=fabs(s-x[i]);x[i]=s;}k=k+1;}while((emax>ep)&&(k<nmax));if(k>=nmax) ip=-1;else ip=1;return(x[0],x[1],x[2]);}void main(){double ep;int n,ip,nmax;double c[3][3]={{0,0.2,0.1},{0.2,0,0.1},{0.2,0.4,0}};static double d[3]={0.3,1.5,2};static double x[3]={0,0,0};n=3;ip=1;ep=0.000001;nmax=10;sd(c,d,3,x,ep,ip,nmax);if(ip==1){printf("Guass-Seideln");printf("the solution of equestion:n");printf("x1=%1.10fnx2=%1.10fnx3=%1.10fn",x[0],x[1],x[2]);} else printf("seidel method is failure");}。

(完整word版)数值分析课程设计含代码

(完整word版)数值分析课程设计含代码

成绩评定表学生姓名班级学号专业信息与计算课程设计题目数值分析算法案科学例评语组长签字:成绩日期20年月日课程设计任务书学院理学院专业信息与计算科学学生姓名班级学号课程设计题目数值分析算法案例实践教学要求与任务 :要求:格式以学校毕业论文格式要求为准,不准粘贴图片,尤其公式。

对每个试验,要求有:实验基本原理,实验目的,实验内容及数据来源和实验结论。

以班级为单位统一装订封皮。

6 月 25 日,十八周的周二交论文每人至少四个实验,最少15 页任务(实验项目):线性方程组数值解法参考题目:( 1) 列主元 Gauss 消去法( 2) LU 分解法插值法和数据拟合参考题目:( 1) Lagrange 插值( 2) Newton 插值( 3)最小二乘拟合数值积分参考题目:(1)复化Simpon积分(2)变步长的梯形积分公式(3)龙贝格求积公式常微分方程数值解Runge-Kutta 方法数值方法实际应用用数值方法解决实际问题(自选)工作计划与进度安排:线性方程组数值解法(4 学时)插值法和数据拟合(4 学时)数值积分(4 学时)常微分方程数值解(4 学时)数值方法实际应用(4 学时)答辩(4 学时)指导教师:专业负责人:学院教学副院长:201年月日201年月日201年月日实验方法与理论方法是推动科学技术发展的两大基本方法,但有局限性。

许多研究对象,由于空间或时间的限制,既不可能用理论精确描述,也不能用实验手段实现。

数值模拟或称为科学计算突破了实验和理论科学的局限,在科技发展中起到越来越重要的作用。

可以认为,科学计算已于实验、理论一起成为科学方法上不可或缺的三个主要手段。

计算数学的研究是科学计算的主要组成部分,而数值分析则是计算数学的核心。

数值计算是研究使用计算机来解决各种数学问题的近似计算方法与理论,其任务是提供在计算机上可解的、理论可靠的、计算复杂性低的各种常用算法。

数值分析的主要内容:1)、数值代数:求解线性和非线性方程组的解,分直接方法和间接方法两大类;2)、插值、曲线拟合和数值逼近;3)、数值微分和数值积分;4)、常微分和偏微分方程数值解法。

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

数值分析课程设计题目与要求
(12级应数及创新班)
[设计题一]
编写顺序Gauss消去法和列主元Gauss消去法的函数,再分别调用这两个函数求解下面的84阶方程组:
= ,
然后考虑将方程组的阶数取为10至100之间多个值进行求解。

将你的计算结果与方程组的精确解进行比较。

从“快”、“准”、“省”三个方面分析以上两个算法,试提出改进的算法并加以实现和验证。

[设计题二]
编写平方根法和改进的平方根法(参见教材《计算方法》P54的例题2.5)的函数,然后分别调用这两个函数求解对称正定方程组Ax=b,其中A和b分别为:
(1)系数矩阵A为矩阵(阶数取为10至100之间多个值):

向量b随机地选取;
(2)系数矩阵A为Hilbert矩阵(阶数取为5至40之间多个值),即A的第i行第j列元素,向量b的第i个分量取为。

将你的计算结果与方程组的精确解进
行比较。

若出现问题,分析其原因,提出改进的设想并尝试实现之。

对于迭代法 ,......)2,1,0(99.02
1=-=+k x x x k k k , 它显然有不动点0*=x 。

试设计2个数值实验
得到收敛阶数的大概数值(不利用判定收敛阶的判据定理):
(1) 直接用收敛阶的定义; (2) 用最小二乘拟合的方法。

[设计题四]
湖水在夏天会出现分层现象,接近湖面温度较高,越往下温度变低。

这种上热下冷的现象影响了水的对流和混合过程,使得下层水域缺氧,导致水生鱼类的死亡。

如果把水温T 看成深度x 的函数T(x),有某个湖的观测数据如下:
环境工程师希望:
1) 用三次样条插值求出T(x)。

2) 求在什么深度处dx
dT
的绝对值达到最大( 即02
2=dx T d )。

[设计题五]
某飞机头部的光滑外形曲线的型值点坐标由下表给出:
...值y 及一阶、二阶导数值y ’,y ”。

绘出模拟曲线的图形。

给定初值问题
其精确解为 ,分别按下列方案求它在节点 处的数值解
及误差。

比较各方法的优缺点,并将计算结果与精确解做比较(列表、画图)。

(方案I )欧拉法,步长h = 0.025, h = 0.1; (方案II )改进的欧拉法,步长h = 0.05, h = 0.1; (方案III )四阶经典龙格—库塔法,步长h = 0.1。

[设计题七]
生态环境学家在研究自然界中两个生物种群数目变化时得到一组常微分方程。

假设有两种生物(例如一种是蓝鲸,另一种是南极磷虾),前者在时刻t 时的数量为1x (t ),后者在时刻t 时的数目为2x (t ),并假设它们都是t 的连续可微函数。

蓝鲸是以磷虾为主要食物的。

当没有食物来源时蓝鲸数目会减少,其减少速度与当时蓝鲸的数目成线性关系,即
)(11
t cx dt
dx -= . (1) 当有食物来源时,蓝鲸的数目会增加。

增加的速度和它捕食的数目有关,即
dt
dx 1
= d 1x (t ) 2x (t ) . (2) 合并(1)和(2),得到蓝鲸变化速度满足的微分方程
+-=)(11
t cx dt
dx d 1x (t ) 2x (t ). (3) 同样,在没有蓝鲸时,磷虾的增加速度满足
dt
dx 2
=2ax (t ). (4) 考虑到被捕食情况,则磷虾的数目满足
dt
dx 2
=2ax (t )-b 1x (t ) 2x (t ). (5) 合并(3)和(5),得到著名的Lotka-Volterra 方程
1
112
2212
dx cx dx x dt dx ax bx x
dt
⎧=-+⎪⎪⎨
⎪=-⎪⎩ (6) 其中d c b a ,,,均为正常数。

(6)是一个非线性常微分方程组,不可能有解析解。

假设,3.0,8.0,6.0,2.1====d c b a 而且初始值为1x (0)=2, 2x (0)=1.
1) 分别用欧拉法、改进的欧拉法和四阶经典龙格—库塔法,取多种步长求解(6)。

把1x (t ) 和2x (t )
画在同一张图上,并给予解释。

2) 把(6)的两个方程相除,得到
2
112
1212x dx cx x bx ax dx dx +--= (7) 尝试用数值方法求出2x ~1x 之间的函数关系。

并把它画在以1x ,2x 为坐标的图上,对所得结果加以解释。

[要求]
一、设计题必须用Matlab 完成;设计题一、二、三必做;设计题四、五选做一题,设计题六、七选做
一题(也可全做)。

二、须提交纸质课程设计报告,基本内容包括(可进一步发挥):
1) 设计思路、算法步骤(或流程图);
2) 程序清单(函数文件、命令文件)(加上必要的注释);
3) 程序运行操作过程与输出结果(必须附上相应的截屏图,图中须有任务栏和命令历史窗口中的
日期、时间);
4) 对计算过程与结果的分析(如误差分析,收敛性,稳定性,计算量,存储量,方法比较等);各
设计的优缺点(如特色、自己最满意之处、需改进的地方等);
5) 自己在课程设计中的心得体会(须含程序调试过程中遇到的问题与困难及解决办法)以及对本
课程的认识;
6) 课程设计自我评价(优、良、中、及格、差之一)及其支持依据。

其中2)、3)两部分必须打印,其余部分打印、手写皆可。

须加封面,格式:题目(即“数值分析课程设计报告”);学生班级;姓名;学号;完成日期。

三、请将全班同学的电子版设计报告和相关的M文件刻录在一张光盘上上交。

严禁抄袭!若发现雷同,不区分抄与被抄,一并处理,成绩不及格或要求重做。

敢于说“不!”,以免害人又害己。

判断抄袭的参考标准:出现下列情形之一
(1)无截屏图;
(2)截屏图与他人相同;
(3)需编写的M文件(含注释)与他人完全相同;
(4)设计题一、二中方程组的阶数取得与他人完全相同;
(5)无“课程设计中的心得体会”或过于简短;
(6)“课程设计中的心得体会”不含“遇到的问题与困难及解决办法”;
(7)“课程设计中的心得体会”与他人相同。

必要时,进行面试和当场上机操作。

课程设计提交时间:
按要求完成后,统一交给课代表(或学习委员、班长),于下学期开学报到日(8月30日)或之前(下学期第一周便要评优,须完成成绩的评定)交至任课教师处,包括光盘和纸质的课程设计报告。

过期不交作为缺考处理。

附上机安排:
时间:第16周星期四下午2:30-4:30
第17周星期五上午8:30-11:30,下午2:30-4:30
第18周星期二上午8:30-11:30
地点:4号楼底楼数学学院机房
7月6日之前交平时布置的课件Ch9、Ch10习题一至三的七道题,要有调用函数的算例。

提交Word文档。

统一交给课代表(或学习委员、班长),收齐后再发邮件给任课教师。

相关文档
最新文档