Lehrstück

Go to▼

Durch zweimaliges Klicken auf den äusseren Balken mit dem Fähnchen unten kann man die Zellen auf- und zuklappen!!!

Klicke auf den rechten äusseren Balken und drücke dann  die "Enter-Taste", wenn der Balken sich schwarz verfärbt hat!

Erst Eingaben

Voreinstellung Eckpunktskoordinaten

Skizzen

Go to▼

Rechnung (in der Reihenfolge der Zeilen Run machen)

p1 = {0, 0};
p2 = {10, 0};
p3 = p2;
p4 = {0, 4};
<< Graphics`Arrow`;
Show[
        Graphics[{
Text["p1", p1, {-1, 1}], 
            Text["p2", p2, {0, 1}], Text["p3", p3, {0, -1.5}], 
            Text["p4", 
              p4, {-1, -1}], 
Text["Kraft", 
              p3, {-2, -2}, {1, 1}], 
            Line[{p1 - 0.2 (p4 - p1), p4 + 0.2 (p4 - p1)}], 
            Thickness[ .015], 
            Arrow[p3 + 2 {1, 1}, 
              p3 + 0.5 {1, 1}], 
Line[{p1, p2, p3, p4, 
                p1}], 
PointSize[0.03], 
            RGBColor[1, 0, 0], 
Point[p1], Point[p2], 
            Point[p3], Point[p4]}, PlotRange -> All], 
        AspectRatio -> Automatic];

p1 = {0, 0};
p2 = {10, 0};
p3 = {11, 2};
p4 = {0, 4};
<< Graphics`Arrow`;
\(\(Show[
        Graphics[{Text["p1", p1, {\(-1\), 1}], 
            Text["p2", p2, {0, 1}], Text["p3", p3, {0, \(-1.5\)}], 
            Text["p4", 
              p4, {\(-1\), \(-1\)}], 
Text["Kraft", 
              p3, {\(-2\), \(-2\)}, {1, 1}], 
            Line[{p1 - 0.2 \((p4 - p1)\), 
                p4 + 0.2 \((p4 - 
                        p1)\)}], 
Thickness[ .015], 
Arrow[p3 + 2 {1, 1}, 
              p3 + 0.5 {1, 1}], 
Line[{p1, p2, p3, p4, 
                p1}], 
PointSize[0.03], 
            RGBColor[1, 0, 0], 
Point[p1], Point[p2], 
            Point[p3], Point[p4]}, PlotRange -> All], 
        AspectRatio -> Automatic];\)\)

Eingabe von Eckpunktskoordinaten (in der Reihenfolge der Zeilen Run machen)

p1 = {0, 0};

p2 = {10, 0};

p3 = {11, 2} ;

p4 = {0, 4};

inpQKoord=Input["Neue Eckpunktkoordinaten eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"]; 
If[inpQKoord==1,
Print["Yes = ", inpQKoord];
p1  = Input["p1 eingeben, z.B. {0,0} "];  Print["p1 = ", p1];
p2  = Input["p2 eingeben, z.B. {10,0} "]; Print["p2 = ", p2];
p3  = Input["p3 eingeben, z.B. {11,2} "]; Print["p3 = ", p3];
p4  = Input["p4 eingeben, z.B. {0,4} "];  Print["p4 = ", p4],
inpQKoord = 0; Print["No = ", inpQKoord]; Print["Koordinaten o.k."]];

({{Eingabe:\(Klicke\ hier\ und\ überschreibe\ die\ \(\(Koordinaten\)\(:\)\)\)}, {Überschreibe p1  = {0, 
                        0}; }, {Überschreibe  p2 = {20, 
                        2}; }, {  \(\(Überschreibe\ \ p3 = {14, 6}\)\(;\)\(\ \ \)\( (*\ oder\ \ " p3=p2;"\ \ *) \)\)}, {Überschreibe p4 = {0, 
                        8}; }})

({{Go to}, {Top}, {Koordinaten überschreiben
\((Run\ für\ das\ ganze\ File\ \(machen!\))\)}, {Anzahl Zwischenpunkte
\((Run\ für\ das\ ganze\ File\ \(machen!\))\)}, {\(Kräfte\ überschreiben\)
\((Run\ für\ das\ ganze\ File\ \(machen!\))\)}})

Eingabe der Zwischenpunkte

AnzahlZwischenpunkte  = 4;

inpQZP=Input["Neue Anzahl Zwischenpunkte eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"]; 
If[inpQZP==1,
Print["Yes = ", inpQZP];
AnzahlZwischenpunkte  = Input["Anzahl Zwischenpunkte, z.B. 4 "],
inpQZP = 0; Print["No = ", inpQZP]; Print["Zwischenpunkte o.k."]];
  Print["Anzahl Zwischenpunkte = ", AnzahlZwischenpunkte]

Eingabe:\(Mögliche\ eigene\ Angabe\ der\ \(\(Zwischenpunkte\)\(:\)\)\)▼

Go to▼

Lasse den Computer rechnen:

Vorgesenener weiterer Entwicklungsschritt: Startpunkt (p1 oder p4)  start  = p1;

startVar = p1 ;

If[startVar == p1, sV = 2 , sV = 1; 
        Print["Achtung! Die y-Koordinate ist aus Gründen der \
Einfachheit gespiegelt worden!"]];
p1 = {p1[[1]], (-1)^sV p1[[2]]}; 
    p2 = {p2[[1]], (-1)^sV p2[[2]]}; 
    p3 = {p3[[1]], (-1)^sV p3[[2]]}; 
    p4 = {p4[[1]], (-1)^
            sV p4[[2]]};
pu[k_] := k (p2 - p1);
po[k_] := k (p3 - p4);
az = AnzahlZwischenpunkte ;

    
<< Graphics`Arrow`;
\(\(Show[
        Graphics[{Text["p1", p1, {\(-1\), \((\(-1\))\)^sV\ }], 
            Text["p2", p2, {0, \((\(-1\))\)^sV\ }], 
            Text["p3", p3, {0, \(-1.5\)\ \((\(-1\))\)^sV\ }], 
            Text["p4", 
              p4, {\(-1\), \(-1\)\ \((\(-1\))\)^
                    sV\ }], 
Text["Kraft", 
              p3, {\(-2\), \(-2\)}, {1, 1}], 
            Line[{p1 - 0.2 \((p4 - p1)\), 
                p4 + 0.2 \((p4 - 
                        p1)\)}], 
Thickness[ .015], 
Arrow[p3 + 2 {1, 1}, 
              p3 + 0.5 {1, 1}], 
Line[{p1, p2, p3, p4, 
                p1}], 
PointSize[0.03], 
            RGBColor[1, 0, 0], 
Point[p1], Point[p2], 
            Point[p3], Point[p4]}, PlotRange -> All]];\)\)

Go to▼

Tabelle der Punktkoordinaten und Skizze ausgeben:

pu[k_] :=  
        p1 + k/(az + 1) (p2 - p1);
po[k_] :=  
        p4 + k/(az + 1) (p3 - p4);
Prepend[
          Table[{k, pu[k], po[k]}, {k, 0, 
              az + 1}], {"k", "pu[k]", "po[k]"}] // MatrixForm // 
      N

<< Graphics`Arrow`;
tabpu = Table[pu[k], {k, 0, az + 1}];
tabpo = Table[po[k], {k, 0, az + 1}];
tabPointpupo = 
        Flatten[{Table[Point[pu[k]], {k, 0, az + 1}], 
            Table[Point[po[k]], {k, 0, 
                az + 1}]}];
\(\(Show[
        Graphics[
          Join[{Text["p1", p1, {\(-1\), \((\(-1\))\)^sV\ }], 
              Text["p2", p2, {0, \((\(-1\))\)^sV\ }], 
              Text["p3", p3, {0, \(-1.5\)\ \((\(-1\))\)^sV\ }], 
              Text["p4", 
                p4, {\(-1\), \(-1\)\ \((\(-1\))\)^
                      sV\ }], 
Text["Kraft", 
                p3, {\(-2\), \(-2\)}, {1, 1}], 
              Line[{p1 - 0.2 \((p4 - p1)\), 
                  p4 + 0.2 \((p4 - 
                          p1)\)}], 
Thickness[ .015], 
Arrow[p3 + 2 {1, 1}, 
                p3 + 0.5 {1, 1}], 
Line[{p1, p2, p3, p4, 
                  p1}], 
PointSize[0.03], 
              RGBColor[1, 0, 0], 
Point[p1], Point[p2], 
              Point[p3], Point[p4]}, tabPointpupo], PlotRange -> All], 
        AspectRatio -> Automatic];\)\)

Go to▼

Skizze der Stäbe

If[startVar == p1, 
stabTo[k_] := 
        po[k] - pu[k]; 
lineTo[k_] := 
        Line[{po[k], pu[k]}]; 
stabFrom[k_] := 
        po[k + 1] - pu[k]; 
lineFrom[k_] := 
        Line[{po[k + 1], 
            pu[k]}], 
"Entwicklung noch nicht weiter \
gediehen! Setze startVar==p1"
]

<<Graphics`Arrow`;
tabLineTo=Table[lineTo[k],{k,1,az}];
tabLineFrom=Table[lineFrom[k],{k,0,az}];
tabLines=Flatten[{tabLineTo,tabLineFrom}];
Show[Graphics[Join[{Text["p1",p1,{-1,(-1)^sV }],Text["p2",p2,{0,(-1)^sV }],Text["p3",p3,{0,-1.5 (-1)^sV }],Text["p4",p4,{-1,-1 (-1)^sV }],
          Text["Kraft",p3,{-2,-2},{1,1}],Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],
          Thickness[.015],
          Arrow[p3+2{1,1},p3+0.5{1,1}],
          Line[{p1,p2,p3,p4,p1}],tabLines,
          PointSize[0.03],RGBColor[1,0,0],
          Point[p1],Point[p2],Point[p3],Point[p4]},tabPointpupo],PlotRange->All],AspectRatio->Automatic];

Go to▼

Eingabe Kräfte

Default: Kraft = 0, Aussenkraft bei p3 = { -1, -1 }

kraftU[k_]:={0,0};
kraftO[k_]:={0,0};
kraftO[az+1]={-1,-1};
tabKraftU:=Prepend[Table[{k,kraftU[k]},{k,0,az+1}],{"Nummer","Kraft unten"}];
tabKraftO:=Prepend[Table[{k,kraftO[k]},{k,0,az+1}],{"Nummer","Kraft oben"}];


tabKraft:=Join[tabKraftU,tabKraftO];  tabKraft//MatrixForm

Kraftvektoren überschreiben:

kraftO[az+1]={-1,-3};

kraftU[az+1]={2,1};

(* Willst du z.B. die untere Kraft Nummer 3 kraftU[3] mit (1,-2) überschreiben, so füge nachstehend ohne Anführungszeichen "kraftU[3]={1,-2};" ein. *)

Eingabe:\(Überschreibe\ dke\ \(\(Kräfte\)\(:\)\)\)▼

Go to▼

inpQKraft=Input["Neue Kräfte rechts eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"]; 
If[inpQKraft==1,
Print["Yes = ", inpQKraft];
kraftO[az+1]  = Input["Kraft rechts oben eingeben, z.B. {-1,-3} "];  
kraftU[az+1]  = Input["Kraft rechts unten eingeben, z.B. {2,1} "],
inpQKraft = 0; Print["No = ", inpQKraft]; Print["Kräfte o.k."]];
Print["Kraft rechts oben = ", kraftO[az+1]];
Print["Kraft rechts unten = ", kraftU[az+1]];

Neue Ausgabe:

tabKraft//MatrixForm

Reaktionskräfte von der Wand

Kräfte rechts verändern▼

reaktion = 1;

If[
      reaktion == 1, kAussenP1[p1x_, p1y_] := {p1x, p1y}; 
      kAussenP4[p4x_, p4y_] := {p4x, 0}, kAussenP1[p1x_, p1y_] := {p1x, 0};  
      kAussenP4[p4x_, p4y_] := {p4x, 
          p4y}]


    vE[v_] := v . v/Norm[v];

Go to▼

Skizze mit Kräften

tabArrKr = 
      Join[Table[Arrow[pu[k] - kraftU[k], pu[k]], {k, 0, az + 1}], 
        Table[Arrow[po[k] - kraftO[k], po[k]], {k, 0, az + 1}], 
        If[reaktion == 1, {Arrow[po[0] - {1, 0}, po[0]], 
            Arrow[pu[0] - {1, 1}, pu[0]]}, {Arrow[po[0] - {1, 1}, po[0]], 
            Arrow[pu[0] - {1, 0}, pu[0]]}]]

<< Graphics`Arrow`;
tabLineTo = Table[lineTo[k], {k, 1, az}];
tabLineFrom = Table[lineFrom[k], {k, 0, az}];
tabLines = Flatten[{tabLineTo, tabLineFrom}];
Show[
        Graphics[
          Join[{Line[{p1 - 0.2 (p4 - p1), p4 + 0.2 (p4 - p1)}], 
              Thickness[ .015], tabArrKr, Line[{p1, p2, p3, p4, p1}], 
              tabLines, PointSize[0.03], RGBColor[1, 0, 0], Point[p1], 
              Point[p2], Point[p3], Point[p4]}, tabPointpupo], 
          PlotRange -> All], 
        AspectRatio -> Automatic];

Go to▼

Gleichungen

gU[k_]:= (xL[k](pu[k]-pu[k-1]) + xL[k+1](pu[k+1]-pu[k]) + xF[k] stabFrom[k] + xT[k] stabTo[k] + kraftU[k]=={0,0});
gO[k_]:= (yL[k](po[k]-po[k-1]) + yL[k+1](po[k+1]-po[k]) + xF[k-1] stabFrom[k-1] + xT[k] stabTo[k] + kraftO[k]=={0,0});

gU[0]=  (kAussenP1[p1x,p1y] + xL[1](pu[1]-pu[0])+ xF[0] stabFrom[0] + xT[0] stabTo[0] + kraftU[0]=={0,0});
gO[0]=  (kAussenP4[p4x,p4y] + yL[1](po[1]-po[0])+ xT[0] stabTo[0] + kraftU[0]=={0,0});
gU[az+1]=  (xL[az+1](pu[az+1]-pu[az]) + xT[az+1] stabTo[az+1] + kraftU[az+1]=={0,0});
gO[az+1]=  (yL[az+1](po[az+1]-po[az]) + xT[az+1] stabTo[az+1] + xF[az] stabFrom[az] + kraftO[az+1]=={0,0});

gleichungen=Join[Table[gU[k],{k,1,az}],Table[gO[k],{k,1,az}],{gU[0],gO[0],gU[az+1],gO[az+1]}];
{gleichungen}//Transpose//MatrixForm

varTotal = 
      Join[{p1x, p1y, p4x, p4y}, 
Table[
          xL[k], {k, 1, az + 1}], 
Table[
          yL[k], {k, 1, az + 1}], 
Table[
          xF[k], {k, 0, az + 1}], 
Table[
          xT[k], {k, 0, az}]
]

Output Gleichungen

solv = Solve[gleichungen, varTotal] // N;  
    solvOut = solv // Transpose // MatrixForm

(Faktoren zu den Kräften)

solv1 = Flatten[solv];

Go to▼

Output Skizze

If[reaktion == 1, p01x = p1x /. solv1; p01y = p1y /. solv1; 
        p04x = p4x /. solv1; 
        p04y = 0, 
p01x = p1x /. solv1; p01y = 0; 
        p04x = p4x /. solv1; p04y = p4x, p4y /. solv1];

tabArrKr = 
        Join[Table[Arrow[pu[k] - kraftU[k], pu[k]], {k, 0, az + 1}], 
          Table[Arrow[po[k] - kraftO[k], po[k]], {k, 0, az + 1}], {Arrow[
              po[0] + {p04x, p04y}, po[0]], 
            Arrow[pu[0] + {p01x, p01y}, pu[0]]}];

<< Graphics`Arrow`;
tabLineTo = Table[lineTo[k], {k, 1, az}];
tabLineFrom = Table[lineFrom[k], {k, 0, az}];
tabLines = Flatten[{tabLineTo, tabLineFrom}];
showAll = 
        Show[Graphics[
            Join[{Line[{p1 - 0.2 (p4 - p1), p4 + 0.2 (p4 - p1)}], 
                Thickness[ .015], tabArrKr, Line[{p1, p2, p3, p4, p1}], 
                tabLines, PointSize[0.03], RGBColor[1, 0, 0], Point[p1], 
                Point[p2], Point[p3], Point[p4]}, tabPointpupo], 
            PlotRange -> All], 
          AspectRatio -> Automatic];

Go to▼

Last Output

Hier kommt der Output!

Last Output

Print["Kraftvektoren: " ];

Print["Kraft links aussen unten: ",(kAussenP1[p1x,p1y]/. solv)//Transpose//MatrixForm];

Print["Kraft links aussen oben: ",(kAussenP4[p4x,p4y]/. solv)//Transpose//MatrixForm];

Print["Stabkräfte unten: ", (Table[xL[N[k]](pu[k]-pu[k-1]),{k,0,az+1}]/. solv) //Transpose//MatrixForm];

Print["Stabkräfte oben: ", 
(Table[yL[N[k]](po[k]-po[k-1]),{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Print["Kräfte schräge Stäbe: ", (Table[xF[N[k]] stabFrom[k],{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Print["Kräfte fast senkrechte Stäbe: ", (Table[xT[N[k]] stabTo[k],{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Print["Grösse (Länge) der Kräfte: " ];

Print["Kraft links aussen unten: ", Norm[kAussenP1[p1x,p1y]]/. solv];

Print["Kraft links aussen oben: ",Norm[kAussenP4[p4x,p4y]]/. solv];

Print["Stabkräfte unten: ", {Table[Norm[xL[N[k]](pu[k]-pu[k-1])],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Print["Stabkräfte oben: ", 
{Table[Norm[yL[N[k]](po[k]-po[k-1])],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Print["Kräfte schräge Stäbe: ", {(Table[Norm[xF[N[k]] stabFrom[k]],{k,0,az+1}]/. solv)}//Transpose//MatrixForm];

Print["Kräfte fast senkrechte Stäbe: ", {Table[Norm[xT[N[k]] stabTo[k]],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Show[showAll];

Klicke auf den untenstehenden Balken des Moduls Run ganz rechts und drücke Enter!!

Module Run

Skizzen

Mudul

<<Graphics`Arrow`;
moduleRun = Module[{},
p1={0,0};
p2={10,0};
p3=p2;
p4={0,4};
Show[Graphics[{
        Text["p1",p1,{-1,1}],Text["p2",p2,{0,1}],Text["p3",p3,{0,-1.5}],
        Text["p4",p4,{-1,-1}],
        Text["Kraft",p3,{-2,-2},{1,1}],Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],
        Thickness[.015],Arrow[p3+2{1,1},p3+0.5{1,1}],
        Line[{p1,p2,p3,p4,p1}],
        PointSize[0.03],RGBColor[1,0,0],
        Point[p1],Point[p2],Point[p3],Point[p4]},PlotRange->All],
    AspectRatio->Automatic];
    p1={0,0};
p2={10,0};
p3={11,2};
p4={0,4};

Show[Graphics[{Text["p1",p1,{-1,1}],Text["p2",p2,{0,1}],
        Text["p3",p3,{0,-1.5}],Text["p4",p4,{-1,-1}],
        Text["Kraft",p3,{-2,-2},{1,1}],Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],
        Thickness[.015],
        Arrow[p3+2{1,1},p3+0.5{1,1}],
        Line[{p1,p2,p3,p4,p1}],
        PointSize[0.03],RGBColor[1,0,0],
        Point[p1],Point[p2],Point[p3],Point[p4]},PlotRange->All],
    AspectRatio->Automatic];
    
inpQKoord=Input["Neue Eckpunktkoordinaten eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"]; 
If[inpQKoord==1,
Print["Yes = ", inpQKoord];
p1  = Input["p1 eingeben, z.B. {0,0} "];  Print["p1 = ", p1];
p2  = Input["p2 eingeben, z.B. {10,0} "]; Print["p2 = ", p2];
p3  = Input["p3 eingeben, z.B. {11,2} "]; Print["p3 = ", p3];
p4  = Input["p4 eingeben, z.B. {0,4} "];  Print["p4 = ", p4],
inpQKoord = 0; Print["No = ", inpQKoord]; Print["Koordinaten o.k."]];
    
AnzahlZwischenpunkte =4;
inpQZP=Input["Neue Anzahl Zwischenpunkte eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"]; 
If[inpQZP==1,
Print["Yes = ", inpQZP];
AnzahlZwischenpunkte  = Input["Anzahl Zwischenpunkte, z.B. 4 "],
inpQZP = 0; Print["No = ", inpQZP]; Print["Zwischenpunkte o.k."]];
  Print["Anzahl Zwischenpunkte = ", AnzahlZwischenpunkte];
  
startVar=p1;  (* 
  Default p1. Späterer Entwicklungsschritt: p1 oder p4 einsetzen *)
If[startVar==p1,sV=2 ,sV=1;
    Print["Achtung! Die y-Koordinate ist aus Gründen der \
Einfachheit gespiegelt worden!"]];
p1={p1[[1]],(-1)^sV p1[[2]]};p2={p2[[1]],(-1)^sV p2[[2]]};p3={p3[[1]],(-1)^
        sV p3[[2]]};p4={p4[[1]],(-1)^sV p4[[2]]};
pu[k_]:=k (p2-p1);
po[k_]:=k (p3-p4);
az=AnzahlZwischenpunkte ;

Show[Graphics[{Text["p1",p1,{-1,(-1)^sV }],Text["p2",p2,{0,(-1)^sV }],
        Text["p3",p3,{0,-1.5 (-1)^sV }],Text["p4",p4,{-1,-1 (-1)^sV }],
        Text["Kraft",p3,{-2,-2},{1,1}],Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],
        Thickness[.015],
        Arrow[p3+2{1,1},p3+0.5{1,1}],
        Line[{p1,p2,p3,p4,p1}],
        PointSize[0.03],RGBColor[1,0,0],
        Point[p1],Point[p2],Point[p3],Point[p4]},PlotRange->All]];
        
pu[k_]:= p1+k/(az+1)(p2-p1);
po[k_]:= p4+k/(az+1)(p3-p4);
prepTab=Prepend[Table[{k,pu[k],po[k]},{k,0,az+1}],{"k","pu[k]","po[k]"}]//MatrixForm//
  N ;
Print[prepTab];
 
tabpu=Table[pu[k],{k,0,az+1}];
tabpo=Table[po[k],{k,0,az+1}];
tabPointpupo=
    Flatten[{Table[Point[pu[k]],{k,0,az+1}],Table[Point[po[k]],{k,0,az+1}]}];

Show[Graphics[
      Join[{Text["p1",p1,{-1,(-1)^sV }],Text["p2",p2,{0,(-1)^sV }],
          Text["p3",p3,{0,-1.5 (-1)^sV }],Text["p4",p4,{-1,-1 (-1)^sV }],
          Text["Kraft",p3,{-2,-2},{1,1}],Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],
          Thickness[.015],
          Arrow[p3+2{1,1},p3+0.5{1,1}],
          Line[{p1,p2,p3,p4,p1}],
          PointSize[0.03],RGBColor[1,0,0],
          Point[p1],Point[p2],Point[p3],Point[p4]},tabPointpupo],
      PlotRange->All],AspectRatio->Automatic];  
 
 
If[startVar==p1,
  stabTo[k_]:=po[k]-pu[k];
  lineTo[k_]:=Line[{po[k],pu[k]}];
  stabFrom[k_]:=po[k+1]-pu[k];
  lineFrom[k_]:=Line[{po[k+1],pu[k]}],
  Print["Entwicklung noch nicht weiter gediehen! Setze startVar==p1"]
  ]  ;
  
tabLineTo=Table[lineTo[k],{k,1,az}];
tabLineFrom=Table[lineFrom[k],{k,0,az}];
tabLines=Flatten[{tabLineTo,tabLineFrom}];
Show[Graphics[Join[{Text["p1",p1,{-1,(-1)^sV }],Text["p2",p2,{0,(-1)^sV }],Text["p3",p3,{0,-1.5 (-1)^sV }],Text["p4",p4,{-1,-1 (-1)^sV }],
          Text["Kraft",p3,{-2,-2},{1,1}],Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],
          Thickness[.015],
          Arrow[p3+2{1,1},p3+0.5{1,1}],
          Line[{p1,p2,p3,p4,p1}],tabLines,
          PointSize[0.03],RGBColor[1,0,0],
          Point[p1],Point[p2],Point[p3],Point[p4]},tabPointpupo],PlotRange->All],AspectRatio->Automatic];
          
kraftU[k_]:={0,0};
kraftO[k_]:={0,0};
kraftO[az+1]={-1,-1};
tabKraftU:=Prepend[Table[{k,kraftU[k]},{k,0,az+1}],{"Nummer","Kraft unten"}];
tabKraftO:=Prepend[Table[{k,kraftO[k]},{k,0,az+1}],{"Nummer","Kraft oben"}];

tabKraft:=Join[tabKraftU,tabKraftO];  Print[tabKraft//MatrixForm];
 
kraftO[az+1]={-1,-3};
kraftU[az+1]={2,1};   
(* Willst du z.B. die untere Kraft Nummer 3 kraftU[3] mit (1,-2) überschreiben, so füge nachstehend ohne Anführungszeichen "kraftU[3]={1,-2};" ein. *)
   
inpQKraft=Input["Neue Kräfte rechts eingeben? Ja ==> input 1, Nein ==> input 0 !!!!"]; 
If[inpQKraft==1,
Print["Yes = ", inpQKraft];
kraftO[az+1]  = Input["Kraft rechts oben eingeben, z.B. {-1,-3} "];  
kraftU[az+1]  = Input["Kraft rechts unten eingeben, z.B. {2,1} "],
inpQKraft = 0; Print["No = ", inpQKraft]; Print["Kräfte o.k."]];
Print["Kraft rechts oben = ", kraftO[az+1]];
Print["Kraft rechts unten = ", kraftU[az+1]];

Print[tabKraft//MatrixForm ];
  
reaktion=1;
(*Unbekannte Auflagekräfte*)

If[reaktion==1,  kAussenP1[p1x_,p1y_]:={p1x,p1y};kAussenP4[p4x_,p4y_]:={p4x,0},
  kAussenP1[p1x_,p1y_]:={p1x,0}; kAussenP4[p4x_,p4y_]:={p4x,p4y}];

vE[v_]:=v.v/Norm[v];(*Einheitsvektor Richtung v---erst nicht gebraucht*)

tabArrKr=Join[Table[Arrow[pu[k]-kraftU[k],pu[k]],{k,0,az+1}],
    Table[Arrow[po[k]-kraftO[k],po[k]],{k,0,az+1}],
    If[reaktion==1,{Arrow[po[0]-{1,0},po[0]],
        Arrow[pu[0]-{1,1},pu[0]]},{Arrow[po[0]-{1,1},po[0]],
        Arrow[pu[0]-{1,0},pu[0]]}]];
        
tabLineTo=Table[lineTo[k],{k,1,az}];
tabLineFrom=Table[lineFrom[k],{k,0,az}];
tabLines=Flatten[{tabLineTo,tabLineFrom}];
Show[Graphics[
      Join[{Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],Thickness[.015],tabArrKr,
          Line[{p1,p2,p3,p4,p1}],tabLines,PointSize[0.03],RGBColor[1,0,0],
          Point[p1],Point[p2],Point[p3],Point[p4]},tabPointpupo],
      PlotRange->All],AspectRatio->Automatic];
      
gU[k_]:= (xL[k](pu[k]-pu[k-1]) + xL[k+1](pu[k+1]-pu[k]) + xF[k] stabFrom[k] + xT[k] stabTo[k] + kraftU[k]=={0,0});
gO[k_]:= (yL[k](po[k]-po[k-1]) + yL[k+1](po[k+1]-po[k]) + xF[k-1] stabFrom[k-1] + xT[k] stabTo[k] + kraftO[k]=={0,0});

gU[0]=  (kAussenP1[p1x,p1y] + xL[1](pu[1]-pu[0])+ xF[0] stabFrom[0] + xT[0] stabTo[0] + kraftU[0]=={0,0});
gO[0]=  (kAussenP4[p4x,p4y] + yL[1](po[1]-po[0])+ xT[0] stabTo[0] + kraftU[0]=={0,0});
gU[az+1]=  (xL[az+1](pu[az+1]-pu[az]) + xT[az+1] stabTo[az+1] + kraftU[az+1]=={0,0});
gO[az+1]=  (yL[az+1](po[az+1]-po[az]) + xT[az+1] stabTo[az+1] + xF[az] stabFrom[az] + kraftO[az+1]=={0,0});

gleichungen=Join[Table[gU[k],{k,1,az}],Table[gO[k],{k,1,az}],{gU[0],gO[0],gU[az+1],gO[az+1]}];
Print[{gleichungen}//Transpose//MatrixForm];

varTotal=Join[{p1x,p1y,p4x,p4y},
    Table[xL[k],{k,1,az+1}],
    Table[yL[k],{k,1,az+1}],
    Table[xF[k],{k,0,az+1}],
    Table[xT[k],{k,0,az}]
    ];
    
solv=Solve[gleichungen,varTotal]//N; Print[solvOut=solv//Transpose//MatrixForm];

   (* Streckungsfaktoren mal Stabvektoren ergeben die Kraftvektoren, 
  noch nicht angezeigt *)
  
solv1=Flatten[solv];  

If[reaktion==1,p01x=p1x/.solv1;p01y=p1y/.solv1;p04x=p4x/.solv1;p04y=0,
p01x=p1x/.solv1;p01y=0;p04x=p4x/.solv1;p04y=p4x,p4y/.solv1];

tabArrKr=Join[Table[Arrow[pu[k]-kraftU[k],pu[k]],{k,0,az+1}],
      Table[Arrow[po[k]-kraftO[k],po[k]],{k,0,az+1}],{Arrow[po[0]+{p04x,p04y},
          po[0]],Arrow[pu[0]+{p01x,p01y},pu[0]]}];
          
tabLineTo=Table[lineTo[k],{k,1,az}];
tabLineFrom=Table[lineFrom[k],{k,0,az}];
tabLines=Flatten[{tabLineTo,tabLineFrom}];
showAll=Show[
      Graphics[Join[{Line[{p1-0.2(p4-p1),p4+0.2(p4-p1)}],Thickness[.015],
            tabArrKr,Line[{p1,p2,p3,p4,p1}],tabLines,PointSize[0.03],
            RGBColor[1,0,0],Point[p1],Point[p2],Point[p3],Point[p4]},
          tabPointpupo],PlotRange->All],AspectRatio->Automatic];
]

0

Last Output

Print["Kraftvektoren: " ];

Print["Kraft links aussen unten: ",(kAussenP1[p1x,p1y]/. solv)//Transpose//MatrixForm];

Print["Kraft links aussen oben: ",(kAussenP4[p4x,p4y]/. solv)//Transpose//MatrixForm];

Print["Stabkräfte unten: ", (Table[xL[N[k]](pu[k]-pu[k-1]),{k,0,az+1}]/. solv) //Transpose//MatrixForm];

Print["Stabkräfte oben: ", 
(Table[yL[N[k]](po[k]-po[k-1]),{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Print["Kräfte schräge Stäbe: ", (Table[xF[N[k]] stabFrom[k],{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Print["Kräfte fast senkrechte Stäbe: ", (Table[xT[N[k]] stabTo[k],{k,0,az+1}]/. solv)//Transpose//MatrixForm];

Print["Grösse (Länge) der Kräfte: " ];

Print["Kraft links aussen unten: ", Norm[kAussenP1[p1x,p1y]]/. solv];

Print["Kraft links aussen oben: ",Norm[kAussenP4[p4x,p4y]]/. solv];

Print["Stabkräfte unten: ", {Table[Norm[xL[N[k]](pu[k]-pu[k-1])],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Print["Stabkräfte oben: ", 
{Table[Norm[yL[N[k]](po[k]-po[k-1])],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Print["Kräfte schräge Stäbe: ", {(Table[Norm[xF[N[k]] stabFrom[k]],{k,0,az+1}]/. solv)}//Transpose//MatrixForm];

Print["Kräfte fast senkrechte Stäbe: ", {Table[Norm[xT[N[k]] stabTo[k]],{k,0,az+1}]/. solv}//Transpose//MatrixForm];

Show[showAll];