哪里能看到战狼sixteen150609

150609新闻大求真 150609新闻大求真_001 - 高清在线观看 - 腾讯视频
150609新闻大求真
150609新闻大求真
4个视频,总播放:
扫描二维码随身看视频
用手机或平板摄像头拍下右侧的二维码,您可以:
1 在手机或平板上继续观看该视频
2 分享给你的微信好友或者朋友圈
好莱坞影院推荐
赤道交易超级武器
人工智能机械婊攻心计
下载手机APP来自子话题:
首先关于语言的选择,个人认为还是Matlab比较合适,因为目前在学术领域,用Matlab的人感觉还是相对多一点的。题主如果在写代码的过程中遇到了问题,也比较方便向别人请教。目测开源的机器学习库也是Matlab更多。当然如果对程序速度有严格要求,就可以考虑C++。&br&&br&其次对于题主你来讲,最重要的问题是要明确自己的&b&目的&/b&。&br&说实话,如果只是一个课程作业的话,完全没必要深入到很多算法的细节,只要了解了算法的大体流程即可,再选择别人实现好的算法,多次测试,一般结果是可以让人满意的。&br&但如果题主是想继续在机器学习领域深入研究的话,了解算法细节就是必不可少的了。不过即便这样,还是要从简单入手逐渐加深难度。否则学习曲线太陡,一般人都hold不住。&br&(另外自己感觉机器学习还算是入门容易精通难的,深入研究充满了大量细节和数学,研究者们也在一直outperform其他人……( ̄ε ̄;))&br&&br&所以,综上,题主最好&b&从简单入手&/b&!( ̄ε ̄;)&br&先了解基本算法思路,再使用县城代码进行实验!&br&&br&在此,我强烈推荐一个模式识别库 &b&PRTools5&/b&!在这里下载:&a href=&/software/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Software - Pattern Recognition Tools&i class=&icon-external&&&/i&&/a&,作者叫&a href=&http://rduin.nl/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&R.P.W. Duin&i class=&icon-external&&&/i&&/a&。&br&这个库最大的优点就是简单方便,而且实现了大量大量常用算法,对于初学者,完全可以上手就用,避免陷入细节的泥潭。而且都经过大量测试,基本没有严重bug。简单举几个栗子:&br&首先,需要构造两个数据集:&br&&div class=&highlight&&&pre&&code class=&language-matlab&&&span class=&n&&A&/span& &span class=&p&&=&/span& &span class=&n&&prdataset&/span&&span class=&p&&(&/span&&span class=&n&&X1&/span&&span class=&p&&,&/span& &span class=&n&&Y1&/span&&span class=&p&&)&/span&
&span class=&n&&B&/span& &span class=&p&&=&/span& &span class=&n&&prdataset&/span&&span class=&p&&(&/span&&span class=&n&&X2&/span&&span class=&p&&,&/span& &span class=&n&&Y2&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&其中,prdataset是PRTools5中的函数,目的就是构造数据集……&br&X是训练数据矩阵,每一行是一个数据点(一个object),每列是一个特征(feature)。Y是一个列向量,代表数据X的标签。怎么样,简单吧……&br&之后,就可以进行分类(classification)了!&br&&div class=&highlight&&&pre&&code class=&language-matlab&&&span class=&n&&w1&/span& &span class=&p&&=&/span& &span class=&n&&knnc&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&);&/span&
&span class=&n&&w2&/span& &span class=&p&&=&/span& &span class=&n&&qdc&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&);&/span&
&span class=&n&&w3&/span& &span class=&p&&=&/span& &span class=&n&&svc&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&);&/span&
&span class=&n&&w4&/span& &span class=&p&&=&/span& &span class=&n&&naivebc&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&);&/span&
&span class=&c&&% ......&/span&
&/code&&/pre&&/div&其中,w1, w2, w3, w4 就是训练好的分类器了。knnc是knn…qdc是Quadratic Bayes Normal Classifier,svc是svc……naivebc是Naive Bayes。&br&至于各种参数呢?函数都已经自动选择了,当然题主根据自己要处理的具体问题,也完全可以手动指定。&br&之后就可以测试结果了,我们选择B作为测试集。&br&&div class=&highlight&&&pre&&code class=&language-matlab&&&span class=&n&&e1&/span& &span class=&p&&=&/span& &span class=&n&&testd&/span&&span class=&p&&(&/span&&span class=&n&&B&/span&&span class=&o&&*&/span&&span class=&n&&w1&/span&&span class=&p&&);&/span&
&span class=&n&&e2&/span& &span class=&p&&=&/span& &span class=&n&&testd&/span&&span class=&p&&(&/span&&span class=&n&&B&/span&&span class=&o&&*&/span&&span class=&n&&w2&/span&&span class=&p&&);&/span&
&span class=&n&&e3&/span& &span class=&p&&=&/span& &span class=&n&&testd&/span&&span class=&p&&(&/span&&span class=&n&&B&/span&&span class=&o&&*&/span&&span class=&n&&w3&/span&&span class=&p&&);&/span&
&span class=&n&&e4&/span& &span class=&p&&=&/span& &span class=&n&&testd&/span&&span class=&p&&(&/span&&span class=&n&&B&/span&&span class=&o&&*&/span&&span class=&n&&w4&/span&&span class=&p&&);&/span&
&span class=&c&&% ......&/span&
&/code&&/pre&&/div&这里的e就是classification error……当然也可以选择其他函数,使用其他判断标准。&br&&br&但鉴于题主的数据是二维的,因此可视化是一个很好很强大的手段。(二维的!这年头哪还有这么好的事└(T_T;)┘……)。以下举例:&br&&div class=&highlight&&&pre&&code class=&language-matlab&&&span class=&n&&A&/span& &span class=&p&&=&/span& &span class=&n&&gendatb&/span&&span class=&p&&([&/span&50 50&span class=&p&&]);&/span&
&span class=&n&&B&/span& &span class=&p&&=&/span& &span class=&n&&gendatb&/span&&span class=&p&&([&/span&400 400&span class=&p&&]);&/span&
&/code&&/pre&&/div&此处使用了PRTools5自带的数据生成函数,A、B都是二维数据,2 classes,每类中有50(400)个objects。&br&&div class=&highlight&&&pre&&code class=&language-matlab&&&span class=&n&&w1&/span& &span class=&p&&=&/span& &span class=&n&&knnc&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&);&/span&
&span class=&n&&w2&/span& &span class=&p&&=&/span& &span class=&n&&qdc&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&);&/span&
&span class=&n&&w3&/span& &span class=&p&&=&/span& &span class=&n&&svc&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&);&/span&
&span class=&n&&w4&/span& &span class=&p&&=&/span& &span class=&n&&naivebc&/span&&span class=&p&&(&/span&&span class=&n&&A&/span&&span class=&p&&);&/span&
&span class=&c&&% ......&/span&
&/code&&/pre&&/div&……不用解释。&br&&div class=&highlight&&&pre&&code class=&language-matlab&&&span class=&n&&scatterd&/span&&span class=&p&&(&/span&&span class=&n&&B&/span&&span class=&p&&);&/span& &span class=&c&&% 做测试数据散点图&/span&
&span class=&n&&hold&/span& &span class=&n&&on&/span&
&span class=&n&&h1&/span& &span class=&p&&=&/span& &span class=&n&&plotc&/span&&span class=&p&&(&/span&&span class=&n&&w1&/span&&span class=&p&&);&/span& &span class=&c&&% 做出分类器边界图,以下类似&/span&
&span class=&n&&h2&/span& &span class=&p&&=&/span& &span class=&n&&plotc&/span&&span class=&p&&(&/span&&span class=&n&&w2&/span&&span class=&p&&,&/span& &span class=&s&&'b'&/span&&span class=&p&&);&/span&
&span class=&n&&h3&/span& &span class=&p&&=&/span& &span class=&n&&plotc&/span&&span class=&p&&(&/span&&span class=&n&&w3&/span&&span class=&p&&,&/span& &span class=&s&&'g'&/span&&span class=&p&&);&/span&
&span class=&n&&h4&/span& &span class=&p&&=&/span& &span class=&n&&plotc&/span&&span class=&p&&(&/span&&span class=&n&&w4&/span&&span class=&p&&,&/span& &span class=&s&&'y'&/span&&span class=&p&&);&/span&
&span class=&n&&legend&/span&&span class=&p&&([&/span&&span class=&n&&h1&/span&&span class=&p&&,&/span& &span class=&n&&h2&/span&&span class=&p&&,&/span& &span class=&n&&h3&/span&&span class=&p&&,&/span& &span class=&n&&h4&/span&&span class=&p&&],&/span& &span class=&s&&'knnc'&/span&&span class=&p&&,&/span& &span class=&s&&'qdc'&/span&&span class=&p&&,&/span& &span class=&s&&'svc'&/span&&span class=&p&&,&/span& &span class=&s&&'naivebc'&/span&&span class=&p&&)&/span&
&/code&&/pre&&/div&结果如下:&br&&img src=&/2387ae36edb807f95c346dc12b0d8b3c_b.jpg& data-rawwidth=&905& data-rawheight=&758& class=&origin_image zh-lightbox-thumb& width=&905& data-original=&/2387ae36edb807f95c346dc12b0d8b3c_r.jpg&&这时真相大白,原来gendatb是生成banana形状的数据…………而且显然,对于这种数据,knn的效果最好。&br&&br&总之PRTools5是一个非常强大的模式识别库。&br&&br&而且这时再看,机器学习也就不麻烦且不抽象了吧~~
首先关于语言的选择,个人认为还是Matlab比较合适,因为目前在学术领域,用Matlab的人感觉还是相对多一点的。题主如果在写代码的过程中遇到了问题,也比较方便向别人请教。目测开源的机器学习库也是Matlab更多。当然如果对程序速度有严格要求,就可以考虑C+…
来自子话题:
&img src=&/d130cf47aebd48fd1f081f13573f14bf_b.jpg& data-rawwidth=&1158& data-rawheight=&791& class=&origin_image zh-lightbox-thumb& width=&1158& data-original=&/d130cf47aebd48fd1f081f13573f14bf_r.jpg&&个人收藏的关于Matlab学习的教程,请各位大侠各取所需-.-&br&================分割线===============================================&br&百度云盘下载地址(不需帐号,点击链接直接下载)&br&链接:&a href=&/s/1bn7slgN& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&百度云 请输入提取密码&i class=&icon-external&&&/i&&/a& 密码:espj
个人收藏的关于Matlab学习的教程,请各位大侠各取所需-.-================分割线===============================================百度云盘下载地址(不需帐号,点击链接直接下载)链接: 密码:espj
来自子话题:
举个玩具例子来讲一下大概的思想吧:&br&首先打开画图板,写下一个&br&&img src=&/7ceb8caf634c32fea2ba14da9e1b0986_b.jpg& data-rawwidth=&200& data-rawheight=&200& class=&content_image& width=&200&&&br&线条分明,软绵无力,面对这么屌的一个字,我决定拍一段长达一秒的8x8分辨率的视频:&br&注意到知乎居然不能现实动图,站外链接如下:&br&&a href=&/blog/411/566.gif& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&/blo&/span&&span class=&invisible&&g/411/566.gif&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&取出几帧示意如下:&br&&img src=&/925bced9c282a0e37b356e879f81d3e1_b.jpg& data-rawwidth=&240& data-rawheight=&240& class=&content_image& width=&240&&&img src=&/a21dcda0eceabb_b.jpg& data-rawwidth=&240& data-rawheight=&240& class=&content_image& width=&240&&&img src=&/8d59dffc09a0e82c8b6a9aa2_b.jpg& data-rawwidth=&240& data-rawheight=&240& class=&content_image& width=&240&&因为手抖,并且相机分辨率低,已经没了屌样。&br&其实上面是我先把原图的图像随机平移,然后线性插值降采样到8x8分辨率得到的。在这个过程中我模拟了两件事:1) 随机平移模拟视频拍摄过程中的随机抖动,这是从多帧图像中重建超分辨率图像的关键,后面我会讲到,同时这也是符合现实生活规律的,虽然宏观来说拍摄一段静止的视频很容易,可是在像素级别任何微小的画面移动都可以被体现出来。2) 线性插值降采样模拟在CMOS上成像时图像元素小于像素时细节的丢失,线性插值是因为像素记录的值是在像素原件有效感光面积上的平均曝光强度。这两个过程的示意图如下:&br&&img src=&/6daa30ccd13_b.jpg& data-rawwidth=&588& data-rawheight=&754& class=&origin_image zh-lightbox-thumb& width=&588& data-original=&/6daa30ccd13_r.jpg&&&br&首先看第一个图中两个圆的例子,这两个圆大小完全一样,因为成像位置不同,圆在每个像素上覆盖的面积也不一样,对应像素的灰度会不一样,最后在像素阵列上对应了不同的图案,而这个信息正是进行超分辨率重建的基础。同样的对于写下的屌字,在不同的抖动位置上,也会得到不一样的低分辨率图案。&br&&br&所以问题可以描述为,一幅高分辨率的图像&img src=&/equation?tex=I_%7BH%7D& alt=&I_{H}& eeimg=&1&&,经过n次某种变换&img src=&/equation?tex=%5C%5B%7B%7BI%7D_%7BL%7D%7D%3DF%5Cleft%28+%7B%7BI%7D_%7BH%7D%7D+%5Cright%29%5C%5D& alt=&\[{{I}_{L}}=F\left( {{I}_{H}} \right)\]& eeimg=&1&&后得到了n幅低分辨率图像,其中第i幅图像为&img src=&/equation?tex=I_%7BL%2Ci%7D& alt=&I_{L,i}& eeimg=&1&&。而具体到视频录制中,&某种变换&就是每次拍摄每一帧的时候记录图像的过程,具体到这个例子中&img src=&/equation?tex=F%28%29& alt=&F()& eeimg=&1&&就是手抖导致的图像平移和线性插值的降采样。&br&所以本质上来讲从多帧低分辨率图像中进行超分辨率重建是个Inference的问题,高分辨率图像中的细节信息在录制成低分辨率帧的时候导致了丢失,然而抖动带来的位移相当于给了多一个维度的信息让我们可以通过算法对信息进行恢复,从某种意义上讲抖动保存了原来图像的细节信息。&br&抖动有多重要呢,先来做一个简单的试验,尽管采样到的帧分辨率都低得可怜,可是我们如果把抖动的信息恢复出来,也就是把抖动后的这些低分辨率图片对齐,然后求一个平均,结果如下:&br&&img src=&/eccd8c4607b_b.jpg& data-rawwidth=&60& data-rawheight=&60& class=&content_image& width=&60&&这时候已经可以勉强看出屌样了。。&br&进一步的,我们想推断出更高分辨率的图像,一个很自然的想法就是对超分辨率图像进行猜测,把猜测的图像变换后的结果和录制采样到的结果进行对比,然后把差异作为目标函数进行优化:&br&&img src=&/equation?tex=%5C%5B%5Cmin+%5Csum%5Climits_%7Bi%3D1%7D%5E%7Bn%7D%7B%5Cleft%7C+%7B%7BI%7D_%7BL%2Ci%7D%7D-F%5Cleft%28+%7B%7BI%7D_%7BH%2Ci%7D%7D+%5Cright%29+%5Cright%7C%7D%5C%5D& alt=&\[\min \sum\limits_{i=1}^{n}{\left| {{I}_{L,i}}-F\left( {{I}_{H,i}} \right) \right|}\]& eeimg=&1&&&br&对于上面这个优化问题,如果抖动的范围完美覆盖了一个像素周期以内的所有区域,并且每一帧都采样到了这个区域内的所有的点的话,那么理论上是可以恢复出高分辨率图像的,然而通常情况并非如此,比方说我想把我例子中24帧8x8的视频恢复成一幅48x48的高分辨率图像,也就是6倍的分辨率提升,那么24帧显然不够,这种情况叫做ill-posed,也就是说有无数个解可以满足这个优化问题,所以需要一些regularization。通常而言我们看到的图像一般都是较为平滑的,而不是像老式电视机里没信号是那样满屏的雪花斑噪声,所以可以加入一项抑制图像梯度的项:&br&&img src=&/equation?tex=%5C%5B%5Cmin+%5Csum%5Climits_%7Bi%3D1%7D%5E%7Bn%7D%7B%5Cleft%7C+%7B%7BI%7D_%7BL%2Ci%7D%7D-%7B%7BF%7D_%7Bi%7D%7D%5Cleft%28+%7B%7BI%7D_%7BH%7D%7D+%5Cright%29+%5Cright%7C%7D%2B%5Cleft%7C+%5Cnabla+%7B%7BI%7D_%7BH%7D%7D+%5Cright%7C%5C%5D& alt=&\[\min \sum\limits_{i=1}^{n}{\left| {{I}_{L,i}}-{{F}_{i}}\left( {{I}_{H}} \right) \right|}+\left| \nabla {{I}_{H}} \right|\]& eeimg=&1&&&br&注意我这里用的都是L1 Norm,一般来说L1的优点是使梯度的分布更为稀疏,这样能更好的保存边缘,另外计算量也小。&br&用遗传算法来解这个优化问题试试,得到结果如下:&br&0代:&br&&img src=&/f71be6c15f14f657c090afe5e5ed21a0_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&10代&br&&img src=&/fbaa7111a8c_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&20代&br&&img src=&/9e5bf0bea15ee23e9343dae29d43e7ac_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&50代&br&&img src=&/2d9afe298ca733fa34aca0a0b7568b2a_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&100代&br&&img src=&/bf6a80bbf2a28b9c8ba4caa_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&200代&br&&img src=&/801e14dcda6e19f6ae1dc9de4e120be2_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&500代&br&&img src=&/eea6d082d49d0eb1d3dcff53e34cfdf5_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&1000代&br&&img src=&/40bfb2c9b59ac23bed42e6fd559e0726_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&2000代&br&&img src=&/def0b6babbdc6_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&20000代&br&&img src=&/b19c457db5d_b.jpg& data-rawwidth=&48& data-rawheight=&48& class=&content_image& width=&48&&进化过程动图的链接:&br&&a href=&/blog/411/201.gif& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&/blog/411/247.gif&i class=&icon-external&&&/i&&/a&&br&因为是GA,所以看上去还是有一点瑕疵,不过屌样已经很明显了,如果继续优化应该能得到完美的结果。当然了,如前所述,我只是用一个玩具例子讲一下超分辨率重构的基本思想,具体的问题中,除了抖动和低分辨率采样,还有镜头PSF(Point Spread Function),图像的转动和其他形变,场景中的物体移动等因素,优化算法也不会是GA这种相比起来漫无目的的搜索(虽然我还修改了变异和交叉函数)。另外降采样我这里用的是线性插值,这包含一个假设,就是每个像素的感光元件的有效感光面积接近这个元件在传感器表面占用的面积,而这个假设通常是很难成立的,尤其是对现在消费级相机和手机中流行的CMOS,还有一种常见的降采样是点采样,这个就比线性采样相对而言简单一些,然而这个通常也不成立,并且一般应用的消费级CMOS还要考虑Bayer阵列的问题。&br&&br&至于楼主问到PS能否实现,据我所知应该没有。不过OpenCV里做这件事已经非常简单了,一个简化版的代码如下:&br&&div class=&highlight&&&pre&&code class=&language-cpp&&&span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&Ptr&/span&&span class=&o&&&&/span&&span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&superres&/span&&span class=&o&&::&/span&&span class=&n&&FrameSource&/span&&span class=&o&&&&/span& &span class=&n&&frames&/span& &span class=&o&&=&/span& &span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&superres&/span&&span class=&o&&::&/span&&span class=&n&&createFrameSource_Video&/span&&span class=&p&&(&/span& &span class=&s&&&diao.mp4&&/span& &span class=&p&&);&/span&
&span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&Ptr&/span&&span class=&o&&&&/span&&span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&superres&/span&&span class=&o&&::&/span&&span class=&n&&SuperResolution&/span&&span class=&o&&&&/span& &span class=&n&&super_res&/span& &span class=&o&&=&/span& &span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&superres&/span&&span class=&o&&::&/span&&span class=&n&&createSuperResolution_BTVL1&/span&&span class=&p&&();&/span&
&span class=&n&&super_res&/span&&span class=&o&&-&&/span&&span class=&n&&setInput&/span&&span class=&p&&(&/span& &span class=&n&&frames&/span& &span class=&p&&);&/span&
&span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&Mat&/span& &span class=&n&&super_resolved_image&/span&&span class=&p&&;&/span&
&span class=&n&&super_res&/span&&span class=&o&&-&&/span&&span class=&n&&nextFrame&/span&&span class=&p&&(&/span& &span class=&n&&super_resolved_image&/span& &span class=&p&&);&/span&
&span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&imshow&/span&&span class=&p&&(&/span& &span class=&s&&&Super Resolved Image&&/span&&span class=&p&&,&/span& &span class=&n&&super_resolved_image&/span& &span class=&p&&);&/span&
&span class=&n&&cv&/span&&span class=&o&&::&/span&&span class=&n&&waitKey&/span&&span class=&p&&(&/span& &span class=&mi&&0&/span& &span class=&p&&);&/span&
&/code&&/pre&&/div&我用我的高级智能手机拍了一段长达2秒的176x144分辨率的视频测试了一下这段代码:&br&视频截图(为方便比较用Nearest Neighbor放大到和重建图像等同分辨率):&br&&img src=&/7beaf88f5778_b.jpg& data-rawwidth=&704& data-rawheight=&576& class=&origin_image zh-lightbox-thumb& width=&704& data-original=&/7beaf88f5778_r.jpg&&重建的超分辨率图像:&br&&img src=&/196c934c63015bea7d3e1c_b.jpg& data-rawwidth=&690& data-rawheight=&562& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&/196c934c63015bea7d3e1c_r.jpg&&效果还行。通常情况下超分辨率重建运算量还是比较大的,所以实际情况代码不会这么简单,一个用到GPU的基于OpenCV的例子可以在OpenCV的sample code里找到。
举个玩具例子来讲一下大概的思想吧:首先打开画图板,写下一个线条分明,软绵无力,面对这么屌的一个字,我决定拍一段长达一秒的8x8分辨率的视频:注意到知乎居然不能现实动图,站外链接如下:取出几帧示意如下:因为手抖,并且相机分…
来自子话题:
我也是南航人机环的,我10级。讨大作业答案讨到知乎上来了,你丢不丢人!?
我也是南航人机环的,我10级。讨大作业答案讨到知乎上来了,你丢不丢人!?
来自子话题:
------写在所有之前-----【v
1.1】&br&推荐一个网站,projecteuler.org是一个编程数学网站,把上面的题用matlab来一遍matlab就学得差不多了&br&-----------------------------------------------------------------------------------&br&今天闲,扯一扯我是如何入门MATLAB的&br&&img src=&/296d5c1741acdd3df66f909fb9be390b_b.jpg& data-rawwidth=&400& data-rawheight=&400& class=&content_image& width=&400&&大致是这样的,嗯2014a(虽然本校花大家钱买了正版2015a,心累懒得装了)&br&----------------------------------------正题--------------------------------------&br&开始:&准备工作&MATLAB里的所有运算都是以矩阵为基础的,所以想学好MATLAB,线性代数是必须的,也不用学的太深稍有了解就好,毕竟最重要的还是编程思想&br&&br&然后就是入门了:选一本自习喜欢而且适合入门的书&br&&a href=&http://home./~pjer1316/1.pdf& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&个人觉得这本书比较适合入门&i class=&icon-external&&&/i&&/a&&br&&b&最重要的三条&/b&&br&&ol&&li&&b&看help&/b&&/li&&li&&b&看help&/b&&/li&&li&&b&看help&/b&&br&&/li&&/ol&值得一提的是MATLAB的自带程序包,大大提高生产力&br&这是几十万mathworks精英码农被逼加班熬夜优化再优化的东西,利用起来会发现生活很美好&br&&img src=&/057b0aa2999_b.jpg& data-rawwidth=&941& data-rawheight=&75& class=&origin_image zh-lightbox-thumb& width=&941& data-original=&/057b0aa2999_r.jpg&&&br&熟悉了基础操作之后可以开始尝试一些更深入一点的内容,比如图像操作,视频操作,去实现一些更加复杂酷炫的内容,这个时候也可以开始着手去写一些自己的GUI&br&对,MATLAB也可以写GUI,而且是在强大的矩阵运算做后盾的情况下,GUI实现相同功能的代码量和效率都是非科学计算语言不能比的&br&&img src=&/e401bb98d3ff990048acf06c2db700a4_b.jpg& data-rawwidth=&551& data-rawheight=&440& class=&origin_image zh-lightbox-thumb& width=&551& data-original=&/e401bb98d3ff990048acf06c2db700a4_r.jpg&&这个是我先来无事写的误差分析的GUI第一次写,十分笨拙,连查help带码代码花了一下午&br&&br&最后回到本提问,如何学好MATLAB。。。多练,多码,对,就是我开头给的那个projecteuler.org&br&用MATLAB做几十题就差不多可以熟练应对普通量级的计算任务啦&br&&br&---------------------------------------------------------------&br&对了&a href=&http://home./~pjer1316/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Pjer&i class=&icon-external&&&/i&&/a&&br&这个里面有些资源,我收藏的,喜欢就拿去咯&br&&br&version 1.1 新增部分&br&【--日22:15:58--】 &br&关于计算效率,现行的大部分计算机数学题大多数都会有一个特点,可以用很直观很好想的办法但是要消耗很大计算资源(暴力流),还有就是可以用很巧妙的方法回避大宗量的计算和储存任务(智商流),其中智商流对数学功底要求比较深厚(天生数学水平捉急)&br&&br&而这里的计算效率指的是包含计算程序(或计算命令)开发在内的时间成本。也是有感于我刚刚回答的另外一个题&a href=&/question/& class=&internal&&10个数字做加法,数字不能重复,该怎么做? - 算法&/a&&br&&br&问题不在赘述,我刚看到这个问题的时候,第一反应是大致估计计算成本上限,就是用完全暴力的方法枚举加筛选所要计算次数的数量级,发现完全低于10^6也就是GHz核心的电脑不足千分之一秒可以给出结果于是这时出现了相当一批码农兄弟上c++,python 程序我看了,的的确确做了优化使时间复杂度压缩到有艺术感【*_*】,看到这些几十行甚至上百行的代码我默默打开MATLAB,两个命令给出了相同的答案&a href=&/question//answer/& class=&internal&&Pjer 的回答&/a&,整个过程五分钟左右&br&&br&记得在&a href=&/bbs/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MATLAB小论坛&i class=&icon-external&&&/i&&/a&里曾经看到过一个(好像是)叫,【一行计算----科学计算之美】的文章刚去找没找到大致是说那些可以在一行里完成的计算稍复杂的计算或者可视化。当然是用matlab,mathematica中的完成,因为这两个语言的底函数实在是太丰富了,涵盖了异常矩阵和人工智能算法和底函数。&br&&blockquote&&b&人类历史从使用工具开始&/b&&/blockquote&所以:&br&
如果不是为了锻炼c++或python吧啦吧啦语法和算法复杂度优化能力,单单把任务任务来完成的话&br&&img src=&/44b10a6fe4fc8fdae645_b.jpg& data-rawwidth=&468& data-rawheight=&455& class=&origin_image zh-lightbox-thumb& width=&468& data-original=&/44b10a6fe4fc8fdae645_r.jpg&&&br&&br&&br&&br&&br&&br&&br& 依然看心情更
------写在所有之前-----【v 1.1】推荐一个网站,projecteuler.org是一个编程数学网站,把上面的题用matlab来一遍matlab就学得差不多了-----------------------------------------------------------------------------------今天闲,扯一扯我是如何入门MAT…
来自子话题:
零基礎的可以看看 &a href=&/language/fast-introduction-for-programmers/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Wolfram Language Tutorial: A Fast Introduction for Programmers&i class=&icon-external&&&/i&&/a& ,官方的快速入門,對浩繁的功能選擇了最核心的一部份做的極簡風格的入門教程,一個小時就入門。&br&&br&然後讀 Shifrin 的 《&a href=&http://www.mathprogramming-intro.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mathematica programming&i class=&icon-external&&&/i&&/a& ﹣ An Advanced Introduction》,英文能力夠的讀英文原作。不夠的,可以讀志願者翻譯的中文版(不完整)&a href=&http://www.mathcraft.org/wiki/index.php?title=Mathematica_%E7%BC%96%E7%A8%8B%EF%BC%9A%E9%AB%98%E7%BA%A7%E5%AF%BC%E8%AE%BA& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://www.&/span&&span class=&visible&&mathcraft.org/wiki/inde&/span&&span class=&invisible&&x.php?title=Mathematica_%E7%BC%96%E7%A8%8B%EF%BC%9A%E9%AB%98%E7%BA%A7%E5%AF%BC%E8%AE%BA&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a& 。通讀一遍裨益良多。&br&&br&在有了一定基礎后,如果要達到精通,需要長期持續學習,主要是在解決實際問題的過程中學,原因是 Mathematica / Wolfram 語言的內容和功能「 包羅萬象」,用了 n 年后你還會有不斷髮現「驚喜」,而且一個新版本發佈出來經常會增加很多新功能。在解決問題的過程中參考 &a href=&/language/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Wolfram Language & System Documentation Center&i class=&icon-external&&&/i&&/a& (官方幫助文檔),反復看裡面的語法說明、專項說明、例子,自己常用的功能就會越來越熟。官方文檔里有一部份寫成專題的稱為「&a href=&/learningcenter/tutorialcollection/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tutorial&i class=&icon-external&&&/i&&/a&」,可以挑自己感興趣的專門拿出來深入學習。&br&&br&還可以看 &a href=&& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mathematica Stack Exchange&i class=&icon-external&&&/i&&/a& 上的&a href=&/questions/18/where-can-i-find-examples-of-good-mathematica-programming-practice& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&學習資料表&i class=&icon-external&&&/i&&/a&、&a href=&/questions/18393/what-are-the-most-common-pitfalls-awaiting-new-users& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&初学者常见错误&i class=&icon-external&&&/i&&/a&,MathCraft.org 整理的&a href=&http://www.mathcraft.org/wiki/index.php?title=Mathematica_%E5%AD%A6%E4%B9%A0%E8%B5%84%E6%BA%90& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&參考資料表&i class=&icon-external&&&/i&&/a&。這時候只怕學習時間不夠用了。還可以經常逛逛 &a href=&& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mathematica Stack Exchange&i class=&icon-external&&&/i&&/a&,&a href=&/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Wolfram Community&i class=&icon-external&&&/i&&/a&,關注Wolfram 官方微博
&a href=&/wolframchina& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&@WolframChina&i class=&icon-external&&&/i&&/a&,有最新的和 Mathematica / Wolfram 語言相關的信息發佈。
零基礎的可以看看
,官方的快速入門,對浩繁的功能選擇了最核心的一部份做的極簡風格的入門教程,一個小時就入門。然後讀 Shifrin 的 《 ﹣ An Advanced Introduct…
来自子话题:
谢邀。&br&在我看来,题目中的两个例子,正好是计算机辅助证明[1]的正反典型。&br&因此我就在这两个例子的基础上讲一下计算机辅助证明。&br&&br&&b&四色定理&/b&(1976年由计算机辅助证明)[2]&br&给定一个平面图,可以给图的顶点涂上最多四种颜色,使得任意一条边的两端颜色不同。&br&&br&该定理的证明是非常成功和完美的:&ul&&li&证明方法来自几代人对数学本质的探索,证明过程是人类可以检验的。&br&&/li&&li&证明本身推进了对四色问题的研究,帮助找到了高效的涂色算法。&br&&/li&&li&这一证明之后人们继续努力,找到了更简洁的计算机辅助证明。&br&&/li&&li&2004年,在机器证明软件Coq的帮助下,&b&计算机帮助人类找到了形式证明&/b&。&/li&&/ul&(最后那个Coq [3]是我在法国的母校参与开发,自豪一下)&br&以上我们看到:&ul&&li&计算机不仅可以帮助人类运算和穷举,现在还可以帮助人类找出形式证明。&br&&/li&&li&计算机证明了的,数学家们会继续研究,很多定理会一遍又一遍地被证明。&br&&/li&&/ul&因此四色定理的数学和计算机互相促进的典型范例。&br&============&br&&b&开普勒猜想&/b&(1998年可能由计算机辅助证明)[4]&br&相同大小的球堆积起来,最密集的堆积方法是面心立方排列或六方排列,密度约0.74048。&br&&br&这是数学界的耻辱!!!!!并且和我目前的博士研究相关orz……有个大牛说过:&blockquote&所有的数学家都相信,所有的物理学家都知道,这个定理是正确的,但是我们证明不了。&/blockquote&值得一提的是,台湾数学家项武义给出过一个几何证明,但是现在普遍认为该证明不完全。&br&Hales的证明方法也是来自几代人对数学本质的研究,但是程序+数据+結果共达3G,花了两年时间,关键是&b&人类发现自己无法验证了&/b&。证明之后人类对该问题仍然没有很大的突破……&br&对该问题的研究还在继续,和我相关的是高维的球堆[5]。我们目前只知道8维以下和24维的最高密度,其他几乎一无所知。另一些人正在用各种方法找密度的上限和下限,不断逼近。&br&而Hales也正在试图得到机器证明软件HOL [6]的帮助,最終得到一个形式证明。&br&&br&[1] &a href=&http://en.wikipedia.org/wiki/Computer-assisted_proof& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&en.wikipedia.org/wiki/C&/span&&span class=&invisible&&omputer-assisted_proof&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[2] &a href=&http://en.wikipedia.org/wiki/Four_color_theorem& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&en.wikipedia.org/wiki/F&/span&&span class=&invisible&&our_color_theorem&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[3] &a href=&http://en.wikipedia.org/wiki/Coq& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&en.wikipedia.org/wiki/C&/span&&span class=&invisible&&oq&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[4] &a href=&http://en.wikipedia.org/wiki/Kepler%27s_conjecture& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&en.wikipedia.org/wiki/K&/span&&span class=&invisible&&epler%27s_conjecture&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[5] &a href=&http://en.wikipedia.org/wiki/Sphere_packing#Hypersphere_packing& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&en.wikipedia.org/wiki/S&/span&&span class=&invisible&&phere_packing#Hypersphere_packing&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&[6] &a href=&http://en.wikipedia.org/wiki/HOL_theorem_prover& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&en.wikipedia.org/wiki/H&/span&&span class=&invisible&&OL_theorem_prover&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&
谢邀。在我看来,题目中的两个例子,正好是计算机辅助证明[1]的正反典型。因此我就在这两个例子的基础上讲一下计算机辅助证明。四色定理(1976年由计算机辅助证明)[2]给定一个平面图,可以给图的顶点涂上最多四种颜色,使得任意一条边的两端颜色不同。该定…
数学不是做一般题目就可以加深理解的,尤其是基础课,了解其本质的唯一办法是学更深刻的东西,而不是算习题。&br&&br&&br&关于记笔记:大学以前当然不用记,本来就没什么东西。&br&数分,高代,如果老师讲得和所用的教科书差不多,也不需要记。&br&&br&关键是记什么?&br& 一个定理配一个合适的例子来帮助记忆&br& 计算的技巧,证明的关键&br& 各部分内容是如何串联起来的&br&&br&你记好几种求行列式的详细过程,不如记 打洞,Vandermonde…这几个词,再分别解释各是什么意思&br&求复杂的积分的方法,把常用的换元记下来,就不再需要记冗长的过程。&br&对比吉米里的积分题,说大实话,没有意义…里面的证明题,说大实话也没有意义。&br&&br&时代在进步!习题集也在进步哎! 《数学分析习题课讲义》听过没?这才是紧跟时代发展的配套辅导书&br&丘维声的高等代数辅导书听过没?上下两册上千页学懂可以笑傲线性代数了。&br&&br&&br&做研究的话要做好课堂笔记, 学习笔记,研究笔记,讨论课笔记才能得心应手&br&&br&1.记笔记的方法有哪些,怎样记笔记比较好?&br&针对不同的类型,要以不同的方式做笔记&br&课堂笔记就是听教授讲课时的笔记,首先是否有指定参考书,对比所讲内容和参考书上差距在哪。 若差距不大,基本为摘取教科书中重点部分进行讲解,那完全可以只记下编号和页数,把补充的内容记下即可。 当然这种课最好少听。&br&若差距较大,老师有自己的讲义来讲,首先可以说明教师花了时间用于教学准备,是值得跟着老师的安排进行做笔记的,这时也很简单,抄板书即可。 至于怎么抄,那就八仙过海各显神通。如果可以搞来老师的讲义还可以对比看看。 很多数学课程还是需要手抄来加深理解加深印象的。 比如抽象代数,看似简单实则千变万化,看似繁杂又蕴涵大道至简&br&&br&学习笔记是自学一些东西时所记,这时笔记的关键是 参考书的详细信息和多少页哪个定理,确保以后找原文时方便, 有时候学习比较跳跃,记录的关键是重要的定理,及其中有关的定义,还有一个适合的例子。 因为书中可能写了很长才从定义到了定理的叙述,要会挑选合适的内容做记录。 另外要记录的是觉得可以提升理解的叙述&br&比如学微积分,要记的是 Stokes公式是微积分基本定理在高维的推广。 并写出为什么,这样会加深理解,而不是说会用Green公式,stokes公式算积分就可以理解其中的想法。&br&&br&其他笔记也各有侧重,最难的要属 讲课用的笔记。&br&&br&2.学数学还有什么好的方法可供参考?&br&向前学,不要老守着上课学的一点点翻来覆去复习总结 。 这是一个非常优秀的老师告诉我(们)的。 不要停下来,深刻的东西并不是难的东西,反而可能是更简单的关系,就比如微积分里,牛莱公式,stokes,green其实统一起来 就是 对偶。并且推广以后的形式更简洁,更美好。&br&还有很多东西,比如很多很多复杂的操作后拥有的性质可以归结为找伴随函子,如层化,张量积等等。&br&&br&3.记笔记可以用电脑记吗?有没有类似软件?相比于用手记笔记,有什么特点吗? &br&当然可以用。TeX做笔记非常优美。 &br& 有个大神说自己讲课前的讲稿先手写一遍,再修改两遍以后才打成电子稿。&br&直接电脑记的话反正我是记不住……电脑记完是存档用的。&br&&br&另外你在纸上记是非线性的,可以随便画符号,打在电脑上虽然可以实现但比较起来不太方便,如果要存档的话可以使用 扫描软件来实现。
数学不是做一般题目就可以加深理解的,尤其是基础课,了解其本质的唯一办法是学更深刻的东西,而不是算习题。关于记笔记:大学以前当然不用记,本来就没什么东西。数分,高代,如果老师讲得和所用的教科书差不多,也不需要记。关键是记什么? 一个定理配一个…
来自子话题:
MATLAB编程的精髓在我看来就是:矩阵化和向量化。将其他语言中需要用循环才能实现的功能使用矩阵运算来实现。比如将一个数组arr进行N次的延拓:&blockquote&arr = [1 2 3 4 5]';&br&tmp = arr * ones(1, N);&br&arr = tmp(:)&/blockquote&在上面的代码中,使用了列向量和行向量的乘积tmp实现了数据的N次复制,最终利用MATLAB矩阵的列优先存储的性质,将矩阵tmp拉伸成向量。&br&矩阵化的另一个体现就是逻辑矩阵的应用,假设a是一个标量,那么a & 3这类表达式的值为1或0。MATLAB有意思的一个性质是,当A时一个矩阵时,A & 3将返回一个充满0和1的矩阵,这个矩阵的每个元素值取决于它们与3这个常数比较大小的结果。利用这个性质,我们能够实现将矩阵A中所有非负元素求和的功能:&blockquote&A = randn(5, 5);&br&val = sum(sum(A(A & 0))); &/blockquote&A与逻辑矩阵进行元素间相乘后,得到的矩阵仅在非零元素处保持不变,其他位置都被设为0。此时将矩阵每个元素相加,就是A中所有非负元素的和。&br&以上只是简单的例子,学好MATLAB最重要的是实践。
MATLAB编程的精髓在我看来就是:矩阵化和向量化。将其他语言中需要用循环才能实现的功能使用矩阵运算来实现。比如将一个数组arr进行N次的延拓:arr = [1 2 3 4 5]';tmp = arr * ones(1, N);arr = tmp(:)在上面的代码中,使用了列向量和行向量的乘积tmp实现…
来自子话题:
矩阵乘法是一个相对成熟的问题,根据矩阵的稀疏程度有不同的优化算法。&br&不使用GPU加速的MATLAB版本采用的是BLAS中的General Matrix Multiplication[1]。学术界有各种矩阵乘法算法将其复杂度降低到O(n^2.x),例如Strassen和Winograd算法,在BLAS中应该已经使用了Strassen算法。&br&如果你的MATLAB是安装了Parallel Computing Toolbox的话,那么很可能它已经在使用GPU进行计算了。这种情况下采用的是MAGMA[2]。我没有使用过MAGMA,但我猜测它应该使用了cuBLAS来计算矩阵乘法。&br&宏观角度上对矩阵乘法的优化包括对局部内存使用的优化(Blocked/Tiled)以及对中间运算步骤的优化(Strassen/Winograd),实现细节上的优化就非常繁多了。比如loop unrolling,多级的tiling,指令级并行等等。其中会牵扯到一些编译器和体系结构的知识,似乎对仅仅希望使用矩阵乘法函数的用户来讲没有什么太大必要去探究。所以我认为写出比MATLAB更快的矩阵乘法是可行但困难的。&br&[1] &a href=&http://en.wikipedia.org/wiki/General_Matrix_Multiply& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&General Matrix Multiply&i class=&icon-external&&&/i&&/a&&br&[2] &a href=&http://icl.cs.utk.edu/magma/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&MAGMA&i class=&icon-external&&&/i&&/a&
矩阵乘法是一个相对成熟的问题,根据矩阵的稀疏程度有不同的优化算法。不使用GPU加速的MATLAB版本采用的是BLAS中的General Matrix Multiplication[1]。学术界有各种矩阵乘法算法将其复杂度降低到O(n^2.x),例如Strassen和Winograd算法,在BLAS中应该已经使…
来自子话题:
更新!!!&br&&br&今天看到一个屌爆天的东西,也许正是楼主你需要的。&br&&a class=& external& href=&/Akollek/LaTeX-Alpha& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&/Akollek/LaTe&/span&&span class=&invisible&&X-Alpha&/span&&span class=&ellipsis&&&/span&&i class=&icon-external&&&/i&&/a&&br&&br&用\calc{Mathematica Code}直接在LaTeX中引用Mmtc的计算,用\graphic引用作图。&br&&br&放两张图大家感受一下:&br&&br&&img data-rawheight=&424& data-rawwidth=&615& src=&/69e8e41baad3c9502e92_b.jpg& class=&origin_image zh-lightbox-thumb& width=&615& data-original=&/69e8e41baad3c9502e92_r.jpg&&&img data-rawheight=&424& data-rawwidth=&615& src=&/a752fe35c41d398c4e8a5e7fd251d1bd_b.jpg& class=&origin_image zh-lightbox-thumb& width=&615& data-original=&/a752fe35c41d398c4e8a5e7fd251d1bd_r.jpg&&&br&&br&====================================================&br&这个问题问的好乱,,(但愿是我理解力差吧),下面针对你题干里提到的问题我一条一条说。&br&不过能力所限,这个答案没提到“高效联合使用”,见谅。&br&&ol&&li&LaTeX要调用Mathematica代码的话,很重要的一个问题是MathKernel得是开启状态,我自己并没有觉得有这样的必要。需要计算就直接用Mathematica计算好了,Mathematica可以输出为标准LaTeX格式的代码,到LaTeX里直接粘贴就OK了。&img data-rawheight=&149& data-rawwidth=&330& src=&/02c2afdc3cfcfc95f33a18c442c30150_b.jpg& class=&content_image& width=&330&&&br&&/li&&li&Mathematica本身也可以当一个不错的排版工具用,当然这个排版更适合作为一种文档查看,而不是像LaTeX那样更倾向于打印效果或者纸版文档的效果。Mathematica自家的大多文档、演示、以及SlideShow(即演示幻灯),这是Mathematica9自带的SlideShow模板库。&img data-rawheight=&633& data-rawwidth=&1022& src=&/eefcaa5a71deb_b.jpg& class=&origin_image zh-lightbox-thumb& width=&1022& data-original=&/eefcaa5a71deb_r.jpg&&&/li&&li&你说的Item,以及你没提到的ItemNumbered等,都是内置在Mathematica里面的。&img data-rawheight=&524& data-rawwidth=&808& src=&/6c5fb172bef967c489d63c_b.jpg& class=&origin_image zh-lightbox-thumb& width=&808& data-original=&/6c5fb172bef967c489d63c_r.jpg&&&/li&&li&在Mathematica中输入文本和Expression混排,我觉得是不合适的。LaTeX是排版软件,它可以不关心你的dy/dx其中d和x/y是什么关系,但Mathematica不行,它必须明确其中任何一个字母的含义,是文本就是文本,是表达式就是表达式。要想混排,我想到一个权宜之计就是全转换成文本。&img data-rawheight=&139& data-rawwidth=&581& src=&/8e37bca2cbf8d_b.jpg& class=&origin_image zh-lightbox-thumb& width=&581& data-original=&/8e37bca2cbf8d_r.jpg&&&/li&&/ol&
更新!!!今天看到一个屌爆天的东西,也许正是楼主你需要的。用\calc{Mathematica Code}直接在LaTeX中引用Mmtc的计算,用\graphic引用作图。放两张图大家感受一下:====================================================这个问题问的…
来自子话题:
根据《21天精通C++》里面描述的方法,你先花几十年时间把这些东西学会了,然后研究生物让自己显著延缓衰老,然后研究物理做一个时光机,回到一个月后把自己杀掉代替他。
根据《21天精通C++》里面描述的方法,你先花几十年时间把这些东西学会了,然后研究生物让自己显著延缓衰老,然后研究物理做一个时光机,回到一个月后把自己杀掉代替他。
来自子话题:
首先题主我不知道你是直接想要快速对文字进行识别呢,还是想自己写一个东西来实现对文字的识别分类。对于前者,现有的工具其实已经很成熟了。一般来说用的都是OCR,也就是&a href=&/link?url=toxkYJ-JTc3QHBZzQOEXu1qDgKZFkW0vG5YKLiSmngaXRrrzHNNHMJagrI2yRLEEYCbyYNj3uOw5hT1S_NyL1kec2XyEqfcB8mdEIEwAMD0JClnr2EJIPKx1bjz6z2wl& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&光学字符识别_百度百科&i class=&icon-external&&&/i&&/a&,我之前用的是他的python接口——pytesser,想用的话直接百度即可。当然这个东西MATLAB里面不知道有没有。。。&br&==============================&br&当然,看到题主说是自己想用EM来进行分类。那我就当做你是想写一个文字识别包了。最近正巧我也在做类似的工作。现在就来简述一下工作步骤。&br&1、图片获取&br&由于我所做的是验证码识别,因此首先要获得网站验证码。这个不管你用什么方法,直接把图片爬下来统一命名就好。比如说我就是用python爬取的本校教务系统的验证码,爬虫原理什么的在此就不赘述了,随便一百度到处都是。然后把爬下来的图片导入工作路径,我们再进行进一步处理。&br&&img src=&/034b9a86bbbc0_b.jpg& data-rawwidth=&1211& data-rawheight=&722& class=&origin_image zh-lightbox-thumb& width=&1211& data-original=&/034b9a86bbbc0_r.jpg&&如图是我爬下来的验证码,为了充实训练集,建议还是多爬一些。&br&&br&2、图片处理&br&因为爬下来的验证码中包含很多噪点,首先我们要对其进行去噪工作,这个在MATLAB中就很好实现了,matlab的image processing toolbox有很多函数可以调用,经过试验,我发现中值滤波可以起到很好的去噪效果。当然控制得好的话开闭运算跟高斯阈值分割估计能起到更好地去噪效果。如果你图片中的文字足够清晰且背景没有噪点,那么这一步可以省略。有一点需要强调的是,对于非灰度图的图片,建议上来还是先转化成灰度图以方便计算。这些在MATLAB中都有相应的函数,题主自己找一下吧(原谅我是用Python做的。。。MATLAB好久没用函数名都忘得差不多了)&br&&img src=&/c1b398e4193b15bcf927543_b.jpg& data-rawwidth=&120& data-rawheight=&30& class=&content_image& width=&120&&处理前的验证码&br&&img src=&/14880da5aff4b1c3f1e2cd6_b.jpg& data-rawwidth=&120& data-rawheight=&30& class=&content_image& width=&120&&处理后的验证码&br&&br&清晰了很多吧:)&br&&br&3、图片切割&br&对于连续的英文单词,我们需要对其进行切割建立字模。由于我们之前已经将背景置白,因此我们可以创建一个counter变量来对每个字母边界进行判断。counter用于统计每一列黑色像素点的数量(经过观察,我这里的黑色定义为灰度值&=110),如果counter == 0就算是遇到了边界。这样我们就能很轻松的切割出每个字模了。当然,在之后的切割中我发现,我们仍需要对采集到的字模进行进一步处理。原因有二,一方面是因为有的噪点因为没有被完全去除导致我们可能切割出空白区域,另一方面可能有的字母之间会连在一起,因此出现了一个字模中有两个字母的情况。对于这两种情况,我们可以根据字模所包含的列数来进行筛选。在我这里当字模的列数在2-24之间的时候基本上每个字模内都是单个字母。&br&&img src=&/9a3ea75f590c073d882cfdc958b40c27_b.jpg& data-rawwidth=&1189& data-rawheight=&721& class=&origin_image zh-lightbox-thumb& width=&1189& data-original=&/9a3ea75f590c073d882cfdc958b40c27_r.jpg&&切下来的字模&br&&br&4、图片二值化&br&这也许是所有步骤中最重要的一步,这一步之后意味着我们将可以直接对图片进行分类了。记住我们未来对所有文字进行识别的时候,所有的步骤都是先切割,再二值化,最后进行分类。因此未来我们二值化的是字模而非届时的整个图片。(这不都是废话吗衰。。。)对于字模的二值化也很简单,首先我们对每张图片的每个像素进行遍历,黑的置1白的置0,这个黑白的界定跟前面一样,用灰度值大小进行判断就好了。当然为了优化程序性能,我在之前的判断的时候就已经将图片二值化了。二值化后将数据写好到txt文档中就好了。值得强调的一点是,因为我们事后要先对所有数据进行人工分类,那个的排布实在是像打了马赛克。。。。所以还是用原来的图片进行人工分类比较好。为了关联好每个字模图片和txt文件,我们可以建立一个fileid变量,对于相对应的图片和txt文档用相同的fileid当做文件名。这样在后面人工识别后进行重命名的时候就很方便了。&br&&br&好了下面进入打码时间&br&&img src=&/7cd41f3ffb135dac1f61_b.jpg& data-rawwidth=&117& data-rawheight=&482& class=&content_image& width=&117&&&br&z&br&&img src=&/ad0dec482e6040f6cca080edae19c00c_b.jpg& data-rawwidth=&126& data-rawheight=&478& class=&content_image& width=&126&&&br&v&br&&img src=&/1ddc2a7dc144b517c0d7cc526a238ee7_b.jpg& data-rawwidth=&97& data-rawheight=&486& class=&content_image& width=&97&&&br&k&br&说实话其实还是挺好认的。。&br&但是看多了就。。。。。&br&开始拿着这些给别人帮我认字他们说要吃了我。。。&br&&br&好了言归正传&br&接下来就是人工认字来给这些鬼分个类了。&br&当然如果你的字够正够标准的话可以考虑直接用OCR分类。由于本校的验证码是歪的,喂给OCR后它实在是表示识别不能。。。。各种2认成z,s认成5,0O不分,最扯淡的还是特么还是好多x给我认成k。。。。。一怒之下我找了几个童鞋十几分钟认完了1000+字模(对!就是这么高效!)&br&接下来改文件名,那都是小case,飕飕几秒搞定。&br&&img src=&/9e40b87a7bfc59f8e19d3d_b.jpg& data-rawwidth=&627& data-rawheight=&713& class=&origin_image zh-lightbox-thumb& width=&627& data-original=&/9e40b87a7bfc59f8e19d3d_r.jpg&&最后分好类的数据&br&5、分类&br&这个就不用我多说了吧,很多算法都可以拿来尝试。SVM,NN,EM,KNN.......随你挑嘛。具体的怎么数据归一化用什么数据结构我就不多说了,这些算法MATLAB貌似都有好像?嘛,那就更好办了嘛。&br&&br&最后上个结果&br&&img src=&/81d4fda9d38fe7fe4bbf24fd49499b5f_b.jpg& data-rawwidth=&1440& data-rawheight=&877& class=&origin_image zh-lightbox-thumb& width=&1440& data-original=&/81d4fda9d38fe7fe4bbf24fd49499b5f_r.jpg&&识别率大概在80%左右&br&还不错吧:)
首先题主我不知道你是直接想要快速对文字进行识别呢,还是想自己写一个东西来实现对文字的识别分类。对于前者,现有的工具其实已经很成熟了。一般来说用的都是OCR,也就是,我之前用的是他的python接口——pytesser,想用的话直接百度…
来自子话题:
&img src=&/a3aa94db31bdfe5b933657_b.jpg& data-rawwidth=&515& data-rawheight=&251& class=&origin_image zh-lightbox-thumb& width=&515& data-original=&/a3aa94db31bdfe5b933657_r.jpg&&
来自子话题:
谢邀。&br&本来并不想深入展开回答的,一个「是」就足够回答题主,不过看到早先&a data-hash=&9f265a59fdd52713bba9017& href=&/people/9f265a59fdd52713bba9017& class=&member_mention& data-editable=&true& data-title=&@吳易易& data-tip=&p$b$9f265a59fdd52713bba9017&&@吳易易&/a&的答案,觉得有不少误导人的地方,所以有必要展开说一说。&br&&br&首先回答题主的问题:Mathematica 是一个编程语言吗?当然是,根据维基百科对「编程语言」的定义:&br&&blockquote&A programming language is a notation for writing &a href=&http://en.wikipedia.org/wiki/Computer_program& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&programs&i class=&icon-external&&&/i&&/a&, which are specifications of a computation or &a href=&http://en.wikipedia.org/wiki/Algorithm& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&algorithm&i class=&icon-external&&&/i&&/a&. Some, but not all, authors restrict the term &programming language& to those languages that can express &i&all&/i& possible algorithms.&/blockquote&显然,Mathematica 能够表达&b&所有&/b&的算法,它是&b&图灵完备&/b&(Turing Complete)的,任何一个图灵完备的语言都可以称为一门编程语言。&br&&br&在&a data-hash=&9f265a59fdd52713bba9017& href=&/people/9f265a59fdd52713bba9017& class=&member_mention& data-editable=&true& data-title=&@吳易易& data-tip=&p$b$9f265a59fdd52713bba9017&&@吳易易&/a&的答案中,前两条说得没错,Mathematica 毫无疑问是一个软件,其自带了编辑环境和运行环境,并且 Mathematica 是图灵完备的,要知道 Mathematica 的创始人 Wolfram 就是研究&b&元胞自动机&/b&(Celluar Automaton)的祖师爷,关于这一点这里不再展开。&br&但是后面的每一条说的都毫无道理,下面我逐一反驳一下。&br&&br&C++ 编写的就是图灵等价?这里混淆了好几个概念。图灵等价是用来描述一门语言的,如果这门语言能够模拟图灵机的所有功能,并且图灵机也能够模拟这门语言的所有功能,那么就说这门语言是图灵等价的。参见维基百科的定义:&br&&blockquote&A Turing-complete system is called Turing equivalent if every function it can compute is also T i.e., it computes precisely the same class of functions as do &a href=&http://en.wikipedia.org/wiki/Turing_machine& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Turing machines&i class=&icon-external&&&/i&&/a&. Alternatively, a Turing-equivalent system is one that can simulate, and be simulated by, a universal Turing machine. (All known Turing-complete systems are Turing equivalent, which adds support to the &a href=&http://en.wikipedia.org/wiki/Church%E2%80%93Turing_thesis& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Church–Turing thesis&i class=&icon-external&&&/i&&/a&.)&/blockquote&很显然,Mathematica 是图灵等价的,但是和它是不是用 C++ 编写的是一点关系都没有。&br&&br&可扩展的就不是编程语言?根据开头我给出的维基百科的定义,只要一门语言能够表达一定的算法就是编程语言了,即使是按更严格的定义,需要表达&b&所有的&/b&算法才能算编程语言,那么 Mathematica 既然是图灵等价的,那么必然能表达所有的算法。这和是不是能扩展一点关系也没有。说起来,能扩展的编程语言真是数不胜数,大概除了 Basic 等少数几种古板的语言外,现在的编程语言没有哪个是不能扩展的吧?&br&&br&下面&a data-hash=&ebcffae72& href=&/people/ebcffae72& class=&member_mention& data-editable=&true& data-title=&@朱逸之& data-tip=&p$b$ebcffae72&&@朱逸之&/a&的答案就很靠谱了,不过就「软件」和「编程语言」的讨论,我也想说说我的看法。我认为「编程语言」是一个抽象的概念,是一种语言,你在 Windows 的记事本里写也好,在 A4 纸上写也好,那是具体的表现形式不同。而「软件」就是一个更具体一点的概念了,那些可执行程序其实都可以叫做软件。我认为 Mathematica 这个软件更像是一个集成开发环境(Integrated development environment,IDE),自带了编辑器,自带了运行环境。要类比的话,就像是 Eclipse 和 Java 的关系,Eclipse 是一个 IDE,而 Java 是一种编程语言,在 Eclipse 里可以写 Java 可以运行 Java 看结果。Mathematica 也是一样,只不过在 Mathematica 这里 IDE 和对应的编程语言这两者叫了同一个名字罢了。&br&&br&说到图形界面,其实 Mathematica 是有一个命令行工具的,叫 MathKernel,&br&&img src=&/91d3e83aba991f39e8412c_b.jpg& data-rawwidth=&351& data-rawheight=&382& class=&content_image& width=&351&&看到没?是不是和 Python 之类的长得很像?&br&&img src=&/0a5ed7e71ec6ba_b.jpg& data-rawwidth=&571& data-rawheight=&165& class=&origin_image zh-lightbox-thumb& width=&571& data-original=&/0a5ed7e71ec6ba_r.jpg&&而且使用起来也可以和 Python 类似,纯文本写好脚本内容,然后运行&br&&div class=&highlight&&&pre&&code class=&language-text&&MathKernel -script script1
&/code&&/pre&&/div&就能运行脚本了哟,甚至可以在别的程序里调用这个 MathKernel 来为你产生结果,比如 Lyx 里面就可以用这种方法做到用 Mathematica 画图并结合 LaTeX 代码自动生成图文混排的漂亮文档哟。当然本质上 Mathematica 自己的笔记本前端也是调用这个工具来产生结果的。
谢邀。本来并不想深入展开回答的,一个「是」就足够回答题主,不过看到早先的答案,觉得有不少误导人的地方,所以有必要展开说一说。首先回答题主的问题:Mathematica 是一个编程语言吗?当然是,根据维基百科对「编程语言」的定义:A programming l…
来自子话题:
这问题可以不严格地转化为:给定二维及更高维的栅格,能不能把一根绳子放置在里面,令绳子通过每个栅格仅一次,而又能另绳子通过每对相邻的栅格。显然答案是不可以。&br&&br&但是有一些方法,可能会令相邻栅格的绳子距离平均一些,例如&br&&br&1. Tiling,常用于矩阵乘法,可增加locality,改善cache coherence。&br&&br&2. &a href=&http://en.wikipedia.org/wiki/Z-order_curve& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Z-order curve&i class=&icon-external&&&/i&&/a& (又作Morton order),广泛应用在GPU的纹理存储上(有时称为texture swizzling),提高locality。&br&&img src=&/c8d19da3c8a1cc276c0e9e_b.jpg& data-rawwidth=&542& data-rawheight=&542& class=&origin_image zh-lightbox-thumb& width=&542& data-original=&/c8d19da3c8a1cc276c0e9e_r.jpg&&&br&3. &a href=&http://en.wikipedia.org/wiki/Hilbert_curve& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Hilbert curve&i class=&icon-external&&&/i&&/a&&br&&img src=&/38cabcfb45a1_b.jpg& data-rawwidth=&1280& data-rawheight=&855& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&/38cabcfb45a1_r.jpg&&
这问题可以不严格地转化为:给定二维及更高维的栅格,能不能把一根绳子放置在里面,令绳子通过每个栅格仅一次,而又能另绳子通过每对相邻的栅格。显然答案是不可以。但是有一些方法,可能会令相邻栅格的绳子距离平均一些,例如1. Tiling,常用于矩阵乘法,…
来自子话题:
知乎经典语录,“你以为你以为是你以为的”?&br&&br&Matlab并不是很多人以为的那样。如果说Windows或者Word里有95%的功能你都没有用到,那Matlab里有99%的功能你可能都没听说过。在Matlab里输入ver可以显示当前license下的所有matlab toolbox,我来贴一下我的:&br&&br&-------------------------------------------------------------------------------------------------------&br&MATLAB Version: 8.1.0.604 (R2013a)&br&MATLAB License Number: 724504&br&Operating System: Microsoft Windows 7 Version 6.1 (Build 7601: Service Pack 1)&br&Java Version: Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode&br&-------------------------------------------------------------------------------------------------------&br&MATLAB
Version 8.1
(R2013a)&br&Simulink
Version 8.1
(R2013a)&br&Aerospace Blockset
Version 3.11
(R2013a)&br&Aerospace Toolbox
Version 2.11
(R2013a)&br&Bioinformatics Toolbox
Version 4.3
(R2013a)&br&Communications System Toolbox
Version 5.4
(R2013a)&br&Computer Vision System Toolbox
Version 5.2
(R2013a)&br&Control System Toolbox
Version 9.5
(R2013a)&br&Curve Fitting Toolbox
Version 3.3.1
(R2013a)&br&DO Qualification Kit
Version 2.1
(R2013a)&br&DSP System Toolbox
Version 8.4
(R2013a)&br&Data Acquisition Toolbox
Version 3.3
(R2013a)&br&Database Toolbox
Version 4.1
(R2013a)&br&Datafeed Toolbox
Version 4.5
(R2013a)&br&Econometrics Toolbox
Version 2.3
(R2013a)&br&Embedded Coder
Version 6.4
(R2013a)&br&Filter Design HDL Coder
Version 2.9.3
(R2013a)&br&Financial Instruments Toolbox
Version 1.1
(R2013a)&br&Financial Toolbox
Version 5.1
(R2013a)&br&Fixed-Point Designer
Version 4.0
(R2013a)&br&Fuzzy Logic Toolbox
Version 2.2.17
(R2013a)&br&Global Optimization Toolbox
Version 3.2.3
(R2013a)&br&HDL Coder
Version 3.2
(R2013a)&br&HDL Verifier
Version 4.2
(R2013a)&br&IEC Certification Kit
Version 3.1
(R2013a)&br&Image Acquisition Toolbox
Version 4.5
(R2013a)&br&Image Processing Toolbox
Version 8.2
(R2013a)&br&Instrument Control Toolbox
Version 3.3
(R2013a)&br&MATLAB Builder EX
Version 2.3.1
(R2013a)&br&MATLAB Builder JA
Version 2.2.6
(R2013a)&br&MATLAB Builder NE
Version 4.1.3
(R2013a)&br&MATLAB Coder
Version 2.4
(R2013a)&br&MATLAB Compiler
Version 4.18.1
(R2013a)&br&MATLAB Distributed Computing Server
Version 6.2
(R2013a)&br&MATLAB Report Generator
Version 3.14
(R2013a)&br&Mapping Toolbox
Version 3.7
(R2013a)&br&Model Predictive Control Toolbox
Version 4.1.2
(R2013a)&br&Model-Based Calibration Toolbox
Version 4.6
(R2013a)&br&Neural Network Toolbox
Version 8.0.1
(R2013a)&br&OPC Toolbox
Version 3.2
(R2013a)&br&Optimization Toolbox
Version 6.3
(R2013a)&br&Parallel Computing Toolbox
Version 6.2
(R2013a)&br&Partial Differential Equation Toolbox
Version 1.2
(R2013a)&br&Phased Array System Toolbox
Version 2.0
(R2013a)&br&RF Toolbox
Version 2.12
(R2013a)&br&Real-Time Windows Target
Version 4.2
(R2013a)&br&Robust Control Toolbox
Version 4.3
(R2013a)&br&Signal Processing Toolbox
Version 6.19
(R2013a)&br&SimBiology
Version 4.3
(R2013a)&br&SimDriveline
Version 2.4
(R2013a)&br&SimElectronics
Version 2.3
(R2013a)&br&SimEvents
Version 4.3
(R2013a)&br&SimHydraulics
Version 1.12
(R2013a)&br&SimMechanics
Version 4.2
(R2013a)&br&SimPowerSystems
Version 5.8
(R2013a)&br&SimRF
Version 4.0
(R2013a)&br&Simscape
Version 3.9
(R2013a)&br&Simulink 3D Animation
Version 6.3
(R2013a)&br&Simulink Code Inspector
Version 1.3
(R2013a)&br&Simulink Coder
Version 8.4
(R2013a)&br&Simulink Control Design
Version 3.7
(R2013a)&br&Simulink Design Optimization
Version 2.3
(R2013a)&br&Simulink Design Verifier
Version 2.4
(R2013a)&br&Simulink PLC Coder
Version 1.5
(R2013a)&br&Simulink Report Generator
Version 3.14
(R2013a)&br&Simulink Verification and Validation
Version 3.5
(R2013a)&br&Spreadsheet Link EX
Version 3.1.7
(R2013a)&br&Stateflow
Version 8.1
(R2013a)&br&Statistics Toolbox
Version 8.2
(R2013a)&br&Symbolic Math Toolbox
Version 5.10
(R2013a)&br&System Identification Toolbox
Version 8.2
(R2013a)&br&SystemTest
Version 2.6.5
(R2013a)&br&Trading Toolbox
Version 1.0
(R2013a)&br&Vehicle Network Toolbox
Version 2.0
(R2013a)&br&Wavelet Toolbox
Version 4.11
(R2013a)&br&xPC Target
Version 5.4
(R2013a)&br&xPC Target Embedded Option
Version 5.4
(R2013a)&br&&br&&br&--&br&&br&大部分我也都没用过,我就贴一个simulink的截图:&br&&img src=&/e4ed108e4891dea4f05e4_b.jpg& data-rawwidth=&824& data-rawheight=&892& class=&origin_image zh-lightbox-thumb& width=&824& data-original=&/e4ed108e4891dea4f05e4_r.jpg&&&br&每一个Library下面都有十来个组件,你说python能取代Matlab?搞siao呢?
知乎经典语录,“你以为你以为是你以为的”?Matlab并不是很多人以为的那样。如果说Windows或者Word里有95%的功能你都没有用到,那Matlab里有99%的功能你可能都没听说过。在Matlab里输入ver可以显示当前license下的所有matlab toolbox,我来贴一下我的:---…
来自子话题:
如果根据地球生命出现以来几十亿年的历史数据,挑选出在未来一亿年内能一直存活的物种,你会挑选什么?老虎,鳄鱼,羚羊还是蓝藻?&br&&br&我想正如物种的生存一样,交易中想要长久盈利,应将策略构建于市场难以撼动的基本特征上。&br&&br&&b&而参数选择的层面,相较于“寻优”,我觉得称之“避劣”更合适。&/b&就像,你很难知道是东北虎还是孟加拉虎将来在地球上生存得更久,但大概基因突变的白虎会最先消失。&br&&br&当然了,无论东北虎还是别的虎,在地球上最后肯定活不过蓝藻。
如果根据地球生命出现以来几十亿年的历史数据,挑选出在未来一亿年内能一直存活的物种,你会挑选什么?老虎,鳄鱼,羚羊还是蓝藻?我想正如物种的生存一样,交易中想要长久盈利,应将策略构建于市场难以撼动的基本特征上。而参数选择的层面,相较于“寻优”…
来自子话题:
初学者建议看看 Wolfram 的 tutorial: &a href=&/learningcenter/tutorialcollection/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Wolfram Mathematica Tutorial Collection&i class=&icon-external&&&/i&&/a& .
PDF 可以免费下载。&br&&br&日补充:&br&&br&补充推荐 Leonid Shifrin 著《&a href=&http://www.mathprogramming-intro.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Mathematica programming&i class=&icon-external&&&/i&&/a&: an Advanced Introduction》&br&&br&我和一些朋友合作进行翻译,目前只有前三章:&a href=&http://www.mathcraft.org/wiki/index.php?title=Mathematica_%E7%BC%96%E7%A8%8B%EF%BC%9A%E9%AB%98%E7%BA%A7%E5%AF%BC%E8%AE%BA& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&《Mathematica 编程:高级导论》&i class=&icon-external&&&/i&&/a&
初学者建议看看 Wolfram 的 tutorial:
. PDF 可以免费下载。日补充:补充推荐 Leonid Shifrin 著《: an Advanced Introduction》我和一些朋友合作进行翻译,目前只有前三章:
看了大部分的答案都是比较推荐不计笔记的,但是我还是觉得详细的记录笔记是一个很好的学习过程,加深对定理的理解和思维脉络的掌握。&br&&br&一般教课的老师这门课都教了千八百遍了,他自己熟的很,知道哪里比较思维的脉络应该怎么样比较好。当然你遇到一个不靠谱的另说,但是就算不靠谱我觉得笔记还是可以记的。&br&&br&&b&&i&但是要聪明的记笔记&/i&&/b&&br&&br&&br&我不推荐在课上什么都不干然后就稀里哗啦的抄笔记。那样虽然不走神但是也不能专心,到最后记了满页的笔记但是课上讲了什么也没有听明白,捡了芝麻丢了西瓜。&br&&br&我讲一下我记笔记的方法,从初中一直用到我读博士,感觉还是比较高效的。&br&&br&在课上拿个破纸或者破本就只记重点就好了。比如把定理抄下来,但是定理具体怎么证明的就不用跟着抄了,而是要跟着理解怎么证明的,为什么这么证明,最多把比较重点的步骤大概的,鬼画符一样的划拉下来自己看得懂就好。&br&&br&&b&&i&重要的是课后当天整理笔记的过程。&/i&&/b&&br&&br&&br&我一般是晚上吃完晚饭专门整理笔记。这个时候要买一个比较漂亮的笔记本,大开页的那种。然后把当天记录的那个破纸拿出来,&b&顺着记录的脉络详细的把笔记誊写出来&/b&。先试试不看笔记不看书能不能把定理的证明大概的勾勒出来,不行了再看自己破纸上记录的重点,还不行再看书,反正最后在那个漂亮的大笔记本上用自己最好的字把证明补充完整。我一般还会写上自己的批注和补充证明什么的。大家都懂作者那句“ the rest of the proof is straightforward& 是多么的坑爹还坑娘。&br&&br&这样誊写的笔记一是自己看着顺眼,因为完全是依靠自己写出来的;二是誊写的时候字好看啊,给别人看也不丢人;三是最后复习的时候看着特别爽,因为上面自己标注的重点什么的就是自己的,自己一看就知道怎么回事。&br&&br&刚开始这么做挺费时间的,后来习惯了速度就快了。一个学期下来自己的笔记自己看着特别的爽。我一般学期结束后都把笔记装订起来然后贴上书签什么的,方便以后想看的时候找。(上一次给本科生当实分析的TA的时候就是用的自己四年前的笔记,妥妥的爽。)
看了大部分的答案都是比较推荐不计笔记的,但是我还是觉得详细的记录笔记是一个很好的学习过程,加深对定理的理解和思维脉络的掌握。一般教课的老师这门课都教了千八百遍了,他自己熟的很,知道哪里比较思维的脉络应该怎么样比较好。当然你遇到一个不靠谱的…}

我要回帖

更多关于 哪里能看到最新的韩剧 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信