|
仿照Asy tutorial画图
import graph;
size(10cm);
real f(real x) { return x^3 - x; }
real fd(real x) { return 3x^2 - 1; }
real a = -1.2;
real b = 1.2;
path g = graph(f, a, b, join=operator..);
pair P = (-0.27, f(-0.27));
real m = fd(P.x);
real b1 = P.y - m*P.x;
path line = (a,m*a+b1)--(b,m*b+b1);
pair Q = intersectionpoints(g, line)[2];
m = fd(Q.x);
b1 = Q.y - m*Q.x;
line = (a,m*a+b1)--(b,m*b+b1);
pair R = intersectionpoints(g, line)[0];
real A1 = abs(0.5*(P.x-Q.x)*(P.y+Q.y-2*f((P.x+Q.x)/2)));
real A2 = abs(0.5*(Q.x-R.x)*(Q.y+R.y-2*f((Q.x+R.x)/2)));
fill(P--Q -- subpath(g,times(g,Q.x)[0],times(g,P.x)[0]) -- cycle, orange);
fill(Q--R-- subpath(g,times(g,R.x)[0],times(g,Q.x)[0]) -- cycle, lightblue);
draw(g, linewidth(1));
draw(P--Q);
draw(Q--R);
label("$y=x^3-x$", (b, f(b)), E);
dot(P);dot(Q);dot(R);
label("$P$", P, NE);
label("$Q$", Q, SE);
label("$R$", R, W);
label("$A_1$", (P+Q)/2, E);
label("$A_2$", (P+R)/2, E);
label("$A_2:A_1="+string(A2/A1)+"$",(0,-1),S); |
|