Программа 41.  Статически определимая рама

>    restart:

>    read "C:\\epura.m";

>    read "C:\\Risepura.m";

>    read "C:\\Podpr1.m";

      Ввод данных

>    fd := fopen("C:/M13/MMiK.txt",READ):# Доступны файлы p64,p1.txt,...,p5.txt,p5a.txt,MMiK.txt,SoprM-M.txt,balka.txt,p41a.txt

>    x:=[parse(readline(fd))];# Координаты узлов

>    y:=[parse(readline(fd))];

>    for i to 3 do# Нагрузки в узлах

>     P||i:=[parse(readline(fd))];

>    od;

>    str:=[parse(readline(fd))]; #Стержни. Номера узлов

>    Vns:=[parse(readline(fd))]; #Внутр.шарниры

>    readline(fd);               #строка-комментарий

>    OPOR:=[parse(readline(fd))];#Опоры

>    Qx:=[parse(readline(fd))];#Qx Стержни. Распределенная нагрузка

>    Qy:=[parse(readline(fd))];#Qy

>    EJ:=[parse(readline(fd))];#Относительная жесткость

>    Napravl,Nuzel:=parse(readline(fd));#Место прогиба

>    fclose(fd);

>    n:=nops(x):   # Число узлов         

>    m:=nops(str): # Число стержней

>    ks:=nops(Vns);           # Число внутренних шарниров

>    Vns1:=Vector(n):         # Вектор значений внутренних моментов в шарнирах Vns(=0)

>    ko:=nops(OPOR):          # Число опор

>    printf("Число  неизвестных  %d + %d, уравнений %d + %d + %d",ko,6*m,ks,3*m,3*n);

x := [1, 3, 3, 5, 6, 0]

y := [0, 0, 3, 3, 3, 3]

P1 := [0, 0, 0, 0, 0, 0]

P2 := [0, 0, 0, 0, 0, 0]

P3 := [0, 0, 0, 0, 0, 0]

str := [[1, 2], [2, 3], [3, 4], [4, 5], [6, 3]]

Vns := [[3, 2, 3]]

OPOR := [[1, 2], [5, 1], [5, 2], [5, 3]]

Qx := [0, 0, 0, 0, 0]

Qy := [0, 0, -4, -4, -4.]

EJ := [1, 1, 1, 1, 1]

Napravl, Nuzel := 3, 3

ks := 1

Число  неизвестных  4 + 30, уравнений 1 + 15 + 18

  Решение

>    Lxy():

>    RisRama();

[Maple Plot]

>    EpuraM(P1,P2,P3):#Моменты

>    Реакции=seq(Ro[i],i=1..ko);

`Реакции` = (12.50000000, 0., 11.50000000, -9.500000000)

>    RQ(Rx,Ry):       #Поперечная сила

>    PrintRez(Q1,"Qp");

 N    Qp(1)     Qp(2) 

1   12.50   12.50  

2    0.00    0.00  

3    0.50   -7.50  

4   -7.50  -11.50  

5    0.00  -12.00  

>    QP:=Matrix(m,2,Q1):

>    RisEpur(QP,'QP',0);

[Maple Plot]

>     MP:=Matrix(m,2,Rm):

>     RisEpur(MP,'MP',1);

>     PrintRez(Rm,"Mp");

>     Qx0:=Qx:  Qy0:=Qy: #Сохраняем данные(распр.нагр)

[Maple Plot]

 N    Mp(1)     Mp(2) 

1    0.00   25.00  

2  -25.00   25.00  

3   -7.00    0.00  

4    0.00   -9.50  

5    0.00  -18.00  

>      P1:=Vector(n):P2:=Vector(n):P3:=Vector(n): #Обнуляем нагрузки

>      Qx:=Vector(m):Qy:=Vector(m): #Обнуляем нагрузки

>      P||Napravl[Nuzel]:=1;        #Прикладываем единичную нагрузку

P3[3] := 1

>      EpuraM(P1,P2,P3):

>      m1:=Matrix(m,2,Rm):

>      RisEpur(m1,"m1",1);

[Maple Plot]

>      PrintRez(m1,"m1");

 N    m1(1)     m1(2) 

1    0.00    0.50  

2   -0.50    0.50  

3    0.50    0.00  

4    0.00    0.25  

5    0.00    0.00  

>     Delta1:=evalf(add(int(EM(MP,1,u,k)*EM(m1,0,u,k)/EJ[k],u=0..L[k]),k=1..m));

Delta1 := 42.08333333