一位教授要求我帮助制定一个大学项目的说明书。到那时,学生应该知道编程的基本知识。
这位教授是一位数学家,在其他编程语言方面没有什么经验,所以应该使用MATLAB。
我想要一些项目的想法。这个项目应该
什么样的项目会让学生们兴奋?
如果你还有其他建议我会很感激的。
更新:学生是二年级的学生,已经学习过向量微积分。这是一个为期一年的离散数学课程。
更新2:本课程涵盖的主题包括
发布于 2009-07-30 18:16:18
一般建议:
在The MathWorks有许多教学资源,可以为课程项目提供一些想法。一些示例链接:
的具体建议:
我的一个研究生项目,在非线性动力学,我发现有趣的处理Lorenz振荡器。Lorenz振子是由三个变量组成的非线性系统,可以表现出混沌行为.这样的系统将为学生介绍数值计算(用于模拟微分方程组、稳定性和收敛性等的迭代法)提供一个机会。
这个项目最有趣的地方是,我们使用Lorenz振荡器来编码和解码信号。这个“加密通信”方面真的很酷,并且基于以下期刊文章:
KevinM.Cuomo和AlanV.Oppenheim,电路实现同步混沌与应用于通信,物理评论信函71(1),65-68 (1993年)
本文讨论了混沌通信系统的硬件实现,但是等效的软件实现应该足够简单,可以导出(而且学生更容易实现!)
这一项目的其他一些有用方面:
发布于 2009-08-06 11:48:26
我发现动力系统的实现和可视化非常适合于介绍编程和应用数学的一个有趣的分支。因为我们可以在这些系统中看到‘生活’,我们的学生真的很喜欢这个实用模块。
我们通常从可视化一个一维吸引子开始,这样我们就可以根据系统的当前状态来叠加演化规律/变化率。通过这种方式,您可以教授计算方面(集成系统)和可视化,以及两者在实现中的分离(在一个简单的层次上,在第n个计算步骤中刷新图形,但是在C++中导致线程,不确定这里的MATLAB功能)。
然后,我们在线性吸引子中加入噪声,然后再加入一个σ型非线性。我们将此扩展与版本控制介绍(为此使用沙箱SVN存储库)相结合:学生首先必须创建分支,修改演化规则,然后将其合并回HEAD。
当你做2D的时候,你可以简单地从旋转开始,把它修改成Hopf振子,然后通过变形一个网格来可视化,或者在一个不同的点开始的时候用3D来可视化。你也可以在3D中可视化分岔图。所以你再一次结合了一般的MATLAB技巧,比如3D绘图和数学。要链接到其他主题,请浏览维基百科:您可以引入猎人/捕食者模型、混沌系统、物理系统、etc.etc。
我们通常不从MATLAB中教授面向对象的编程,尽管这是可能的,而且您可以很容易地在动态系统设置中创建自己的用例。当引入继承时,我们已经开始使用C++了,我再次不知道MATLAB在这里的功能。
回到你的五点:
所有这些话,我至少也会告诉你的教授(和你的学生!)Python正在崛起对抗MATLAB。我们正在用我们的教程开发Python,但是如果有人想坚持熟悉的东西的话,我可以理解。
此外,我们实际上需要科学的内容,所以对你有用的可能将取决于你的课程将涉及哪个部门。
发布于 2009-08-06 11:56:33
很多事情都是可能的。
想到的第一个例子是建立一个公共交通网络(你所在城市的网络,有地下、公共汽车、电车,.)。它由一个加权有向图表示(例如,可以使用稀疏矩阵来表示它)。
例如,您可以要求他们计算从一个站点到另一个站点的最短路径(例如Moore-dijkistra算法)并显示它。
因此,对于学生来说,要做的几个步骤是:
当然,通过添加连接时间(当您从一条线路切换到另一条线路)、请求几个选项(连接最短的路径、等待火车/公共汽车的时间、.),这可能会变得更加复杂。
细节的程度将取决于学生的水平和他们花在上面的时间(可能非常简单,也可能非常现实)。
https://stackoverflow.com/questions/1208205
复制相似问题