和数学家一样思考的10种方法

转自 微信公众号 数学中国

1.质疑一切


在我看来,数学的真正美妙的地方之一在于它可以被检验;你不必把任何人的话当做圣经。如果有人给你说一些事情是真的,那你可以让他证明;最好是,如果你真的想同数学家一样思考,那你可以尝试主动证明它。不要等着有人拿勺子喂你;


对于一些人的话,你的反应应该是怀疑,并且试图去找到一个反例;即便是真的,这种对你的锻炼也是有益的,同时也能帮助我们对事情的判断力;(注意,在真实生活场景中过度这么做可能会失去朋友—— 一直挑别人的刺,谁都会不爽)


某报纸的一份来信说时间旅行从逻辑上是不可能的,因为如果时间旅行是可能的,那我们是会看到很多来自未来的人。我有一些想法来反驳这个逻辑:或许时间旅行只允许我们穿越到过去某点时间(比人类历史还要长);或许时间旅行者不允许和我们交流;或许时间旅行有一个范围,能穿越的时间不超过一年,而时间旅行在数年后才出现(并且时间旅行的机器不能穿越)。


2  写下来


写下来?你可能会问,这跟和数学家一样思考有个啥关系。是这样的,语言是由一些论据构建的。高水平数学家的论据都是证明的形式(不仅仅是给出正确的数字答案)


学生通常看不到写下来的需要;他们常常说:’我来大学不是来写作文的’,’我已经知道正确答案了’,’你懂的’。他们的作业都是一些没有关系的符号堆砌但依然可以获取高分。但是,如果你想去理解数学并且思路清晰,通过写的练习可以迫使你对自己的观点想的更清楚。如果你不能正确的描述,那么很可能你并不是真正理解了你要表达什么。这是一个可以学习和发展自己技术的很好机会。其实写的一手好文章在任何领域都是很有用的技术。


彩蛋:一个提高自己数学写作和思考的方式是学会恰当的使用隐含符号  =》


3 试试逆?


语句A=>B是数学的核心,我们可以表述为如果A是真的,那么B就是真的;


A=>B的逆就是B=>A,例如:”如果我是丘吉尔,那我是英国人”的逆是”如果我是英国人,那么我是丘吉尔”;


这个简单的例子说明了,即便是一个语句是真的,那么其逆可能非真;可能真也可能非真,说之前要搞清楚;


一个好的数学家,当提出一个A隐含B的语句时,通常会思考”其逆为真么?”,把这个问题印到脑子里,作为你和数学打交道的工具;然后,其逆是否为真并不是很重要,关键是磨练数学的能力;


说个题外话,通常人们会犯一个大错误,就是当A=>B时,认为如果A非真的,那么B也非真的;这是不对的,这个语句只是在说当A为真是会发生什么,并没有说A非真时的情况。现在可以像一个数学家一样思考一下,给一个例子。


4 试着互逆



一条语句’A => B’ 的互逆是 ‘not B => not A’;


例如:

1)『如果我是丘吉尔,那么我就是英国人』的互逆就是『如果我不是英国人,那么我就不是丘吉尔』

2) 『如果我不是美国人,那么我就不是德克萨斯人』的互逆就是『如果我是德克萨斯人,那么我就是美国人』

3) 『x^2 – 4x – 5 = 0  => x >= -2』的互逆就是『x<-2 => x^2-4x-5 != 0』


A=>B的互逆命题和自身的真假惊奇的一致!也就是说,如果A=>B是真的,那么not A => not B就是真的,反之亦然。可以验证一下上面的例子。一开始可能很难在脑子里形成固有概念 – 其实大多数人都不相信;有一个著名的关于互逆的教育实验,叫做Wason的选择任务。可以看一看你是否能通过测试,只有不到10%的人通过了;


由于互逆经常用做证明,并且日常推理也经常搞错,所以你应该掌握。


5 考虑极端情况


面对一个命题,要在少量极端的假设情况下看看;如果需要的参数为0或者1会怎样?如果把需要的函数定义为f(x)=0会怎样?数据集为空呢?如果需要的序列为1,1,1,1。。。呢?直线或者圆会有什么结果?


这些例子可以帮我们更深刻的理解,意味着命题可以应用的场景;


考虑一个极端的例子『如果Y=X^2,Z=Y^2,所以Z != X^2』。貌似Y和Y^2一般场景下是真的,但其实不然,比如Y=1,当X=1的条件下;


用一个极端的例子说明下列原理是错误的:

原理:假设a,b,c,d是正整数,如果ab=cd,a=c,那么b=d;


想给出好的极端例子需要积累,因此需要平时注意收集,用到的时候信手捏来,有一个训练方法,想象你正在酣睡,突然大半夜有人把你摇醒说:快!给我一个X的好例子,快!X可以是群组、向量、函数等数学对象;


6 构造自己的例子


真正的数学家创造自己的例子,不管是标准例子,极端例子还是非实例!让我们看看工作示例(例如过程、算法等)。

考虑到极大值和极小值在微积分中的标准。我们首先定义如何区别一个函数。然后将奇点定义为导数为零的点。其次,我们告诉我们奇点有3种类型:极大值、极小值和拐点。然后显示函数的二阶导数决定类型。在这些例子之后:这里有一个函数,这里是奇点的位置,这是奇点的类型。

学会方法后可以使用函数找到奇点类型,但如果我反过来问你,能否创建一个变量为x的函数f,函数的最大值和最小值分别为x=2和x=-6,这将是一个更加困难的考验。但在尝试这样做时,你可以学到很多数学知识。

因此,拿到计算方法后,您应该将其反转以创建新的问题。此外,如果你和你的朋友一起制造这些问题,那么你可以交换他们(交换的是问题,而不是朋友),并从中得到更多的实践。你也可以设置一个竞赛:看看谁能设置最难但还在解决范围内的问题。


7 假设用在哪里


学生们常对我说他们很难理解证明,这是正常的。因为证明的重点在于逻辑性和推导性,而不是提供洞察定理的陈述或它的证明是如何被发现的。普通学生在解题时面临的问题往往是“不知从何处入手”。因此,理解证明是学习成为数学家最困难的部分之一。

《像数学家一样思考》第18章的全部内容都是用各种方法来理解证明的,例如,把它分解成部分,把证据应用于一个例子。我们只考虑下面的技巧。

每个定理都有假设。例如,毕达哥拉斯定理假设我们有一个直角三角形。这些假设是证明的必要条件或背景。因此,可以从假设入手,积极寻找公式定理的应用方向,你将开始了解数学证明。

有些假设可能是隐藏的。例如,证明中往往会有“根据定理5.7,我们可以看到……”的字样,这说明定理5.7是我们需要的假设之一。(顺便说一下,如果一个定理在不同的证据中一次又一次地被使用,它一定是非常重要的,并且有潜力被用在你的证明中,所以要学好它。)

通过寻找假设,你将开始数学证明之旅,并将清晰地看到它是推导的过程以及构造,作为无偿的奖励,你也会加深对证明的理解。


8 从复杂的一边开始


从复杂的一面开始,这是我能够给出的,证明等式成立的最高秘诀。从更复杂的部分入手,通过替换来降低表达式另一端的难度。



9 问“如果有……那么会怎样”


好的数学家喜欢问:“假如我放弃这个假设会发生什么?通过思考这个问题,我们可以更好地理解为什么一个结果是正确的,或者为什么定义是这样的。有时我们可以通过弱化假设来创造一个新的定理!


10 交流!




void main() { int i,choice,select,lenx,leny,flag; double *x;// 输入信号 double *h; //单位脉冲响应存放变换的结果 double *y;//输出信号 printf(“\nchoice singal : choice——x(n) select——h(n)\n”); printf(“1.矩形序列,长度10 2.单位冲击序列\n”); printf(“3.单位阶跃序列,长度5 4.矩形序列,长度6\n”); printf(“choice :选择输入信号 select:选择输出信号\n”); printf(“choice=”); scanf(“%d”,&choice); if(choice==1) lenx=10; else if(choice==2) lenx=1; else if(choice==3) lenx=5; else lenx=6; x=(double *)calloc(lenx,sizeof(double)); printf(“\nselect=”); scanf(“%d”,&select); if(select ==1) lenh=10; else if(select ==2) lenh=1; else if(select ==3) lenh=5; else lenh=6; leny= lenx+lenh-1; h=(double *)calloc(lenh,sizeof(double)); y=( double *)calloc(leny,sizeof(double)); printf(“\nchoice :1.continue 2.over\n”); do{ singalxh(x,choice); singalxh(h,select); convolution(x,h,y,lenx,lenh); printf(“Do you want to input length of Convolution:Y/N?”); if(getchar()==’Y’||’y’) { printf(“input length:len=”); scanf(“%d”,len); } else len= int(log(leny)/log(2)+0.9999); printf(”\nDirect Caculation of Linear Convolution\n”); for(i=0;i<leny;i++) { printf(“ .1lf”,y[i]); if(i%4==3) printf(“\n”); } printf(“\n”); fconvol(x,h,lenx,lenh,len); printf(”Fast Caculation of Linear Convolution\n”); for(i=0;i<leny;i++) { printf(“ .1lf”,x[i]); if(i%4==3) printf(“\n”); } printf(“\n”); scanf(“&d”,&flag); }while(!flag); }
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值