summaryrefslogtreecommitdiff
path: root/Master/texmf/doc/asymptote/examples/odetest.asy
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-09-20 00:02:10 +0000
committerKarl Berry <karl@freefriends.org>2009-09-20 00:02:10 +0000
commitd66729b2d5bdffdf5c860fdf30eca9e9119c42f2 (patch)
tree167f073d09029f346c7e4649eac08f3683881e53 /Master/texmf/doc/asymptote/examples/odetest.asy
parent387f35a7d35d0f89cf5ea9e780e13d394058d0ca (diff)
asymptote doc update
git-svn-id: svn://tug.org/texlive/trunk@15380 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf/doc/asymptote/examples/odetest.asy')
-rw-r--r--Master/texmf/doc/asymptote/examples/odetest.asy44
1 files changed, 44 insertions, 0 deletions
diff --git a/Master/texmf/doc/asymptote/examples/odetest.asy b/Master/texmf/doc/asymptote/examples/odetest.asy
new file mode 100644
index 00000000000..68a7a2eca67
--- /dev/null
+++ b/Master/texmf/doc/asymptote/examples/odetest.asy
@@ -0,0 +1,44 @@
+import ode;
+
+write("integration test");
+real f(real t, real x) {return cos(x);}
+write(integrate(1,f,0,10,0.1,dynamic=true,0.0002,0.0004,RK3BS,verbose=true));
+write();
+
+write("system integration test");
+real[] f(real t, real[] x) {return new real[] {x[1],1.5*x[0]^2};}
+write(integrate(new real[] {4,-8},f,0,1,n=100,dynamic=true,tolmin=0.0002,
+ tolmax=0.0004,RK3BS,verbose=true));
+write();
+
+write("simultaneous newton test");
+real[] function(real[] x) {
+ return new real[] {x[0]^2+x[1]^2-25,(x[0]-6)^2+x[1]^2-25};
+}
+real[][] fJac(real[] x) {
+ return new real[][] {{2*x[0],2*x[1]},{2*(x[0]-6),2*x[1]}};
+}
+write(newton(function,fJac,new real[] {0,-1}));
+write();
+
+
+write("BVP solver test");
+write("Finding initial conditions that solve w''(t)=1.5*w(t), w(0)=4, w(1)=1");
+real[] initial(real[] x) {
+ return new real[] {4,x[0]};
+}
+
+real[] discrepancy(real[] x) {
+ write("Error: ",x[0]-1);
+ return new real[] {x[0]-1};
+}
+
+write(solveBVP(f,0,1,n=10,initial,discrepancy,guess=new real[] {-30},RK4,
+ iterations=10));
+write();
+write(solveBVP(f,0,1,n=100,initial,discrepancy,guess=new real[] {-30},RK4,
+ iterations=10));
+write();
+write(solveBVP(f,0,1,n=10000,initial,discrepancy,guess=new real[] {-30},RK4,
+ iterations=10));
+write();