# (C) David Vajda # 2025-09-02 # Integrationsuebungsprogramm mit Langrage Interpolation # zunaechst erzeugen wir zum beispiel 5 Stellen x4, x3, x2, x1, x0 # sie sind unsere Stuetzstellen # wir muessen unterscheiden # -- stuetzpunkt # -- Stuetzstelle # -- Stuetzwert # bei einer Funktion, einer Abbildung von |R->|R # gibt eine Stelle (x_i) und einen entsprechenden Wert # y_i, wenn die funktion an der stelle x_i definiert ist # geometrisch dargestellt oder als zahlenpaar bilden # (x_i,y_i) den Stuetzpunkt # fuer die interpolation eines polynoms vom grad n # mit n+1 gegebenen stuetzpunkten brauche ich nicht lediglich # die angabe der Wert (y5, y4, ...) sondern auch die stellen # beispielsweise koennten die Stuetzpunkte, bei #((8,y4),(4,y3),(3,y2),(2,y1),(1,y0)) # liegen auch die stelle selbst spielt eine rolle # um langrage zu verwenden kann ich nun trivialerweise # ein mal eine rechnung fuer die stellen 0, 1, 2, 3, 4, 5, 6 # tun, oder auch zufaellige zahlen erzeugen, in einem kleineren bereich # und die formel implementieren # ich verwende diesen weg # die Zahlen werden in einem Feld Array gespeichert if [ -z "$1" ] then echo "filename required" exit fi x=(1) y=(2) i=1 n=5 while [ $i -lt $n ] do x+=($((${x[$(($i-1))]}+1+$RANDOM%2))) y+=($((1+$RANDOM%5))) i=$(($i+1)) done s="load(interpol);" s="${s}p:[" i=0 while [ $i -lt $(($n-1)) ] do s="$s[${x[$i]},${y[$i]}]," i=$(($i+1)) done s="$s [${x[$i]},${y[$i]}]];${NL}" s="$s f(x):=lagrange(p);" s="$s expnd1f1: expand(f(x));" s="$s int1f1: integrate(f(x),x,${x[0]},${x[$n-1]});" s="$s plot2d(f(x),[x,${x[0]},${x[$(($n-1))]}],[png_file,\"$(pwd)/$1.png\"]);" s="$s tex (int1f1,\"$(pwd)/$1.tex\");" s="$s tex (expnd1f1,\"$(pwd)/$1.tex\");" t="\\documentclass[a4paper]{article} \\usepackage{graphicx,german,amsmath,amsfonts} \\author{(C) David Vajda} \\title{Integral,rechenaufgabe} \\begin{document}\maketitle $\\displaystyle\\int_{${x[0]}}^{${x[$(($n-1))]}}f(x)dx = $ "; echo "$t" > "$(pwd)/$1.tex" echo "$s" > "$1.mc" maxima -b "$1.mc" echo -n "\\includegraphics[width=\\textwidth]{$(pwd)/$1.png} \$\$\\left(\\begin{array}{" >> "$(pwd)/$1.tex" i=0 while [ $i -lt $n ] do echo -n "c" >> "$(pwd)/$1.tex" i=$(($i+1)) done echo "}" >> "$(pwd)/$1.tex" i=0 while [ $i -lt $(($n-1)) ] do echo -n "${x[$i]} & " >> "$(pwd)/$1.tex" i=$(($i+1)) done echo "${x[$i]}\\\\" >> "$(pwd)/$1.tex" i=0 while [ $i -lt $(($n-1)) ] do echo -n "${y[$i]} & " >> "$(pwd)/$1.tex" i=$(($i+1)) done echo "${y[$i]}" >> "$(pwd)/$1.tex" echo "\\end{array}\\right)\$\$ \\end{document}" >> "$(pwd)/$1.tex" pdflatex "$(pwd)/$1.tex" pdftoppm -jpeg "$(pwd)/$1.pdf" "$(pwd)/$1"