Figure integraltest.asy
import graph;
size(300,150,IgnoreAspect);
real f(real x) {return 1/x^(1.1);}
pair F(real x) {return (x,f(x));}
dotfactor=7;
void subinterval(real a, real b)
{
path g=box((a,0),(b,f(b)));
filldraw(g,lightgray);
draw(box((a,f(a)),(b,0)));
}
int a=1, b=9;
xaxis("$x$",0,b);
yaxis("$y$",0);
draw(graph(f,a,b,operator ..),red);
int n=2;
for(int i=a; i <= b; ++i) {
if(i < b) subinterval(i,i+1);
if(i <= n) labelx(i);
dot(F(i));
}
int i=n;
labelx("$\ldots$",++i);
labelx("$k$",++i);
labelx("$k+1$",++i);
labelx("$\ldots$",++i);
arrow("$f(x)$",F(i-1.5),NE,1.5cm,red,Margin(0,0.5));
Figure jump.asy
import graph;
size(4inches,0);
real f1(real x) {return (1+x^2);}
real f2(real x) {return (4-x);}
xaxis("$x$",LeftTicks,Arrow);
yaxis("$y$",RightTicks,Arrow);
draw("$y=1+x^2$",graph(f1,-2,1));
dot((1,f1(1)),UnFill);
draw("$y=4-x$",graph(f2,1,5),LeftSide,red,Arrow);
dot((1,f2(1)),red);
Figure labelbox.asy
size(0,100);
real margin=2mm;
pair z1=(0,1);
pair z0=(0,0);
object label1=draw("small box",box,z1,margin);
object label0=draw("LARGE ELLIPSE",ellipse,z0,margin);
add(new void(frame f, transform t) {
draw(f,point(label1,SW,t){SW}..{SW}point(label0,NNE,t));
});
Figure laserlattice.asy
import graph;
import palette;
int n=256;
pen[] Palette=BWRainbow();
real w(real w0, real z0, real z) {return w0*sqrt(1+(z/z0)^2);}
real pot(real lambda, real w0, real r, real z)
{
real z0=pi*w0^2/lambda, kappa=2pi/lambda;
return exp(-2*(r/w(w0,z0,z))^2)*cos(kappa*z)^2;
}
picture make_field(real lambda, real w0)
{
real[][] v=new real[n][n];
for(int i=0; i < n; ++i)
for(int j=0; j < n; ++j)
v[i][j]=pot(lambda,w0,i-n/2,abs(j-n/2));
picture p=new picture;
size(p,250,250,IgnoreAspect);
real xm=-n/lambda, ym=-n/(2*w0), xx=n/lambda, yx=n/(2*w0);
image(p,v,(xm,ym),(xx,yx),Palette);
xlimits(p,xm,xx);
ylimits(p,ym,yx);
xaxis(p,"{\Large $z/\frac{\lambda}{2}$}",BottomTop,LeftTicks);
yaxis(p,"{\Large $r/w_0$}",LeftRight,RightTicks);
label(p,format("{\LARGE $w_0/\lambda=%.2f$}",w0/lambda),point(p,NW),5N);
return p;
}
picture p=make_field(160,80);
picture q=make_field(80,80);
picture r=make_field(16,80);
picture s=make_field(2,80);
real margin=1cm;
add(p.fit(),(0,0),margin*NW);
add(q.fit(),(0,0),margin*NE);
add(r.fit(),(0,0),margin*SW);
add(s.fit(),(0,0),margin*SE);
Figure lever.asy
size(200,0);
pair z0=(0,0);
pair z1=(2,0);
pair z2=(5,0);
pair zf=z1+0.75*(z2-z1);
draw(z1--z2);
dot(z1,red+0.15cm);
dot(z2,darkgreen+0.3cm);
label("$m$",z1,1.2N,red);
label("$M$",z2,1.5N,darkgreen);
label("$\hat{\ }$",zf,0.2*S,fontsize(24pt)+blue);
pair s=-0.2*I;
draw("$x$",z0+s--z1+s,N,red,Arrows,Bars,PenMargins);
s=-0.5*I;
draw("$\bar{x}$",z0+s--zf+s,blue,Arrows,Bars,PenMargins);
s=-0.95*I;
draw("$X$",z0+s--z2+s,darkgreen,Arrows,Bars,PenMargins);
Figure limit.asy
size(200,200,IgnoreAspect);
import graph;
real L=1;
real epsilon=0.25;
real a(int n) {return L+1/n;}
for(int i=1; i < 20; ++i)
dot((i,a(i)));
real N=1/epsilon;
xaxis(Label("$n$",align=2S));
yaxis(Label("$a_n$",0.85));
xtick("$2$",2);
ytick("$\frac{3}{2}$",3/2);
ytick("$2$",2);
yequals(Label("$L$",0,up),L,extend=true,blue);
yequals(Label("$L+\epsilon$",1,NW),L+epsilon,extend=true,red+dashed);
yequals(Label("$L-\epsilon$",1,SW),L-epsilon,extend=true,red+dashed);
xequals(N,extend=true,darkgreen+dashed);
labelx(shift(0,-10)*"$N=\frac{1}{\epsilon}$",N,E,darkgreen);
label("$a_n=1+\frac{1}{n},\quad \epsilon=\frac{1}{4}$",point((0,1)),10S+E);
Figure lines.asy
import math;
int n=7;
size(200,0);
draw(unitcircle,red);
for (int i=0; i < n-1; ++i)
for (int j=i+1; j < n; ++j)
drawline(unityroot(n,i),unityroot(n,j),blue);
Figure lmfit1.asy
import lmfit;
import graph;
size(10cm, 7cm, IgnoreAspect);
real[] date = { 1790, 1800, 1810, 1820, 1830, 1840, 1850, 1860, 1870, 1880,
1890, 1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990 };
real[] population = { 3.929, 5.308, 7.240, 9.638, 12.866, 17.069, 23.192, 31.443,
38.558, 50.156, 62.948, 75.996, 91.972, 105.711, 122.775, 131.669, 150.697,
179.323, 203.185, 226.546, 248.710 };
real t0 = 1776;
real P(real[] params, real t) {
real P0 = params[0];
real K = params[1];
real r = params[2];
return (K * P0) / (P0 + (K - P0) * exp(-r * (t - t0)));
}
real[] params = { 10, 500, 0.1 };
real res = lmfit.fit(date, population, P, params).norm;
write("P_0 = ", params[0]);
write("K = ", params[1]);
write("r = ", params[2]);
write("error = ", res);
real P(real t) {
return P(params, t);
}
draw(graph(date, population), blue);
draw(graph(P, t0, 2000), red);
xaxis("Year", BottomTop, LeftTicks);
yaxis("Population in millions", LeftRight, RightTicks);
Figure log.asy
import graph;
size(150,0);
real f(real x) {return log(x);}
pair F(real x) {return (x,f(x));}
xaxis("$x$",0);
yaxis("$y$");
draw(graph(f,0.01,10,operator ..));
labelx(1,SSE);
label("$\log x$",F(7),SE);
Figure logdown.asy
import graph;
size(200,IgnoreAspect);
real log10Down(real x) {return -log10(x);}
real pow10Down(real x) {return pow10(-x);}
scaleT LogDown=scaleT(log10Down,pow10Down,logarithmic=true);
scale(Linear,LogDown);
draw(graph(exp,-5,5));
yaxis("$y$",RightTicks(Label(Fill(white)),DefaultLogFormat),BeginArrow);
xaxis("$x$",LeftTicks(NoZero),EndArrow);
Figure lowint.asy
size(100,0);
import graph;
import lowupint;
real a=-0.8, b=1.2;
real c=1.0/sqrt(3.0);
partition(a,b,c,min);
arrow("$f(x)$",F(0.5*(a+b)),NNE,red);
label("$\cal{L}$",(0.5*(a+b),f(0.5*(a+b))/2));
Figure lowupint.asy
import graph;
real f(real x) {return x^3-x+2;}
pair F(real x) {return (x,f(x));}
void rectangle(real a, real b, real c, real h(real,real))
{
real height=(a < c && c < b) ? f(c) : h(f(a),f(b));
pair p=(a,0), q=(b,height);
path g=box(p,q);
fill(g,lightgray);
draw(g);
}
void partition(real a, real b, real c, real h(real,real))
{
rectangle(a,a+.4,c,h);
rectangle(a+.4,a+.6,c,h);
rectangle(a+.6,a+1.2,c,h);
rectangle(a+1.2,a+1.6,c,h);
rectangle(a+1.6,a+1.8,c,h);
rectangle(a+1.8,b,c,h);
draw((a,0)--(F(a)));
draw((b,0)--(F(b)));
draw(graph(f,a,b,operator ..),red);
draw((a,0)--(b,0));
labelx("$a$",a);
labelx("$b$",b);
}
Figure markregular.asy
import graph;
size(10cm,0);
real xmin=-4,xmax=4;
real ymin=-2,ymax=10;
real f(real x) {return x^2;}
marker cross=marker(scale(4)*rotate(45)*cross(4),
markuniform(new pair(real t) {return Scale((t,f(t)));},
xmin,xmax,round(2*(xmax-xmin))),1bp+red);
draw(graph(f,xmin,xmax,n=400),linewidth(1bp),cross);
ylimits(-2.5,10,Crop);
xaxis(Label("$x$",position=EndPoint, align=NE),xmin=xmin,xmax=xmax,
Ticks(scale(.7)*Label(align=E),NoZero,begin=false,beginlabel=false,
end=false,endlabel=false,Step=1,step=.25,
Size=1mm, size=.5mm,pTick=black,ptick=gray),Arrow);
yaxis(Label("$y$",position=EndPoint, align=NE),ymin=ymin,ymax=ymax,
Ticks(scale(.7)*Label(),NoZero,begin=false,beginlabel=false,
end=false,endlabel=false,Step=1,step=.25,Size=1mm,size=.5mm,
pTick=black,ptick=gray),Arrow);
Figure mosquito.asy
size(9cm,10cm,IgnoreAspect);
pair d=(1,0.25);
real s=1.6d.x;
real y=0.6;
defaultpen(fontsize(8pt));
picture box(string s, pair z=(0,0)) {
picture pic;
draw(pic,box(-d/2,d/2));
label(pic,s,(0,0));
return shift(z)*pic;
}
label("Birds",(0,y));
picture removed=box("Removed ($R_B$)");
picture infectious=box("Infectious ($I_B$)",(0,-1.5));
picture susceptible=box("Susceptible ($S_B$)",(0,-3));
add(removed);
add(infectious);
add(susceptible);
label("Mosquitoes",(s,y));
picture larval=box("Larval ($L_M$)",(s,0));
picture susceptibleM=box("Susceptible ($S_M$)",(s,-1));
picture exposed=box("Exposed ($E_M$)",(s,-2));
picture infectiousM=box("Infectious ($I_M$)",(s,-3));
add(larval);
add(susceptibleM);
add(exposed);
add(infectiousM);
path ls=point(larval,S)--point(susceptibleM,N);
path se=point(susceptibleM,S)--point(exposed,N);
path ei=point(exposed,S)--point(infectiousM,N);
path si=point(susceptible,N)--point(infectious,S);
draw(minipage("\flushright{recovery rate ($g$) \& death rate from virus
($\mu_V$)}",40pt),point(infectious,N)--point(removed,S),LeftSide,Arrow,
PenMargin);
draw(si,LeftSide,Arrow,PenMargin);
draw(minipage("\flushright{maturation rate ($m$)}",50pt),ls,RightSide,
Arrow,PenMargin);
draw(minipage("\flushright{viral incubation rate ($k$)}",40pt),ei,
RightSide,Arrow,PenMargin);
path ise=point(infectious,E)--point(se,0.5);
draw("$(ac)$",ise,LeftSide,dashed,Arrow,PenMargin);
label(minipage("\flushleft{biting rate $\times$ transmission
probability}",50pt),point(infectious,SE),dir(-60)+S);
path isi=point(infectiousM,W)--point(si,2.0/3);
draw("$(ab)$",isi,LeftSide,dashed,Arrow,PenMargin);
draw(se,LeftSide,Arrow,PenMargin);
real t=2.0;
draw("$\beta_M$",
point(susceptibleM,E){right}..tension t..{left}point(larval,E),
2*(S+SE),red,Arrow(Fill,0.5));
draw(minipage("\flushleft{birth rate ($\beta_M$)}",20pt),
point(exposed,E){right}..tension t..{left}point(larval,E),2SW,red,
Arrow(Fill,0.5));
draw("$\beta_M$",
point(infectiousM,E){right}..tension t..{left}point(larval,E),2SW,
red,Arrow(Fill,0.5));
path arrow=(0,0)--0.75cm*dir(35);
draw(point(larval,NNE),
Label(minipage("\flushleft{larval death rate ($\mu_L$)}",45pt),1),
arrow,blue,Arrow);
draw(point(susceptibleM,NNE),
Label(minipage("\flushleft{adult death rate ($\mu_A$)}",20pt),1),
arrow,N,blue,Arrow);
draw(point(exposed,NNE),Label("$\mu_A$",1),arrow,blue,Arrow);
draw(point(infectiousM,NNE),Label("$\mu_A$",1),arrow,blue,Arrow);