gnuplot> set view map gnuplot> unset surface gnuplot> set style data pm3d gnuplot> set style function pm3d gnuplot> set pm3d at b gnuplot> set palette gray gnuplot> set size square gnuplot> splot "gaussian_profile"生成的图像:
其实……我就是传说中的马哥
gnuplot> set view map gnuplot> unset surface gnuplot> set style data pm3d gnuplot> set style function pm3d gnuplot> set pm3d at b gnuplot> set palette gray gnuplot> set size square gnuplot> splot "gaussian_profile"生成的图像:
ffmpeg -i video.flv -ab 128 -ar 44100 -b 200 -s 320x240 video.mpg上面命令中,-b表示视频比特率,-ab表示音频比特率,-ar表示音频取样率,-s表示视频画面大小(宽x高)。
z3=1/3[z1,z2]过z1和z2两点的直线上任意一点可以表示为:
whatever[z1,z2]点z1也可以用分量表示:(x1,y1)。下面是寻找两直线交点的例子:
| MetaPost代码 | 生成的图像 |
|---|---|
beginfig(7); z1=(-1.5cm,0); z2=(-3.2cm,-2cm); z3=(2cm,0); z4=(3cm,-2cm); z5=whatever[z1,z2]=whatever[z3,z4]; draw z2--z1--z5; draw z4--z3--z5; pickup pencircle scaled 4pt; draw z1; draw z2; draw z3; draw z4; draw z5; endfig; |
beginfig(8);
a=.8in; b=.6in;
z0=(0,0);
z1=-z3=(a,0);
z2=-z4=(0,b);
draw z1..z2..z3..z4..cycle;
draw z1--z0--z2;
label.top("a", .5[z0,z1]);
label.lft("b", .5[z0,z2]);
dotlabel.bot("(0,0)", z0);
endfig; | |
beginfig(9);
numeric u;
u=1cm;
draw (0,2u)--(0,0)--(4u,0);
pickup pencircle scaled 1pt;
draw (0,0){up}
for i=1 upto 8: ..(i/2,sqrt(i/2))*u endfor;
label.lrt(btex $\sqrt x$ etex, (3,sqrt 3)*u);
label.bot(btex $x$ etex, (2u,0));
label.lft(btex $y$ etex, (0,u));
endfig; |
set terminal mp set output "filename.mp"输出为MetaPost文件。
| MetaPost代码 | 生成的图像 |
|---|---|
beginfig(1); z0=(0,0); z1=(3cm,2cm); z2=(2cm,4.5cm); z3=(0.5cm,3.5cm); z4=(1.5cm,2.5cm); draw z0--z1--z2--z3--z4; endfig; | |
beginfig(2); u=1cm; z0=(0,0); z1=(3u,2u); z2=(2u,4.5u); z3=(0.5u,3.5u); z4=(1.5u,2.5u); draw z0..z1..z2..z3..z4; endfig; | |
beginfig(3); z0=(0,0); z1=(3cm,2cm); z2=(2cm,4.5cm); z3=(0.5cm,3.5cm); z4=(1.5cm,2.5cm); draw z0..z1..z2..z3--z4--cycle; endfig; |
beginfig(4);
draw (
for i=0 upto 7:
80dir (135i)--
endfor
cycle);
endfig; | |
beginfig(5);
for a=0 upto 7:
draw (0,0){dir 45}..{dir 10a}(6cm,0);
endfor
endfig; |
beginfig(6); u=1cm; draw (-u,0)--(u,0); draw (0,-u)--(0,u); pickup pencircle scaled 3; draw (-u,u)--(u,u)--(u,-u)--(-u,-u)--cycle; endfig; |
pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf
pdftk A=one.pdf B=two.pdf cat A1-7 B1-5 A8 output combined.pdf
pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz
pdftk mydoc.pdf output mydoc.128.pdf owner_pw foo user_pw baz allow printing
pdftk secured.pdf input_pw foopass output unsecured.pdf
(%i1) sin(2*x)/cos(x)+cos(2*x);
sin(2 x)
(%o1) -------- + cos(2 x)
cos(x)
(%i2) trigexpand(%o1);
2 2
(%o2) - sin (x) + 2 sin(x) + cos (x)
(%i3) trigreduce(%o1);
(%o3) sec(x) sin(2 x) + cos(2 x)
(%i4) trigsimp(%o1);
sin(2 x) + cos(x) cos(2 x)
(%o4) --------------------------
cos(x)
(%i5) trigrat(%);
(%o5) cos(2 x) + 2 sin(x)
(%i1) f: sqrt(x-1)*exp(2*x^2);
2
2 x
(%o1) sqrt(x - 1) %e
(%i2) diff(f, x);
2
2 2 x
2 x %e
(%o2) 4 sqrt(x - 1) x %e + -------------
2 sqrt(x - 1)
(%i3) diff(sin(x)*exp(x^2), x, 2);
2 2 2
2 x x x
(%o3) 4 x %e sin(x) + %e sin(x) + 4 x %e cos(x)
不定积分:(%i4) integrate(%o2, x);
2 log(x - 1)
2 x - ----------
2
(%o4) (x - 1) %e
定积分:
从这个例子可以看出,maxima是一个很聪明的代数系统,它不会像其他数学程序那样想当然的默认一个结果,而是主动问你必要的条件,然后给出正确的结果。(%i5) integrate(exp(-a*x^2), x, 0, inf);
Is a positive, negative, or zero?
positive;
sqrt(%pi)
(%o5) ---------
2 sqrt(a)
泰勒展开:
这个例子给出函数g的前三阶泰勒展开。(%i6) g: sin(2*x)*exp(a*x);
a x
(%o6) %e sin(2 x)
(%i7) taylor (g, x, 0, 4);
2 3 3 4
2 (3 a - 4) x (a - 4 a) x
(%o7)/T/ 2 x + 2 a x + ------------- + ------------- + . . .
3 3
maxima进入maxima环境后,会看到开始处有(%i1),这是行标。%i表示输入行,%o表示输出行,后面的数字表示第几个输入或输出。 退出:
quit();可以看出,maxima语法和C语言类似,语句结束需要加分号。maxima里面是要区分大小写的。
(%i1) 2/5+3/4;
23
(%o1) --
20
如果要输出小数,可以用numer命令:(%i2) %,numer; (%o2) 1.15百分号%代表最后一次输出的结果。另外,可以用bfloat输出任意精确度的小数,有效数字位数由变量fpprec控制,默认是16位。
(%i3) fpprec:100; (%o3) 100 (%i4) bfloat(%pi); (%o4) 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068b0(%i3)中的冒号表示赋值。
(%i5) (x^2+2*x*y+3*y^2)^3;
2 2 3
(%o5) (3 y + 2 x y + x )
(%i6) expand(%);
6 5 2 4 3 3 4 2 5 6
(%o6) 27 y + 54 x y + 63 x y + 44 x y + 21 x y + 6 x y + x
等量代换:(%i7) %o6, x=2/z;
5 4 3 2
108 y 252 y 352 y 336 y 192 y 64 6
(%o7) ------ + ------ + ------ + ------ + ----- + -- + 27 y
z 2 3 4 5 6
z z z z z
提取公分母:(%i8) ratsimp(%);
6 6 5 5 4 4 3 3 2 2
27 y z + 108 y z + 252 y z + 352 y z + 336 y z + 192 y z + 64
(%o8) -----------------------------------------------------------------------
6
z
因式分解:(%i9) factor(%);
2 2 3
(3 y z + 4 y z + 4)
(%o9) ----------------------
6
z
解非线性方程组:(%i10) a+b+2*c=0;
(%o10) 2 c + b + a = 0
(%i11) 2*a-b=1;
(%o11) 2 a - b = 1
(%i12) a-2*b*c=5;
(%o12) a - 2 b c = 5
(%i13) solve([%o10,%o11,%o12],[a,b,c]);
sqrt(7) + 1 2 sqrt(7) - 1 sqrt(7) - 14
(%o13) [[a = -----------, b = -------------, c = -------------],
3 3 4 sqrt(7) - 2
sqrt(7) - 1 2 sqrt(7) + 1 sqrt(7) + 14
[a = - -----------, b = - -------------, c = -------------]]
3 3 4 sqrt(7) + 2
#!/bin/bash export LANG="zh_CN.UTF-8" export GDM_LANG="zh_CN.UTF-8" export QT_IM_MODULE=scim export XMODIFIERS=@im=SCIM export GTK_IM_MODULE=scim firefox &
% Sample of printing text /Times-Roman findfont % Get the basic font 20 scalefont % Scale the font to 20 points setfont % Make it the current font newpath % Start a new path 72 72 moveto % Lower left corner of text at (72, 72) (Hello, world!) show % Typeset "Hello, world!" showpage参考链接: First Guide to PostScript
cat 01.eps 02.eps 03.eps 04.eps > outfile.eps然后用vim打开outfile.eps。各个文件中间部分是描述图形的,不需要管。只要改动一下每个文件的开头和结尾部分就可以了。
%!PS-Adobe-2.0 EPSF-2.0只要保留第一个文件中的就行了,其余文件开头的这一行都删去。
showpage只需要保留最后一个就可以了,其余文件结尾处的该命令都删去。
%%BoundingBox: 0 0 100 120这表示图形的大小,四个数字分别是左下角和右上角的坐标。我们需要根据自己的要求把数字改一下。例如如果每个eps大小都是100x120,我们希望得到2x2的图形列表,那么合成之后的图应该是200x240的。那么我们把第一个eps文件开头的BoundingBox改为
%%BoundingBox: 0 0 200 240,然后把其余各eps文件开头的BoundingBox行删掉。
save gsave,在其余eps文件开始处加入
grestore restore save gsave xxx yyy translatexxx和yyy对应于每个eps图形平移的坐标。在所有eps文件最后的showpage之前加入
grestore restore
iptables -t nat --flush iptables -t nat --delete-chain iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables --insert FORWARD -i eth1 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward