aboutsummaryrefslogtreecommitdiff
path: root/src/input/rk4draw.input.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/rk4draw.input.pamphlet')
-rw-r--r--src/input/rk4draw.input.pamphlet85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/input/rk4draw.input.pamphlet b/src/input/rk4draw.input.pamphlet
new file mode 100644
index 00000000..209ebb90
--- /dev/null
+++ b/src/input/rk4draw.input.pamphlet
@@ -0,0 +1,85 @@
+\documentclass{article}
+\usepackage{axiom}
+\begin{document}
+\title{\$SPAD/src/input rk4draw.input}
+\author{The Axiom Team}
+\maketitle
+\begin{abstract}
+\end{abstract}
+\eject
+\tableofcontents
+\eject
+\section{License}
+<<license>>=
+--Copyright The Numerical Algorithms Group Limited 1994.
+@
+<<*>>=
+<<license>>
+-- Two scripts which can be combined to show how accurate the Runge-Kutta
+-- method is for simple problems.
+
+-- The first script finds the exact solution for y'= cos(y)/(2+x) given
+-- the initial value condition. This is then plotted.
+
+)clear all
+y := operator y
+deq := D(y x,x) = cos(y x)/(2+x)
+solve(deq,y,x=3,[0])
+eval (%,y(x)=z)
+solve(%,z)
+%.1
+rhs %
+draw(%,x=3..4)
+
+-- The second script uses rk4 to solve the same equation form x=3..4
+-- Each point is merged into a list which is then plotted.
+-- The two graphs can then be superimposed using the pick and drop facilities.
+
+)clear all
+y:Vector Float :=[0.0]
+x1:=3.0
+p0 := point[x1::SF,(y.1)::SF]$(Point SF)
+n:=1
+h:=0.1
+der(d:Vector Float,y:Vector Float,x:Float):Void == setelt(d,1,cos(y.1)/(2+x))
+rk4(y,n,x1,h,der)
+y
+x1:=x1+h
+p1 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p2 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p3 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p4 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p5 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p6 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p7 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p8 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p9 := point[x1::SF,(y.1)::SF]$(Point SF)
+rk4(y,n,x1,h,der);x1:=x1+h;y
+p10 := point[x1::SF,(y.1)::SF]$(Point SF)
+llp := [[p0,p1],[p1,p2],[p2,p3],[p3,p4],[p4,p5],_
+ [p5,p6],[p6,p7],[p7,p8],[p8,p9],[p9,p10]]
+pc2 := dim green()
+lpc := [pc2, pc2, pc2, pc2, pc2, pc2, pc2, pc2, pc2, pc2]
+lc := [pastel blue(), light yellow(), dim green(),_
+ bright red(), light green(),dim yellow(), _
+ bright blue(),dark red(), pastel red(), light blue()]
+size1 := 4::PositiveInteger
+lsize := [size1, size1, size1, size1, size1, size1, size1, size1, size1, size1]
+g:= makeGraphImage(llp,lpc,lc,lsize)$GRIMAGE
+makeViewport2D(g,[title("RK4")])$VIEW2D
+
+
+@
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}