作者hitr (Wasserstoff Atom)
看板NTUEE111HW
标题电磁学习题课--Matlab
时间Mon Apr 20 22:19:20 2009
[广告]
从这个礼拜三的习题课(4:30-5:20pm BL-113)开始
连续大约两到三周 会有一系列谈"用Matlab写程式解决问题"的lectures
它的主题是"写程式来解决问题"
方式是 用一个具体的问题
--林怡成老师班Ch2作业的Bonus Problem:
计算要让载流线圈浮在超导体上所需的电流大小
来看 如果你有Matlab当作程式语言 你要怎麽样用Matlab来解决这个问题
所以 重点是希望可以和你分享
当你有了电脑这麽好的工具 它怎麽样能帮助你去想一个问题
如果你有兴趣 不管你是哪一个班 都欢迎你来听
我不一定可以教得很好 但我会试着尽量把东西讲清楚
--------
[闲聊]
林怡成老师建议我可以在习题课上讲一下Bonus Problem
我想 这是一个好机会 就藉这个具体的问题来讲 "怎麽样写程式来解决问题"
因为我觉得 大部分的学生在大一修完一学期的计算机程式之後
就不会再去写程式了
有写程式也多半是上CS相关的课程 像是资料结构 网路多媒体实验...等等
这很可惜 因为写程式就变成了是一种与生活无关的东西
学过之後就束之高阁 我们也不知道要写程式来干嘛
我觉得有部分的原因是 我们学的是C++
虽然它在资讯工程的领域里面是一种高阶的语言
但是就学习工程或者科学的学生来讲
它仍然带来了像是资料形态 资料结构 记忆体配置...等等这些"障碍"
把它们叫做"障碍" 是因为它们和你要解决的问题 本质上是无关的
--你想要算两个线圈之间的磁力 你要算的是毕欧沙乏定律
要想办法算磁场分布 算磁力 解平衡时候的条件...等等
或者是怎麽样计算磁场的向量位 取curl 得到磁场得分布...
如果你要用C++来写 这当然是困难的
要会很多东西 写很多东西之後 才能解决这个问题
你要一一指挥电脑做很多细节的工作
但是 如果你可以用Matlab 或是Mathematica等等"更高阶"的程式语言来写
你写程式的过程就会变成像是:
第一个程式: 计算一个线圈在空间中产生的磁场
第一行: 写出线圈的电流分布
第二行: 写出电流到空间中某一点的距离
第三行: 积分, 算出电流在那一点产生的磁场
第二个程式: 给定磁场, 计算一个线圈在这个磁场里所受的磁力
第一行: ...
你的程式(和用C++写比起来)会变得很单纯
你所写的大部分内容 所花的时间 所想的
都专注在这个问题的本质上面
它可以帮你把用在"程式设计"上的劳动工作降到最低
你可以把力气用在"怎麽样去想这个问题"和"用什麽方法解决这个问题"上面
这样一来 电脑就变成你的得力助手
只要你有想法 你就有信心可以用电脑帮你实现
这不是一件很快乐的事情吗?
那时候你会觉得 学写程式是很有价值的事情
C++当然重要 当然也是好语言
但是那比较像是为了"软体开发"而准备的
我觉得那就好像是我们大一学微积分的时候
一开始都要教集合 极限 epsilon 大於小於绝对值等等这些东西
这样看起来很严谨 很有架构
但是对於工程和科学的学生来讲 那是pointless
因为微积分对科学和工程来讲 最重要的贡献是怎麽样列式 怎麽找出答案
那里面有很多漂亮的想法 而不只是纯数学的那种漂亮
所以理应 对於不同科系的学生 我们应该有不同的教法
(当我看到管理学院或社会学院的学生在教室里
听教授在黑板上叩叩叩的写着epsilon delta的时候
都觉得很不忍心...他们不用受那样的苦!)
同样的道理 学写程式也是一样
以前我也曾经教过写程式 像是之前担任控制系统助教的时候
因为我自己最熟悉的语言是Mathematica
所以以前我都是教Mathematica
我也觉得它的确是比较flexible 接近白话文的程式语言
--整个程式写下来 可以像是一篇文章一样 很容易读懂
但是可能是因为很少人有这个软体
整个学校里面也没有公用电脑提供这个软体
在电机系 大家都流行用Matlab
所以学过之後也没有什麽机会刺激你继续使用
因此这次我想 没关系 就用Matlab来教
这样也许比较容易接受 你以後也比较有机会可以用到
当然我就必须重新学(我很少用Matlab)
所以很抱歉 我写Matlab的年资很浅 不像Mathematica那麽熟练
可能同样的问题 你可以写得更好
但是我想没关系 因为我的重点不在於Mathematica
用Matlab也可以呈现出我的想法
只要能让你听了以後觉得"原来程式可以这样写"
以後遇到问题的时候 你也许可以因此有不同的想法 而且有能力去实现它
那这个系列课程的目的就达到了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.19.155
※ 编辑: hitr 来自: 140.112.19.155 (04/20 22:25)
1F:推 gcmichael804:用心推 04/20 22:34
2F:推 drumstick:推~ 04/20 22:38
3F:推 yunmeow:推 04/21 00:28
4F:推 stonekuo:推!! 04/21 00:35
5F:推 chimat0814:推 04/21 00:50
6F:推 Geiwoyujie:推! 04/21 01:26
7F:推 whing1332:助教真用心 推!! 04/21 13:34
8F:推 sexysam:推!! 04/21 15:17
9F:→ kevin60105:也可以讲一下这次的bonus 的 problem吗 ~~ > < 04/22 00:07
10F:推 lee7938:推! 可是星期四还要考两科... 04/22 13:50