数值分析课程设计
- 格式:docx
- 大小:417.93 KB
- 文档页数:14
高等数值分析课程设计一、题目背景高等数值分析是计算数学领域的一门重要课程,它主要研究数值计算中的算法、误差分析、收敛性和稳定性等基本问题,涵盖了线性代数、数值微积分、常微分方程数值解等数学分支学科。
本文将介绍一项高等数值分析课程的设计,以增强学生对课程的理解和能力。
二、设计目标2.1 教学目标本课程设计旨在帮助学生:•掌握常见的数值分析算法;•熟悉各种算法的误差分析和收敛性;•能够独立设计和实现数值计算程序;•培养学生解决实际问题的能力。
2.2 实现目标为了实现教学目标,本课程设计将遵循以下原则:•采用案例分析和实例演示的方式,将数学理论与实际应用相结合;•强调算法的实现方法和效率分析;•通过小组合作的方式完成实践任务,培养学生的团队合作能力;•开设课程论文撰写指导和实践报告撰写指导课程,提高学生的学术写作能力。
三、课程内容本课程的教学安排如下:3.1 理论讲授•数值线性代数•数值微积分•常微分方程数值解•偏微分方程数值解3.2 实践任务•实现线性方程组求解算法•实现求解非线性方程的算法•实现常微分方程数值解算法•实现偏微分方程数值解算法3.3 课程论文和实践报告撰写要求每个学生提交一篇课程论文和一份实践报告,内容包括理论和实践部分。
论文部分主要包括:•算法的理论分析和数学推导;•算法的实现方法和效率分析;•算法的收敛性和稳定性分析。
实践报告部分主要包括:•实践任务的设计和实现方法;•算法实现的过程与结果分析;•算法的应用和实用性分析。
四、教学评估本课程的教学评估主要包括以下几个方面:4.1 学生成绩评估学生成绩评估包括平时分、实验成绩、论文得分和考试成绩。
其中,实验成绩和论文得分占总成绩的比重大于考试成绩。
4.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周:数值软件应用及综合案例分析教学内容确保科学性和系统性,注重理论与实践相结合,提高学生的实际操作能力。
《数值分析》课程教案数值分析课程教案一、课程介绍本课程旨在介绍数值分析的基本概念、方法和技巧,以及其在科学计算和工程应用中的实际应用。
通过本课程的研究,学生将了解和掌握数值分析的基本原理和技术,以及解决实际问题的实用方法。
二、教学目标- 了解数值分析的基本概念和发展历程- 掌握数值计算的基本方法和技巧- 理解数值算法的稳定性和收敛性- 能够利用数值分析方法解决实际问题三、教学内容1. 数值计算的基本概念和方法- 数值计算的历史和发展- 数值计算的误差与精度- 数值计算的舍入误差与截断误差- 数值计算的有效数字和有效位数2. 插值与逼近- 插值多项式和插值方法- 最小二乘逼近和曲线拟合3. 数值微积分- 数值积分的基本原理和方法- 数值求解常微分方程的方法4. 线性方程组的数值解法- 直接解法和迭代解法- 线性方程组的稳定性和收敛性5. 非线性方程的数值解法- 迭代法和牛顿法- 非线性方程的稳定性和收敛性6. 数值特征值问题- 特征值和特征向量的基本概念- 幂迭代法和QR方法7. 数值积分与数值微分- 数值积分的基本原理和方法- 数值微分的基本原理和方法四、教学方法1. 理论讲授:通过课堂授课,讲解数值分析的基本概念、原理和方法。
2. 上机实践:通过实际的数值计算和编程实践,巩固和应用所学的数值分析知识。
3. 课堂讨论:组织学生进行课堂讨论,加深对数值分析问题的理解和思考能力。
五、考核方式1. 平时表现:包括课堂参与和作业完成情况。
2. 期中考试:对学生对于数值分析概念、原理和方法的理解程度进行考查。
3. 期末项目:要求学生通过上机实验和编程实践,解决一个实际问题,并进行分析和报告。
六、参考教材1. 《数值分析》(第三版),贾岩. 高等教育出版社,2020年。
2. 《数值计算方法》,李刚. 清华大学出版社,2018年。
以上是《数值分析》课程教案的概要内容。
通过本课程的研究,学生将能够掌握数值分析的基本原理和技术,并应用于实际问题的解决中。
一、教学目标1. 知识目标:(1)使学生掌握数值分析的基本概念、基本理论和基本方法;(2)使学生了解数值分析在各个领域的应用;(3)使学生具备数值计算能力,能够解决实际问题。
2. 能力目标:(1)培养学生分析问题、解决问题的能力;(2)提高学生编程能力和计算机应用能力;(3)培养学生的团队协作和创新能力。
3. 情感目标:(1)激发学生对数值分析的兴趣和热情;(2)培养学生严谨、求实的科学态度;(3)提高学生的社会责任感和使命感。
二、教学内容1. 数值分析的基本概念和理论;2. 常用数值方法,如插值法、数值微分、数值积分、数值解微分方程等;3. 数值方法的误差分析;4. 数值方法的稳定性分析;5. 数值计算软件介绍与应用。
三、教学策略1. 采用启发式教学,引导学生主动探究;2. 注重理论与实践相结合,提高学生的实际操作能力;3. 采用案例教学,激发学生的学习兴趣;4. 采用小组合作学习,培养学生的团队协作能力;5. 利用现代教育技术,提高教学效果。
四、教学过程1. 导入新课:介绍数值分析的基本概念和意义,激发学生的学习兴趣。
2. 理论讲解:系统讲解数值分析的基本概念、基本理论和基本方法,注重理论联系实际。
3. 实例分析:结合实际问题,分析数值方法的应用,使学生掌握数值计算的基本步骤。
4. 实践操作:布置课后作业,让学生运用所学知识解决实际问题,提高学生的实际操作能力。
5. 小组讨论:组织学生进行小组讨论,培养学生的团队协作能力。
6. 总结与反思:引导学生总结所学知识,反思自己的学习过程,提高学习效果。
五、教学评价1. 课堂表现:观察学生的课堂参与度、讨论积极性和问题解决能力。
2. 作业完成情况:检查学生的作业完成质量,了解学生对知识的掌握程度。
3. 期末考试:通过考试检验学生对数值分析知识的掌握程度,了解教学效果。
4. 学生反馈:收集学生对教学方法的意见和建议,不断改进教学方法。
六、教学资源1. 教材:《数值分析》;2. 教学课件;3. 实际案例;4. 数值计算软件(如MATLAB、Python等)。
数值分析课程设计一、题目描述在本次数值分析课程设计中,我们需要实现下列内容:给定一个函数f(x),任取一个初值x0,使用牛顿法求出f(x)=0的一个根。
二、算法实现在数值计算中,牛顿法(Newton’s method) 是一种迭代算法,可以快速地求解方程的数值解,对于一般的实数函数,牛顿法可以用来求方程f(x)=0的根。
设x n是f(x)的根的一个近似值,y=f(x n)是对应的函数值,则用f(x)的一阶泰勒展开式$$ f(x) \\approx f(x_n)+f'(x_n)(x-x_n) $$且令上式等于零,得到牛顿迭代公式:$$ x_{n+1}=x_n-\\frac{f(x_n)}{f'(x_n)} $$若x0是f(x)的一个根的初始近似值,则$$ x_{n+1}=x_n-\\frac{f(x_n)}{f'(x_n)}, \\ n=0,1,2,\\cdots $$是迭代序列,如果 $\\lim\\limits_{n\\rightarrow \\infty}x_n=\\alpha$,且 $f(\\alpha)=0$,则 $\\alpha$ 是方程的一个根。
三、实验步骤1.确定初始值x0,计算f(x0)和f′(x0)。
2.按照牛顿法迭代公式计算x n+1。
3.如果满足指定的条件,则停止迭代,并输出x n+1。
4.否则,返回第二步迭代计算x n+2,直至满足指定的条件。
四、实验代码def newton_method(f, df, x0, eps=1e-8, max_iter=1000):'''利用牛顿法求解非线性方程f(x)=0的根。
:param f: 函数:param df: 导函数:param x0: 初值:param eps: 容差:param max_iter: 最大迭代次数:return:近似解'''n =1while True:x1 = x0 - f(x0) / df(x0)if abs(x1 - x0) < eps or n > max_iter:return x1x0 = x1n +=1五、实验结果我们使用上述实现的牛顿法来解决如下问题:$$ f(x) = x^2-3, \\ x_0=2 $$则f′(x)=2x。
《数值分析课程设计》教学大纲课程编号: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.学生对数值分析和计算机科学交叉领域的理解总结本课程设计旨在培养学生的数值分析和计算机编程实践,通过课程作业和编程实践等形式将理论知识与实际问题相结合,提高学生的实践应用能力。
同时,本课程设计也为学生未来的研究和工作提供了一定的基础。
数值分析导论第二版课程设计概述数值分析是一门应用数学学科,主要研究计算数学方法和算法,用于求解科学和工程问题中的数学问题。
本课程设计主要参考《数值分析导论第二版》一书,通过对各类数值算法的编程实现,深入理解数值分析中的基本概念和原理。
实验内容本课程设计分为三个部分,每个部分包含若干个小题目,学生需要根据教师布置的题目,自行编写相应的数值算法代码,并进行调试和验证。
第一部分问题描述利用梯形公式、Simpson公式和复合梯形公式计算以下函数的定积分:$$ \\int_0^1 x^2 e^{-x}dx $$其中,梯形公式和Simpson公式的误差要求必须小于10−4,复合梯形公式的误差要求必须小于10−6。
实验要求1.分别编写梯形公式、Simpson公式和复合梯形公式的算法;2.对每个算法进行误差分析,并计算误差;3.输出每个算法的结果以及误差。
第二部分问题描述实现三次样条插值算法,对以下函数进行插值计算:$$ f(x) = \\frac{1}{1+x^2}, ~ x\\in[-5,5] $$实验要求1.编写三次样条插值算法的代码;2.对插值结果进行可视化,画出原始函数及插值函数的曲线图;3.计算插值函数在x=0处的值,并与真实值进行比较。
第三部分问题描述实现共轭梯度法,对以下线性方程组进行求解:$$ \\begin{cases} 3x_1-x_2+x_3=6\\\\ x_1+4x_2-x_3=5\\\\2x_1-x_2+3x_3=2 \\end{cases} $$实验要求1.编写共轭梯度法的代码;2.对求解结果进行可视化,绘制解的分量x1,x2,x3随迭代次数的变化曲线;3.计算解的二范数,与真实解进行比较。
实验环境本课程设计建议使用Python语言进行编程实现,推荐使用Jupyter Notebook进行代码编写和操作演示。
相关库或工具包的版本要求如下:1.Python 3.0及以上版本;2.NumPy 1.0及以上版本;3.Matplotlib 2.0及以上版本;4.Jupyter Notebook5.7及以上版本。
数值分析与算法第二版课程设计1. 课程设计背景和意义数值分析是一门研究数值计算方法和算法的科学。
随着科学技术的不断发展和计算机的广泛应用,数值分析越来越重要。
数值分析的应用范围非常广泛,例如在工程领域中,演化算法、人工神经网络等算法都是数值分析的重要应用。
针对这种趋势,大学数学系(或计算机科学系)的一些专业需要为学生提供数值分析与算法的课程。
而本次课程设计旨在为学生提供一个把理论与实践相结合的机会,让学生更好地掌握数值分析和算法。
2. 课程设计要求本次课程设计要求学生利用所学知识,完成下面的两个实践任务:•第一部分:实现一个求解某种常微分方程初值问题的程序。
•第二部分:实现一个非线性方程组的求解程序。
3. 实现过程3.1 第一部分:常微分方程初值问题的求解程序实现一个求解某种常微分方程初值问题的程序,需要经过以下步骤:•步骤1:选定一个常微分方程初值问题,并利用Matlab等数学软件计算其精确解。
•步骤2:根据计算出来的精确解,选定一组较小的初始节点组成的序列,通过欧拉方法、中点法、4阶龙格-库塔法等方法计算近似解。
将精确解和近似解绘制成图像,比较精确解和不同近似解的误差。
•步骤3:编写一个MATLAB或C程序,实现龙格-库塔4阶方法的求解程序,并测试不同初始节点的精度。
使用以上计算的步骤2中选定的数值观察误差,并改变初始节点数量来优化求解程序。
3.2 第二部分:非线性方程组的求解程序实现一个非线性方程组的求解程序,需要包含以下几个步骤:•步骤1:确定一个非线性方程组。
•步骤2:选定一种求解方法(例如牛顿法、拟牛顿法等)进行求解。
通过MATLAB等数学软件计算出精确解。
•步骤3:编写一份MATLAB或C程序,实现所选定的求解方法,来解决该方程组。
测试程序并将结果与精确解进行比较。
4. 课程设计结果通过此次课程设计,将可以让学生深刻理解非线性方程组和常微分方程初值问题的求解过程。
同时,还可以让学生学会利用MATLAB等数学软件和数据可视化工具,来比较和评估不同的数值方法的误差和收敛速度。
数值分析课程设计一小船过河问题理学院信息与计算科学专业课程设计的目的和意义:《课程设计》是数值分析的同步课程,是《数值分析》的上机实习课。
《数值分析》课程中构造了各种有效的算法和有效公式,同学们通过上机作课程设计,学习揣摩这些算法的思想和构造,评价算法的优劣性。
通过上机,可以提高我们运用数学软件(如MATLAB软件)编程解决问题的能力,为今后从事科学计算和软件开发打下良好的基础。
课程设计的题目:一定条件下小船过河问题的研究小船过河模型的研究问题:小船渡过宽为d的河流(A—B), v1为河水流速,v2为静水速度.渡船时船头始终指向B点•1)建立小船的航线方程,求其解析解•2)设d=100m,v1 = 1m/s v2 = 2m/s,用数值解法求渡河所需时间,任意时刻小船的位置及航行曲线,作图,并与解析解比较若流速v1为0 ,0.5,1.5,2(m/s)•结果如何?问题分析与题目意义:小船过河冋题是我们在初中、咼中都经常见到的,就本题而言,它是在已知小河的水流速度、小船在静水中的速度、小河宽的的条件下,用不同方法(解析方法与数值方法)求解小船的航线方程、小船在任意时刻的位置(坐标)及渡河所需的时间的问题,该问题虽然不是很难,但是通过此问题的研究我们可以进一步加深和巩固我们对数值分析课程的理解合运用,同时也可以提高我们运用数学软件(如MATLAB软件)编程解决问题的能力,为今后从事科学计算和软件开发打下良好的基础。
问题假设:1、假设小河的水流速度是恒定不变的。
2、假设小船在小河中的速度大小是恒定不变的。
3、假设小河的河岸线在一定的范围内是近似平行的两条平行线,任取垂直于河岸线的A、B两点,河宽为d (如下图(1)所示)。
4、假设小船在行驶的过程中船头始终指向对岸(对岸的目的地B点)。
5、假设水流速度v1与小船速度v2的合速度v与小船的行驶轨迹始终相切。
符号说明:知识回顾:解析解、数值解究竟是什么东东解析解的定义:解析解是一些严格的公式,给出任意的自变量就可以求出其因变量,也就是问题的解,他人可以利用这些公式计算各自的问题•所谓的解析解是一种包含分式、三角函数、指数、对数甚至无限级数等基本函数的解的形式。
用来求得解析解的方法称为解析法,解析法即是常见的微积分技巧,例如分离变量法等。
解析解为一封闭形式的函数,因此对任一独立变量,我们皆可将其带入解析函数求得正确的相依变量。
解析解也被称为闭式解。
数值解的定义:数值解是采用某种计算方法,如有限元的方法,数值逼近,插值的方法,得到的解. 别人只能利用数值计算的结果,而不能随意给出自变量并求出计算值•当无法藉由微积分技巧求得解析解时,这时便只能利用数值分析的方式来求得其数值解了。
数值方法变成了求解过程重要的媒介。
在数值分析的过程中,首先会将原方程式加以简化,以利后来的数值分析。
例如,会先将微分符号改为差分符号等。
然后再用传统的代数方法将原方程式改写成另一方便求解的形式。
这时的求解步骤就是将一独立变量带入,求得相依变量的近似解。
因此利用此方法所求得的相依变量为一个个分离的数值,不似解析解为一连续的分布,而且因为经过上述简化的动作,所以可以想见正确性将不如解析法来的好。
第一部分:建立小船的航线方程,求其解析解根据上面的假设可知小船的速度v2,小河的水流速度v1,小船速度与水速的合速度为v (如图(1)所示)以B为坐标原点,以过A点的河岸线沿水流方向为x 轴,以AB(由A指向B为正向)为y轴建立平面直角坐标系,设v2与x轴正向的夹角为,小船的轨迹方程为-匚V:,由平面几何的知识和容易得到本题的微分方程表达式dx v2x朮1 T/X2+y2dy -v2ydt ^x2 + y2可以推出y-x的解析表达式,如下:. ■■' ■其中c为待定常数,匕二亠为速度比。
代入初值条件2 7 2 7v2张「八厂心得•鬧讣,所以有二-〕二―二-二-〔二二〕,可以表示为x(y)的显示表达式_ 。
.2 ___________用matlab画出此函数的曲线,程序如下:xy.m:function x=f(y)k=0.5;x=-0.5.*(-0.01).Ak.*y.A(k+1)+0.5.*(-0.01).A(-k).*y.A(-k+1);xyplot.m : clear; y=[0:-0.1:-100]; for i=0:1:1000; x(:,i+1)=xy(-i/10); endplot(x,y); grid;gtext('x');第二部分:用数值解法求渡河所需时间,任意时刻小船的位置及航行曲线,作图, 并与解析解比较■这是一个微分方程模型,初始条件为 柠上;二;(:-1(:二;由微分方程表达式dx v 3x 丁 =町 ------- - -dt^x 2 +y zdy -y 2ydt ^x 2 + y 2用龙格-库塔方法求解此微分方程,程序如下: gh.m:fun ctio n dx=gh(t,x,v1,v2) s=(x(1)A 2+x(2)A 2)A 0.5;dx=[v1-x ⑴/s*v2;-x(2)/s*v2];% 以向量形式表示微分方程 ghdraw.m:h=0.01;%所取时间点间隔ts=[0:h:100];%粗略估计到达目标点时间在 100以内x0=[0,-100];% 初始条件opt=odeset('reltol',1e-6,'abstol',1e-9);% 相对误差 1e-6,绝对误差 1e-9 [t,x]=ode15s(@gh,ts,x0,opt,1,2);%使用解刚性方程得龙格一库塔公式计算,1,2是给gh 函数的参gtext('y');title('小船过河时的轨迹图(1)');数[t,x]% 输出t,x(t),y(t)plot(t,x,'-'),grid% 输出x(t),y(t)的图形gtext('x(t)'),gtext('y(t)'); title('小船过河时的轨迹图(3) '),pauseplot(x(:,1),x(:,2),'-'),grid,% 作y(x)的图形gtext('x'),gtext('y'); title('小船过河时的轨迹图(2)')小船过河时的轨迹图(2)x(1)流速 v1=0(m/s)时这时水是静止的,船延直线开到 B 点, 所用时间为 d/(V 2-vj =100/(2 -1) =50( s)程序运行结杲如下(由ode23s 算得):[t,x]:ani =l.Oe+002 *-1 DODO0 0050 0-0 99000 0100 0-0. 980(30.0150 0 -0.97000.0200 0-0 96000 0£50-0 9500Q.4T50 0-0.05000.48004,04000.4850 0-0 03000.4900 0-0 血00Q 495Q-O.DIQOQ.500Q0.5050 KalT + MaNi 聞+ NaWi 0.5100NaN +NaNi聞+NaNiF 面给出x(t),y(t),和y(x)的图形:可以看到t=50时,到达 B 点,与解析解相符。
小船过河时的轨迹图(3)(2)流速v1=0.5(m/s)时程序运行结果如下(由ode15s算得): [t,x]:00 -100 0000D. 50000. 2467-99 00001.00000 4950-98.COOO1.50000 7386-97.00002.0000 D. 9797-96 00012.5000 1.2162-95. COOI3.0000 1.4541-94 000250.5000 3. 1425-3.258551 0000 2. 6835-2.953551.5000 2 1S23-1 332352. 0000 1.6642-1.254452.5000 1.0923-0.685353.00000 4646-0,2079可以看到t 53时,到达B点。
下面给出x(t),y(t),和y(x)的图形:20608010 20 30 50 50图形和v 仁1时十分相似。
(3)流速 v1=1.5(m/s)时程序运行结果如下(由ode15s 算得): [t,x]:ill 5 -0 -100. 00000.5000 0 T462 ^9.00001.0000 1.4049-9S.00011 5000 2.215^ -97.0003 2.0000 2. 9392 -96 0006 2.SOQO 3. BS47 -^5.0012 3.0000 4 3623 -"94.0021 3.50005.0619 -93 0034 4 00005. T536 -92 0051111 0000 L 6431 -0.0001 HI. 5000 L.3931-0.0001 112 0000 1 1431 -0.0000 112.5000 0 6931 -0.0000 113 0000 0 6431 -0.0000 113.50000. 3931 -0.0000 114.00000 1431-0,0000可以看到t : 114时,到达B 点。
下面给出x(t),y(t),和y(x)的图形:y20■63020 60 80 W0Q蓉w科谜Wf曲总®0$禅a50505 10 15 20 25 30■30右图可见由于河水速度的上升,船的轨迹绕的弯增大了。
(3)流速v1=2(m/s)时预测:由于vi二v,所以x —— • W (1——22)dt 0,-T 0 0 x y,船不可能到达正对岸的 程序运行结果如下(由ode15s 算得): 0 0 '100.00000. 5000 0.^960 00001.0000 1.9799 T& 30011.50002.9546 -97.00052. 00003.9189 00112.5000 4.0T2S -S5. 0Q2Z3. 0000 5.8165 -94 0038141.5000 49.9964 -0. 5T42142.0000 49. 9964 -0.5G2S142. 5000 49 9985 -0. 5517143. 0000 49.9966 -0. MOT143.5000 49,9986 -0.5300144.0000 49. 9967 -0.5195144. 5000 4B.9987 -0. 5092197 5000 50.0000 -a.o&ii198.0000 E0 0000 -o.osee19B.5000 50 0000 -0. 0687199.0000 50.0000 -0.05T6199.5000 50. 0000 -a.0564200.0000 50.3000 -0.0553可以看到船无法到达目标点,经过足够长时间后会停在( dxT v 2x=v i (1 )—0,(x_0) B 点。