一位教授让我帮忙制定一个大学项目的规范。 当学生应该了解编程的基础知识时。
教授是一名数学家,在其他编程语言方面经验不足,所以它应该在MATLAB中。
我想要一些项目的想法。该项目应该
什么样的项目会让学生兴奋?
如果您有任何其他提示我会很感激。
更新:学生是二年级学生,已经学过矢量微积分。这个项目是为期一年的离散数学课程。
更新2:课程涵盖的主题是
答案 0 :(得分:8)
一般建议:
The MathWorks有许多教学资源可以为课程项目提供一些想法。一些示例链接:
具体建议:
我发现有趣的非线性动力学研究生项目之一是Lorenz oscillators。 Lorenz振荡器是三个变量的非线性系统,可以表现出混沌行为。这样的系统将为学生介绍数值计算提供机会(iterative methods用于模拟微分方程系统,稳定性和收敛等)。
这个项目最有趣的事情是我们使用Lorenz振荡器对信号进行编码和解码。这种“加密通信”方面非常酷,并且基于以下期刊文章:
Kevin M. Cuomo和Alan V. Oppenheim, 同步混沌与应用的电路实现 通讯,物理评论 信件 71(1),65-68(1993)
本文讨论了混沌通信系统的硬件实现,但等效的软件实现应该足够简单(并且更容易让学生实现!)
此类项目的其他一些有用方面:
答案 1 :(得分:3)
我发现实施和可视化Dynamical systems非常棒 介绍编程和一个有趣的分支 应用数学。因为人们可以在这些系统中看到“生命”, 我们的学生真的很喜欢这个实用的模块。
我们通常从可视化一维吸引子开始,这样我们就可以 用当前的状态覆盖进化规则/变化率 系统。这样你就可以教授计算方面(整合系统)和 可视化,以及实现中的两者分离(在简单的层面上,刷新 每个第n个计算步骤都有图形,但是在C ++中导致线程,这里不确定MATLAB的功能。)
接下来我们添加噪声,然后在线性吸引子上添加一个S形非线性。我们将此扩展与版本控制的介绍(我们为此使用沙箱SVN存储库)结合起来: 学生首先必须创建分支,修改进化规则然后合并 它回到了HEAD。
当进入2D时,您可以简单地从旋转开始并将其修改为Hopf振荡器,并通过随时间变形网格或在以不同点开始时使用3D进行可视化。您还可以在3D中可视化分叉图。因此,您再次将3D绘图等通用MATLAB技能与数学结合起来。 要链接其他主题,请浏览维基百科:您可以引入猎人/捕食者模型,混乱系统,物理系统等等。
我们通常不会在MATLAB中教授面向对象的编程,尽管它可以在动态系统设置中轻松组成您自己的用例。 在介绍继承时,我们已经转向C ++了,我再次没有意识到MATLAB的功能。
回到你的五点:
所有这些说,我至少还会告诉你的教授(和你的学生!)Python正在崛起,反对MATLAB。我们正在使用我们的教程开始使用Python,但我知道是否有人想要坚持熟悉的内容。
另外,我们实际上需要以后的科学内容,所以对你的用处可能取决于你的课程与哪个部门有关。
答案 2 :(得分:2)
很多事情都有可能。
第一个想到的例子是建立公共交通网络(您所在城市的网络,包括地下,公共汽车,有轨电车......)。它由加权有向图表示(例如,您可以使用稀疏矩阵来表示它)。
例如,您可以要求他们计算从一个站到另一个站的最短路径(例如,Moore-dijkistra算法)并显示它。因此,对于学生来说,要做的几个步骤是:
当然,通过增加连接时间(当你从一条线路换到另一条线路时)可能会很复杂,要求几个选项(最短路径和最小连接数,请考虑等待火车/公共汽车的时间。 ,...)
详细程度取决于学生的水平以及他们可以花在上面的时间(可能非常简单,或非常现实)
答案 3 :(得分:2)
你想用Web界面和数据库做一个项目,但没有任何严肃的数学......你是在MATLAB中做的吗?您是否理解MATLAB专门用于“深度数学”,而不是用于Web界面或数据库?
我认为如果这是一个离散数学课程的介绍,你应该做一些涉及离散数学的事情,而不是浪费学生的时间,因为他们用这种语言学习一堆他们永远不会真正使用的东西。
为什么不做涉及音频的事情?我做了一个本科项目,我们使用MATLAB自动匹配不同的曲调和DJ之间的混音。整个课程花了整个学期,但你可以做一部分。 wavread()等内置且易于使用。
或使用finding Waldo进行cross-correlation之类的简单图像处理。
也许做一些涉及加密的事情,让他们破解一个简单的加密方案,感觉像黑客。
答案 4 :(得分:2)
MATLAB最初是作为MATrix LAB开始的,所以也许专注于线性代数中的问题是很自然的。
使用matricies的离散数学问题包括:
请参阅Gil Strang's "Intro to Applied Math"或Knuth's "Concrete Math"了解相关信息。
答案 5 :(得分:0)
你可以看一下:http://www.mathworks.com/academia/student_center/tutorials/launchpad.html 在MathWorks网站上。互动教程(第二个链接)很受欢迎。
- 洛伦
答案 6 :(得分:0)
我一直认为在毕业学校分配的那个是一个很好的选择 - 一个magnetic lens模拟器。数学并不是完全压倒性的,所以你可以更专注于学习语言,它是图形功能的一个很好的介绍(例如,动画通过镜头的轴外电子的路径)。
答案 7 :(得分:0)
db I / O和花哨的接口在离散数学课程中不合适。
我的matlab实验室通常是算法实现,图表作为输出,简单的文件输入。
材料有多难?在matlab中图像处理真的很简单,你能做一些离散的2D过滤吗?模糊和东西。 http://homepages.inf.ed.ac.uk/rbf/HIPR2/filtops.htm