Smale球面外翻问题(Smale's Sphere Eversion Paradox)是微分拓扑学中的一个非常有趣的问题:在允许与自身相交的情况下,是否有可能无损地、平滑地、不留折痕地把一个球面的内侧翻到外面来。答案是肯定的,并且球面外翻的方法不只一种。上面这段有趣的动画里就演示了球面外翻问题的一种常见解法。你能看出这是怎么变的吗?你能把整个变换过程的每个细节都想清楚吗?你是否能在头脑里清晰地想象出整个过程?你又如何给别人解释这一过程?
这个小程序可以帮助你观察这个球面外翻过程。你可以拉进拉远,从任意角度观察任一时刻该球面的形状。程序提供了球面透明、只查看半球等实用功能便于你一步一步进行分析。
YouTube链接:http://www.youtube.com/watch?v=R_w4HYXuo9M
了解更多:http://torus.math.uiuc.edu/jms/Papers/isama/color/opt2.htm
三角运算(%i1) trigexpand(sin(10*x+y));
(%o1) cos(10 x) sin(y) + sin(10 x) cos(y)
(%i2) trigexpand(sin(2*x));
(%o2) 2 cos(x) sin(x)
(%i3) trigsimp(2*cos(x)^2+sin(x)^2);
2
(%o3) cos (x) + 1
(%i4) trigreduce(-sin(x)^2+3*cos(x)^2+x);
cos(2 x) cos(2 x) 1 1
(%o4) -------- + 3 (-------- + -) + x - -
2 2 2 2
代数推理(%i1) assume(x>0,y<-1,z>=0);
(%o1) [x > 0, y < - 1, z >= 0]
(%i2) assume(a<b and b<c);
(%o2) [b > a, c > b]
(%i3) facts();
(%o3) [x > 0, - 1 > y, z >= 0, b > a, c > b]
(%i4) is(a>c);
(%o4) false
(%i5) is(z-y>0);
(%o5) true
(%i6) is(z-x>0);
Maxima was unable to evaluate the predicate:
z - x > 0
-- an error. Quitting. To debug this try debugmode(true);
(%i7) prederror:false;
(%o7) false
(%i8) is(z-x>0);
(%o8) unknown
(%i9) forget(a<b);
(%o9) [b > a]
(%i10) is(a>c);
(%o10) unknown
级数计算(%i1) sum(i,i,1,5);
(%o1) 15
(%i2) sum(i^2,i,1,5);
(%o2) 55
(%i3) sum(1/2^i,i,1,inf);
inf
====
\ 1
(%o3) > --
/ i
==== 2
i = 1
(%i4) sum(1/2^i,i,1,inf),simpsum;
(%o4) 1
(%i5) sum(1/i^2,i,1,inf),simpsum;
2
%pi
(%o5) ----
6
(%i6) sum(1/i,i,1,inf),simpsum;
(%o6) inf
微积分(%i1) limit(1/x,x,inf);
(%o1) 0
(%i2) limit(sin(x)/x,x,0);
(%o2) 1
(%i3) limit(sin(x),x,inf);
(%o3) ind
(%i4) diff(3*x^2+x+5/x,x);
5
(%o4) 6 x - -- + 1
2
x
(%i5) diff(sin(x)*tan(x),x);
2
(%o5) cos(x) tan(x) + sec (x) sin(x)
(%i6) diff(%e^(a*x),x);
a x
(%o6) a %e
(%i7) integrate(sin(x)^3,x);
3
cos (x)
(%o7) ------- - cos(x)
3
(%i8) integrate(x^3,x,1,3);
(%o8) 20
(%i9) taylor(%e^x,x,0,3);
2 3
x x
(%o9)/T/ 1 + x + -- + -- + . . .
2 6
(%i10) taylor(sin(x),x,0,5);
3 5
x x
(%o10)/T/ x - -- + --- + . . .
6 120
(%i11) taylor(sqrt(x+1),x,1,3);
2 3
sqrt(2) (x - 1) sqrt(2) (x - 1) sqrt(2) (x - 1)
(%o11)/T/ sqrt(2) + --------------- - ---------------- + ----------------
4 32 128
+ . . .
(%i12) ratsimp(%);
3 2
sqrt(2) x - 7 sqrt(2) x + 43 sqrt(2) x + 91 sqrt(2)
(%o12) -----------------------------------------------------
128
矩阵运算(%i1) f[i,j]:=i+j;
(%o1) f := i + j
i, j
(%i2) genmatrix(f,3,3);
[ 2 3 4 ]
[ ]
(%o2) [ 3 4 5 ]
[ ]
[ 4 5 6 ]
(%i3) g[i,j]:=i-2^j;
j
(%o3) g := i - 2
i, j
(%i4) genmatrix(g,3,3);
[ - 1 - 3 - 7 ]
[ ]
(%o4) [ 0 - 2 - 6 ]
[ ]
[ 1 - 1 - 5 ]
(%i5) %o2+%o4;
[ 1 0 - 3 ]
[ ]
(%o5) [ 3 2 - 1 ]
[ ]
[ 5 4 1 ]
(%i6) %o2.%o4;
[ 2 - 16 - 52 ]
[ ]
(%o6) [ 2 - 22 - 70 ]
[ ]
[ 2 - 28 - 88 ]
(%i7) %o2^^3;
[ 360 474 588 ]
[ ]
(%o7) [ 474 624 774 ]
[ ]
[ 588 774 960 ]
(%i8) x:matrix([17, 3],[-8, 11]);
[ 17 3 ]
(%o8) [ ]
[ - 8 11 ]
(%i9) x^^-1;
[ 11 3 ]
[ --- - --- ]
[ 211 211 ]
(%o9) [ ]
[ 8 17 ]
[ --- --- ]
[ 211 211 ]
想了解更多请阅读官方文档:
http://maxima.sourceforge.net/docs/manual/en/maxima.html
做人要厚道
转贴请注明出处
这个Blog里曾经多次提到过超强数学软件Mathematica,但目前为止我还没发现它的Linux版,Wine似乎也没有用。其实,在Linux下也有很多类似于Mathematica的数学软件,其中Maxima是我用的最多的一个。这里简单介绍一下Maxima的各个函数供大家参考,也方便我自己今后查询。
安装:sudo apt-get install maxima maxima-share
运行:maxima
退出:quit();
基本运算(%i1) 2+3;
(%o1) 5
(%i2) 5*6;
(%o2) 30
(%i3) %+2;
(%o3) 32
(%i4) %o1*%o3;
(%o4) 160
(%i5) 4/7+3/4;
37
(%o5) --
28
(%i6) float(%);
(%o6) 1.321428571428571
(%i7) 2^32;
(%o7) 4294967296
(%i8) 30!;
(%o8) 265252859812191058636308480000000
(%i9) float(sqrt(2));
(%o9) 1.414213562373095
三角函数和对数函数(%i1) float(sin(1));
(%o1) 0.8414709848079
(%i2) sin(%pi/2);
(%o2) 1
(%i3) sin(%pi/2)+cos(%pi/3);
3
(%o3) -
2
(%i4) float(sec(%pi/3)+csc(%pi/3));
(%o4) 3.154700538379252
(%i5) log(1);
(%o5) 0
(%i6) float(log(10));
(%o6) 2.302585092994046
(%i7) log(%e);
(%o7) 1
(%i8) log(2^a);
(%o8) log(2) a
(%i9) %e^log(2);
(%o9) 2
变量操作(%i1) a^2-b^2;
2 2
(%o1) a - b
(%i2) a:3;
(%o2) 3
(%i3) a^2-b^2;
2
(%o3) 9 - b
(%i4) b:2;
(%o4) 2
(%i5) a^2-b^2;
(%o5) 5
(%i6) kill(a);
(%o6) done
(%i7) kill(b);
(%o7) done
(%i8) a^2-b^2;
2 2
(%o8) a - b
函数操作(%i1) f(x):=x^2-1;
2
(%o1) f(x) := x - 1
(%i2) f(2);
(%o2) 3
(%i3) f(100);
(%o3) 9999
(%i4) float(f(2/3));
(%o4) - 0.55555555555556
(%i5) a:4/5;
4
(%o5) -
5
(%i6) f(a);
9
(%o6) - --
25
多项式运算(展开、合并、化简和消元)(%i1) expand((a+b)^3);
3 2 2 3
(%o1) b + 3 a b + 3 a b + a
(%i2) factor(a^2-b^2);
(%o2) - (b - a) (b + a)
(%i3) ratsimp((x^2-1)/(x+1));
(%o3) x - 1
(%i4) eliminate([x^2+x*y+z=0,3*x+5*y+z=0,x-y-2*z^2=1],[y,z]);
4 3 2
(%o4) [- x (8 x - 2 x + 19 x - 50 x + 25)]
解方程(%i1) solve(x^2-3*x+4/x=5,x);
sqrt(5) + 1 sqrt(5) - 1
(%o1) [x = - -----------, x = -----------, x = 4]
2 2
(%i2) funcsolve(f(n)*(n+1)+2*n=1-f(n)/n,f(n));
n (2 n - 1)
(%o2) f(n) = - -----------
2
n + n + 1
(%i3) solve([x+3*y=10,1/x+x*y=4],[x,y]);
sqrt(69) - 9 4 sqrt(3) sqrt(23) - 34
(%o3) [[x = 1, y = 3], [x = - ------------, y = -----------------------],
2 9 sqrt(3) sqrt(23) - 75
sqrt(69) + 9 4 sqrt(3) sqrt(23) + 34
[x = ------------, y = -----------------------]]
2 9 sqrt(3) sqrt(23) + 75
(%i4) solve(x^2+b*x+c=0,x);
2 2
sqrt(b - 4 c) + b sqrt(b - 4 c) - b
(%o4) [x = - ------------------, x = ------------------]
2 2
(%i5) find_root(x^x=2,x,1,2);
(%o5) 1.559610469462369
(%i6) find_root(sin(x)=x/2,x,0.1,%pi);
(%o6) 1.895494267033981
数论相关(%i1) mod(100,7);
(%o1) 2
(%i2) primep(3214567);
(%o2) true
(%i3) next_prime(200);
(%o3) 211
(%i4) factor(1001);
(%o4) 7 11 13
(%i5) factor(30!);
26 14 7 4 2 2
(%o5) 2 3 5 7 11 13 17 19 23 29
(%i6) gcd(200,780);
(%o6) 20
(%i7) binomial(7,4);
(%o7) 35
(%i8) fib(7);
(%o8) 13
画函数图像(%i1) plot2d(x^3+2*x^2-3,[x,-2,2]);
*** X11 output driver not found, switching to dumb terminal!
*** If you want to use the X11 output, please install the gnuplot-x11 package
14 ++-------+--------+--------+--------+-------+--------+--------+-------++
+ + + + + + x^3+2*x^2-3 $$$$$$ $
12 ++ $+
| $ |
10 ++ $ ++
| $ |
| $ |
8 ++ $ ++
| $ |
6 ++ $$ ++
| $$ |
4 ++ $$ ++
| $$ |
2 ++ $$ ++
| $$$ |
| $$ |
0 ++ $$$ ++
| $$$$ |
-2 ++$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$ ++
$$ + + $$$$$$$$$$$$$$$$ + + + +
-4 ++-------+--------+--------+--------+-------+--------+--------+-------++
-2 -1.5 -1 -0.5 0 0.5 1 1.5 2
(%o1)
你可以通过安装gnuplot-x11让maxima在X上画图,安装方法是:sudo apt-get install gnuplot-x11
maxima也可以画3D图像,比如执行下面代码可以画出sin(x)cos(y)的图像,我就不贴图了,大家自己试试。plot3d(sin(x)*cos(y),[x,-2,2],[y,-2,2]);
做人要厚道
转贴请注明出处

IE和Firefox处理返回数据类型的方式不太一样。IE走起来就去查文件后缀名,而Firefox则会先看返回数据中Content-Type的MIME类型。而对于.torrent这样的新文件格式很多服务器都不能正确返回Content-Type的值,这样就导致有些地方下载种子的时候IE完全正常但在Firefox里却显示成一大堆乱码。这种情况经常出现在平时大家下载小A的时候遇到的那种下载地址为link.php?ref=xxxxx的种子存取系统。用IE Tab是一个解决办法,不过这种办法又慢又麻烦,而且我也有点怕不安全。我也曾经写过一个asp小程序在服务器端抓取种子文件并以正确的Content-Type返回,但由于诸多原因最后关闭了这个asp程序。最近找到了一个叫做Force Content-Type的Firefox插件非常有用。既然前几天有人又提到了这个问题,这里就来分享一下用Force Content-Type完美解决BT种子下载问题的方法。
这个插件可以强行改变返回的Content-Type值,地址的判断使用正则表达式。安装插件后先把Disable Force Content-Type前面的勾去掉,然后你需要添加五个新的规则,每个规则的第一项是目标地址,第二项是原MIME类型(用一个点表示所有类型),第三项是新的类型(BT种子的MIME类型为application/x-bittorrent)。五个规则分别如下:^http:\/\/.*\.torrent$ . application/x-bittorrent
^http:\/\/.*\/fetch\.php$ . application/x-bittorrent
^http:\/\/.*ZmV0Y2gucGhw$ . application/x-bittorrent
^http:\/\/.*L2ZldGNoLnBocA(==|%3D%3D)$ . application/x-bittorrent
^http:\/\/.*ZXRjaC5waHA(=|%3D)$ . application/x-bittorrent
前面两个是干什么的一目了然;后面三个是干什么用的呢……经常用那个的人可能一看就知道,不知道的话不要紧,加上没害处,总有一天你会发现它是干啥的。
做人要厚道,转贴请注明出处
本文目的:介绍C语言最基本的用法,能对付NOIp就行
本文特点:没有废话,不讲概念,只介绍语法
适宜读者:已经学过其它语言,希望学习C语言的人;特别适合熟练Pascal并想转用C语言的OIer
编程环境:就我个人而言,Windows下用Dev-C++,Linux下用Emacs
目录:
C语言速成手册(一):基本数据类型、标准输出、函数
C语言速成手册(二):布尔值、条件判断、循环
C语言速成手册(三):数组、字符串、结构
C语言速成手册(四):指针、动态内存分配、标准输入
C语言速成手册(五):其它运算符、文件操作、其它函数
C语言速成手册(六):其它问题、后记
A+B问题代码:#include <stdio.h>
int main()
{
int a, b;
scanf("%d%d", &a, &b);
printf("%d", a+b);
return 0;
}
使用Dev-C++编译你的第一个程序
1. 安装最新版的Dev-C++,运行Dev-C++后按快捷键Ctrl+N建新文件,

2. 将上面的A+B代码粘贴进去;

3. 按Ctrl+S保存文件,文件类型选择C源码。如图,点击保存后F盘里将产生AplusB.c文件。.c是C源代码的后缀名。

4. 按Ctrl+F9编译;

5. Ctrl+F5在当前位置设断点,F8进入调试状态,F7单步。

你也可以直接在下面的Debug工具栏里进行操作。只需要把鼠标移到源码中的变量名上停留片刻就可以Watch该变量。
Google拼音发布后,第二天就出事了。到处都开始说Google拼音盗搜狗词库。这又成了热门话题,各种派别各种态度的人都有。
有人支持Google,说Google拼音企图引起关注的策略获得了成功,搜狗帮着打了免费的广告。
有人对Google失望,说Google昨天发布的声明根本没有提到搜狗,道歉态度极其不端正。
还有说喜欢Google但讨厌谷歌的,Google≠谷歌,后者只是阉割版的Google,不代表我们心目中真正的Google。
众多评论中真正最牛的,说出了我的想法的,还是本日志的标题那句话。

原来我经常在想,要是有软件能帮我把图论题的数据画出来就好了。后来我想到一个制作这种软件的方法,就是把所有的点的位置设定为圆周上的等分点,这样可以最大限度的保证图象不致于太乱。我没想到居然有程序可以智能地决定哪个点、哪条边放在哪里更好看。
我在OIBH的这个帖子里找到了这个好东西,它可以帮助OIer将大规模的图论题数据转化为图便于观察。今天我又用到了几次,突然想到把它介绍在我的Blog上。
graphviz的主页设在http://www.graphviz.org,你可以在这里下载到最新的Windows版本,目前最新版本的安装程序为graphviz-2.12.exe。安装后你可以在dos下(任何目录中)调用它的命令行模式。
这里,我们使用dot语言。官方网站上有关于dot语言的详细的用户手册,这里我只把常用的一些功能做一下演示。你可以在这篇日志的三个截图中掌握足够的知识来应用graphviz。
先说明一下最顶上的Hello World程序。dot是程序名,参数-Tgif表示以gif格式输出,参数-O表示输出文件的方式设为默认(在当前目录下输出名为noname的文件,其后缀名与参数-T???所设定的类型相同)。下面一行输入的是graphviz所用的dot语言,digraph G表示有向图,花括号里描述图的内容。这样就生成了一个最简单的图。
下面一个例子说明了如何输出一个边上有权值的无向图。这是OIer经常要用的东西。size=4,4指定了图的大小,单位为英寸。如果没有这一句的话,默认的图要大得多。你可以另外写一个程序把你的数据按图中的格式转化为dot代码。虽然graphviz可以从外部文件中读入这段代码,但我觉得粘贴进dos窗口更方便一些。

下面这个例子包含更多的参数,展示了graphviz更多的功能。输出为ps文件更好看一些,因为输出ps文件可以反锯齿(应该是矢量的)。


