42878

Графы и алгоритмы на графах. Решение обыкновенных дифференциальных уравнений. Разработка программы для решения системы ОДУ, описывающей простейшую модель экосистемы (модель Лотка-Вольтерра). Методы оптимизации

Курсовая

Информатика, кибернетика и программирование

Оптимизация как раздел математики существует достаточно давно. Оптимизация - это выбор, т.е. то, чем постоянно приходится заниматься в повседневной жизни. Термином "оптимизация" в литературе обозначают процесс или последовательность операций, позволяющих получить уточненное решение. Хотя конечной целью оптимизации является отыскание наилучшего или "оптимального" решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. По этому под оптимизацией понимают скорее стремление к совершенству, которое, возможно, и не будет достигнуто.

Русский

2013-10-31

1.58 MB

20 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

ПРИАЗОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра автоматизации технологических процессов и производств

КУРСОВАЯ  РАБОТА

Графы и алгоритмы на графах. Решение обыкновенных дифференциальных уравнений. Разработка программы для решения системы ОДУ, описывающей простейшую модель экосистемы (модель Лотка-Вольтерра). Методы оптимизации.

                                                              

                                                         Выполнил:

студент группы МА-08 

Иванов А.Н.

                                                     Проверил:

доцент

Чичкарев Е.А.

                                                                  

Мариуполь 2010

Приазовський державний технічний університет

Кафедра Автоматизації технологічних процесів та виробництв

Дисципліна Чисельні методи та моделювання на ЄОМ

Спеціальність Автоматизація та компьютерно-інтегровані технології

Курс _2__              Група _____МА-08_________         Семестр     3 

ЗАВДАННЯ

на курсову роботу студента

Іванова Олександра Миколайовича

  1.  Тема проекту: «Побудова математичних моделей і програмування чисельних алгоритмів та алгоритмів дискретної математики»
  2.  Строк здачі студентом закінченого проекту 30 грудня 2009
  3.  Вихідні дані до проекту _____

Зміст розрахунково-пояснювальної записки (перелік питань які підлягають розробці) 1.Вступ.      2. Завдання 1 Графы и алгоритмы на графах. 3. Завдання 2 Решение обыкновенных дифференциальных уравнений. Разработайте программу для решения системы ОДУ, описывающей простейшую модель экосистемы (модель Лотка-Вольтерра). 4. Завдання 3 Методы оптимизации. 4.Заключення. 5. Додатки (блок-схеми алгоритмів, ілюстрації результатів роботи програм)

  1.  Перелік графічного матеріалу (з точним зазначенням обов’язкових креслень) 1. Математичне ставлення задачи. 2.Опис алгоритму рішення.  3. Текст програми. 4. Вихідні графічні матеріали ( блок-схема алгоритмів, результати рішення).
  2.  Дата видачі завдання

КАЛЕНДАРНИЙ ПЛАН

№ п/п

Назва етапів курсового проекту

Строк виконання етапів проекту

Примітки

1.

Розробка математичної постановки завдань проєктування

2.

Вибір алгоритмів для вирішення завдань проектування

3.

Розробка програми для вирішення завдання 1

4.

Розробка програми для вирішення завдання 2

5.

Розробка програми для вирішення завдання 3

6.

Складання та оформлення пояснювальної записки

7.

Оформлювання графічних матеріалів

8.

Підготовка до захисту курсової  роботи

Студент____________________

(підпис)

Керівник___________________     

 (підпис)

“___”____________________2009 р.

Содержание

   Введение....................................................................................................4

  1.  Постановка задачи……………………………………………………...5
  2.  Теоретическая часть

2.1 Графы и алгоритмы на графах…………………………………….…6

2.2 Метод Фибоначчи………………………………………………..…...9

2.3 Метод наискорейшего спуска………………………………………10

2.4 Метод Рунге-Кутта-Мерсона………………………………………..12

2.5 Метод Эйлера..….….….…….…………………………………….14

   3. Практическая реализация методов

    3.1 Входные и выходные данные, их структура и представление в ПЭВМ……………………………………………………………………..…19

    3.2  Блок-схема алгоритма решения задачи……………………..……..21

     3.2.1 Блок-схема графа…………………………………………….……21

     3.2.2 Блок-схема метода Фибоначчи…………………………….…….25

     3.2.3 Блок-схема метода наискорейшего спуска ………………….….26

     3.2.4 Блок-схема метода Рунге-Кутта-Мерсона ……...………………27

     3.2.5 Блок-схема метода Эйлера………………………………….28 

   3.3 Описание программ………………………………………………….28

     3.3.1 Основная программа реализации на графах………………....…28

     3.3.2 Основная программа реализации методом Фибоначчи…….….30

     3.3.3 Основная программа реализации методом дихотомии, хорд, Ньютона и простой итерации………………………………………..…….31

     3.3.4 Основная программа реализации методом Ньютона с  точностью 0.0001………………………………………………………………..….…...32

 4. Результаты работы программ………………………………….………33

  Заключение..….….….…………………………………………..……..….35

  Литература…………………………………………………………….…..36

Введение

    В данной курсовой будут рассмотрены методы оптимизации функции и алгоритмы а графах.

В достаточно общем виде математическую задачу оптимизации можно сформулировать следующим образом:

Минимизировать (максимизировать) целевую функцию с учетом ограничений на управляемые переменные.

    Оптимизация как раздел математики существует достаточно давно. Оптимизация - это выбор, т.е. то, чем постоянно приходится заниматься в повседневной жизни. Термином "оптимизация" в литературе обозначают процесс или последовательность операций, позволяющих получить уточненное решение. Хотя конечной целью оптимизации является отыскание наилучшего или "оптимального" решения, обычно приходится довольствоваться улучшением известных решений, а не доведением их до совершенства. По этому под оптимизацией понимают скорее стремление к совершенству, которое, возможно, и не будет достигнуто.

    Граф, в котором направление линий не выделя ется (все линии являются ребрами), называется неориентированным; граф, в котором направление линий принципиально (линии являются дугами) называется ориентированным.

    Язык графов оказывается удобным для описания многих физических, технических, экономических, биологических, социаль ных и других систем. Теория графов находит своё применение в таких задачах как: транспортные маршруты, обменные схемы, управление проектами, модели коллективов и групп, модели организационных структур.

  1.  Постановка задачи

    В рамках курсового проекта необходимо создать обучающую программу на языке Borland С++  реализующую решение на графах, обыкновенных дифференциальных уравнений,  системы ОДУ, описывающей простейшую модель экосистемы (модель Лотка-Вольтерра), методы оптимизации. На основе работы программы сделать выводы о эффективности того или иного метода.

  1. Теоретическая часть

2.1 Графы и алгоритмы на графах

Задание 1. Составьте программу на С, выполняющую ввод графа (в виде абстрактной структуры или системы дорог, соединяющих населенные пункты). Рекомендуется хранение графа в виде списка инцидентности (допускается использование матрицы смежности или инцидентности)

Задание 2. Дополните программу функцией, выполняющей решение задачи в соответствии с вариантом (см. ниже).

Найти такую вершину заданного графа, которая принадлежит каждому пути между двумя выделенными  (различными) вершинами и отлична от каждой из них.

2.2 Метод Фибоначчи

Для выбранной функции найдите наибольшее значение методом чисел Фибоначчи.

Последовательность чисел

0,1,1,2,3,5,8,13,21,34,…,

Каждый член которой равен сумме двух предыдущих называется числами Фибоначчи.

Числа Фибоначчи удовлетворяют многим интересным тождествам например:

Fn+1Fn-1-Fn2=(-1)n  (1)

zln-2Fnzln-1   (2)

Fn/Fn-1zl, при n>7 ,  (3)

где Fn –число Фибоначчи, а zl-золотое сечение (zl=(1+5½)/2).

Исходя из свойства 3 видно что числа этой довольно интересной последовательности можно применять для нахождения максимумов функций также как и в метод золотого сечения.

Алгоритм процедуры поиска максимума:

Max(a,b)

  1.  Находим три числа Фибоначчи Fn Fn-1 Fn-2 n>8;
  2.  Производим шаги 3-4 пока |a-b|>eps
  3.  y=a+ Fn-2 (b-a)/Fn; z= a+ Fn-1 (b-a)/Fn;
  4.  если f(y)>f(z) то b=z иначе a=y;
  5.  Искомый максимум – f((a+b)/2);

2.3 Метод наискорейшего спуска

Для выбранной функции найдите наименьшее значение методом наискорейшего спуска( варианты взять из задания 3, столбец 3 таблицы вариантов, целевая функция – сумма квадратов невязок системы уравнений).

2.4 Метод Рунге-Кутта-Мерсона

Разработайте программу для решения системы ОДУ, описывающей простейшую модель экосистемы (модель Лотка-Вольтерра). Предусмотрите вывод результатов в текстовый файл и ввод коэффициентов системы (a,b,c, a) и начальных условий с терминала.

Автоматическое изменение шага в ходе решения систем дифференциальных уравнений необходимо, если решение требуется получить с заданной точностью. При высокой точности (погрешность ) и решении в виде кривых с сильно различающейся крутизной автоматическое изменение шага обеспечивает уменьшение общего числа шагов в несколько раз, резко уменьшается вероятность числовой неустойчивости, даёт более равномерное расположение точек графика кривых (решений) при их выводе на печать. Данный метод обеспечивает приближённую оценку погрешностей на каждом шаге интегрирования. Погрешность интегрирования имеет порядок h5. Этот метод реализуется следующим алгоритмом: Задаём число уравнений N, погрешность ε=E, начальный шаг интегрирования h=H и начальное значение y10,…,yN0. С помощью пяти циклов с управляющей переменной J=1,2,..,N вычисляем коэффициенты:

   (7)

(8)

(9)

(10)

(11)

Находим (в последнем цикле) значение (12)

(12)

И погрешность

(13)

Проверяем выполнения условий

(14)

(15)

Если условие (14) не выполняется, то делим шаг h на 2 и повторяем вычисления. Если это условие выполняется и выполняется условие (15), значение xi+1=xi+h и Yj(i+1), то считаем, что решение системы дифференциальных уравнений найдено с заданной точностью. Если условие (15) не выполняется , шаг h увеличивается вдвое и вычисления повторяются.

2.5 Метод Эйлера

Для выбранной функции найдите наибольшее значение взятием производной и решением возникающего уравнения f'(x)=0.

Методы Эйлера численного решения дифференциальных уравнений первого и второго порядков.

Метод численного решения дифференциального уравнения первого порядка

       (1)

с начальным условием основан на разложении решения в ряд Тейлора в -окрестности точки :

При отбрасывании всех членов ряда, содержащих производные второго и высших порядков получим:  , где  -правая часть уравнения (1).

Пользуясь значением из разложения в - окрестности точки получим

         (2)

Аналогично продолжая для следующей точки , получим

      (3)

Если дано уравнение второго порядка

        (4)

с начальными условиями и , то как такое уравне- ние можно свести к системе двух уравнений первого порядка

 ,        (5)

причем и .

Тогда приближенные значения функций и в точке можно высислить по формулам

 ,      (6)

где  - правая часть уравнения (4).

При достаточно малой величине шага метод Эйлера дает решение с большой точностью, т.к. погрешность решения близка к

  1.  Результаты работы программ

Графы

График функции для поиска точек её экстремумов

Дифференцирование мотодом Эйлера

Метод Фибоначчи

Метод наискорейшего спуска

                         

Метод Рунге-Кутта-Мерсона

3.Практическая реализация методов.

3.1 Входные и выходные данные, их структура и представление в ПЭВМ.

Коэффициенты в уравнениях вводятся с клавиатуры. В программе также есть ограничение на ввод коэффициентов в зависимости от типа уравнения. В качестве входных параметров мы используем начальное приближение, а также вводим начальное и конечное значение нашей производной, шаг и точность вычисления. В качестве выходных параметров выступают значение неизвестной переменной, а также .

3.3 Описание программ

< Основная программа реализации дифференцирования методом Эйлера>

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <math.h>

const eps=1e-9;

float a,b,h,x,y,x0,y0;

float func(float x)

{

return x*x*x*x-18*x*x+5*x-8;

}

int main ()

{

printf(" Input a, b = \n");

scanf(" %f",&a);

scanf(" %f",&b);

printf(" H = \n");

scanf(" %f",&h);

printf("\n\n Metodom Eilera 1-ya proizvodnaya");

x0=0;

y0=1;

x=x0;

y=y0;

  while (x<b+eps)

  {

   y=y0+h*func(x);

   y0=y;

   printf("\n pri x=%f y=%f",x,y);

   x=x+h;

  }

  getch();

  return 0;

}

< Основная программа реализации методом Фибоначчи >

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <math.h>

double func(double x)

{

return  x*x*x*x-18*x*x+5*x-8;

}

double fabio(double *a0, double *b0, int *n0, double eps)

{

int i,n;

double s1;

   double s2;

double u1;

double u2;

double fu1;

   double fu2;

double a,b;

a=*a0;

b=*b0;

n=*n0;

   s1 = (3-sqrt(double(5)))/2;

   s2 = (sqrt(double(5))-1)/2;

   u1 = a+s1*(b-a);

u2 = a+s2*(b-a);

fu1 = func(u1);

fu2 = func(u2);

for(i = 1; i <= n; i++)

{

 if( fu1<=fu2 )

 {

  b = u2;

  u2 = u1;

  fu2 = fu1;

  u1 = a+s1*(b-a);

  fu1 = func(u1);

 }

 else

 {

  a = u1;

  u1 = u2;

  fu1 = fu2;

  u2 = a+s2*(b-a);

  fu2 = func(u2);

 }

 printf(" [%d]      a= %lf       b= %lf \n",i,a,b);

 if(fabs(b-a)<eps)

 {

  break;

 }

}

*a0=a;

*b0=b;

*n0=i;

return (a+b)/2.0;

}

int main() {

int n; double x,a,b,eps;

n=100;

printf(" Input a, b = \n");

scanf(" %lf",&a);

scanf(" %lf",&b);

printf(" Eps = \n");

scanf(" %lf",&eps);

x=fabio(&a, &b, &n, eps);

printf("\n [%d]      a= %lf       b= %lf       x= %lf  \n",n,a,b,x);

getch();

return 0;

}


<Основная программа реализации на графах>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

int N, M;

int **Graf;

void OVS( int Start, int FIFO[], int Label[], int Ignor );

int main()

{

FILE *f;

int *Label;

int *FIFO;

int From, To;

int i, j, k;

f = fopen("f:\\new\\input.txt","r");

fscanf( f, "%d %d", &From, &To );

fscanf( f, "%d %d", &N, &M );

printf( "N(vershin) = %d, M(putej) = %d\n", N, M );

Label = (int*) malloc( N * sizeof(int) );

FIFO  = (int*) malloc( N * sizeof(int) );

Graf  = (int**) malloc( N * sizeof(int*) );

for( i = 0; i < N; i++ )

  Graf[i] = (int*) malloc( N * sizeof(int) );

for( i = 0; i < N; i++ ) {

  Label[i] = 0;

  FIFO[i] = 0;

}

for( i = 0; i < N; i++ )

  for( j = 0; j < N; j++ ) Graf[i][j] = 0;

for( k = 0; k < M; k++ ) {

fscanf( f, "%d %d", &i, &j );

Graf[i][j] = 1;

}

for( i = 0; i < N; i++ )

  for( j = 0; j < N; j++ )

 printf( "Graf[%d,%d] = %d\n", i, j, Graf[i][j] );

printf("\n");

OVS( From, FIFO, Label, -1 );

printf( "Control poiska v shirinu ot vershiny i = %d \n", From );

for( k = 0; k < N; k++ )

  printf( "%d   ", Label[k] );

if( Label[To] < 30000 ) {

  for( i = 0; i < N; i++ ) {

 if( i != From && i != To ) {

   OVS( From, FIFO, Label, i );

   printf( "\nControl poiska v shirinu bez vershiny i = %d \n", i );

   for( k = 0; k < N; k++ )

  printf( "%d   ", Label[k] );

   if( Label[To] > 30000 ) {

  printf( "\nVershina: %d", i );

  break;

   }

 }

  }

  if( i == N )

 printf( "\nTakoj vershini net" );

}

else

  printf( "\nNet puti mejdu ukazannimi vershinami" );

printf( "\n" );

fclose(f);

getch();

return 0;

}

void OVS( int Start, int FIFO[], int Label[], int Ignor )

{

int z, p, k, cur;

for( z = 0; z < N; z++) {

  FIFO[z] = 0;

  Label[z] = 32767;

}

p = 0;

k = 1;

FIFO[p] = Start; Label[Start] = 0;

while( p != k ) {

  cur = FIFO[p];

  p++;

  for( z = 0; z < N; z++)

 if( Graf[cur][z] == 1 && Label[z] > Label[cur] + 1 && z != Ignor ) {

   FIFO[k] = z;

   k++;

   Label[z] = Label[cur] + 1;

 }

}

}

<Основная программа поиска минимума методом наискорейшего спуска>

#include <math.h>

#include <conio.h>

#include <stdio.h>

#include <stdlib.h>

float x,f1,f2,y,x0,y0,x1,y1,e=0.0001,z,d,a;

float f(float x, float y)

{

 f1=x*x+y*y-6;

 f2=exp(-x)-y;

 z=f1*f1+f2*f2;

 return z;

}

float d1(float x, float y)

{

 d=2*(x*x+y*y-6)*(2*x)+(-exp(-x))*2*(exp(-x)-y);

 return d;

}

float d2(float x, float y)

{

 d=2*(x*x+y*y-6)*(2*y)+(-1)*(2*(exp(-x)-y));

 return d;

}

int main()

{

 clrscr();

 x0=1;

 y0=1;

 a=0.1;

 while ((fabs(d1(x0,y0))>e/2) && (fabs(d2(x0,y0))>e/2))

 {

x1=x0-a*d1(x0,y0);

y1=y0-a*d2(x0,y0);

 if (f(x1,y1)>f(x0,y0))

 {

  a=a/2;

  x1=x0-a*d1(x0,y0);

  y1=y0-a*d2(x0,y0);

}

x0=x1;

y0=y1;

 }

 x=x0;

 y=y0;

 printf ("\n Min fynkcii naydenn s pomoshiy naiskoreishego spyska: ");

 printf ("\n x=%f  y=%f",x,y);

 getch();

 return 0;

}

<Основная программа для решения системы ОДУ, описывающей простейшую модель экосистемы>

#include <stdio.h>

#include <conio.h>

#include <math.h>

const double t = 1e-3;

const double t0=0;

float x1,x2,a,b,c,alpha,tk;

FILE *f11;

double f1 (float x1, float x2 )

{

 return((a-b*x2)*x1-alpha*x1*x1);

}

double f2 (float x2, float x1 )

{

 return((-c+b*x1)*x2-alpha*x2*x2);

}

int main ()

{

clrscr();

float x,y1,y2,k1,k2,k3,k4,k5,r,h,d1,d2;

   printf("\n\r Vvedite a,b,c,alpha,tk,x1,x2:");

   printf("\n x1=");

   scanf("%f", &x1);

   printf("\n x2=");

   scanf("%f", &x2);

   printf("\n a=");

   scanf("%f", &a);

   printf("\n b=");

   scanf("%f", &b);

   printf("\n c=");

   scanf("%f", &c);

   printf("\n alpha= ");

   scanf("%f", &alpha);

   printf("\n tk=");

   scanf("%f", &tk);

   cprintf("\n Metod Runge-Kutta-Mersona");

   h=tk/20;

   y1=x1;

   y2=x2;

   f11=fopen("d:\\f1.txt", "w+");

   for (a=t0; a<=tk+t; a+=h)

   {

  printf("\n\n t=%f", a);

  k1=h*f1(x1,x2);

  k2=h*f1(x1+(1/3)*h,x2+(1/3)*k1);

  k3=h*f1(x1+(1/3)*h,x2+(1/6)*k1+(1/6)*k2);

  k4=h*f1(x1+(1/2)*h,x2+(1/8)*k1+(3/8)*k3);

  k5=h*f1(x1+h,x2+(1/2)*k1-(3/2)*k3+2*k4);

  d1=y1+(k1+4*k4+k5)/6;

  k1=h*f2(x2,x1);

  k2=h*f2(x2+(1/3)*h,x1+(1/3)*k1);

  k3=h*f2(x2+(1/3)*h,x1+(1/6)*k1+(1/6)*k2);

  k4=h*f2(x2+(1/2)*h,x1+(1/8)*k1+(3/8)*k3);

  k5=h*f2(x2+h,x1+(1/2)*k1-(3/2)*k3+2*k4);

  d2=y2+(k1+4*k4+k5)/6;

  r=(2*k4-3*k3-k5)/10;

  if (fabs(r)>tk)

  {

   h=h/2;

  }

  if (32*(fabs(r)<tk))

  {

     h=h*2;

  }

  printf("\n x1=%f  d1=%f ",(a+x1),d1);

  printf("\n x2=%f  d2=%f ",(a+x2),d2);

  fprintf(f11, " t=%f   d1=%f     d2=%f \n",a,d1,d2);

   }

   getch();

   fclose(f11);

}

Заключение

В результате работы программы я выяснил, что  методы довольно точно и быстро считают максимумы и минимумы функции. Программа на графах находит вешину заданного графа, которая принадлежит каждому пути между двумя выделенными  (различными) вершинами и отлична от каждой из них. Если такой вершины нет то выдаётся соответствующее условие.

Программы, решающие данные задачи, могут быть легко подстроены под другие уравнения при внесении изменений в тексте программы.  

Список используемой литературы

  1.  Бахвалов Н. С. Численные методы. – М.: Наука, 1975.

  1.  Мудров А.Е. Численные методы для ПЭВМ на языках Бейсик, Фортран и Паскаль.-Томск: МП «Раско», 1991.

  1.  Бахвалов  Н. С., Кобельков Г.М, Поспелов В.В. Сборник задач по методам вычислений. – М.: Изд-во МГУ, 1989.

  1.  Карманов В.Г. Математическое программирование. – М.: Наука, 1984.


 

А также другие работы, которые могут Вас заинтересовать

3820. Теоретические основы экономического анализа инвестиционных проектов 392.5 KB
  Теоретические основы экономического анализа инвестиционных проектов. Прежде чем рассматривать вопросы анализа инвестиционных проектов необходимо дать краткое понятие инвестиций. Инвестиции- вложение капитала с целью его последующего увеличени...
3821. История и развитие радиотехники 45.5 KB
  История и развитие радиотехники Предметом электронной техники является теория и практика применения электронных, ионных и полупроводниковых приборов в устройствах, системах и установках для различных областей народного хозяйства. Гибкость электронно...
3822. Исследование обнаруживающей и исправляющей способности циклических кодов. 198.5 KB
  Исследование обнаруживающей и исправляющей способности циклических кодов. Цель работы. Ознакомление с методами построения корректирующих кодов. Экспериментальное исследование обнаруживающей и исправляющей способности циклических кодов. Описание лабо...
3823. Анализ эффективности работы современного коммерческого банка 394 KB
  Баланс, доходы и расходы банка На основе качественного распределения активов и использования метода сравнения определяются пропорции между счетами, выявляются тенденции в их изменении и оценивается, в какой мере эти динамические изменения и откло...
3824. Исследование относительного движения материальной точки 103 KB
  Кафедра «Теоретической механики» Индивидуальное задание № Вариант № 4 Тема: «Исследование относительного движения материальной точки» Дано: Схема конструкции (рисунок 1) m=0,09 кг Найти уравнение относительного...
3825. Характеристики линий связи в КС 200.5 KB
  Введение В соответствии с объектом и предметом исследования были поставлены следующие задачи: осветить основные исторические этапы становления и развития линий связи перечислить основные виды каналов связи для компьютерных сетей рассмотреть сущест...
3826. Изучение структуры углеродистых сталей в равновесном (отожженном) состоянии 72.5 KB
  Изучение структуры углеродистых сталей в равновесном (отожженном) состоянии Химически чистые металлы обладают низкой прочностью, поэтому в технике их применяют сравнительно редко. Наиболее широко используют сплавы - вещества, полученные сплавлением...
3827. Изучение вращательного движения твердого тела 83.5 KB
  Изучение вращательного движения твердого тела Цель работы: изучение кинематики и динамики вращательного движения, построение абстрактной модели реальной физической системы. Приборы и принадлежности: прибор Обербека, оборудованный миллисекундомером, ...
3828. Колебательные движения физического маятника 110.6 KB
  Физический маятник 1.Параметры колебательного движения Движение, при котором координата точки изменяется по закону косинуса (или синуса) называется гармоническим колебанием. Таким образом, при равномерном движении точки по окружности ее проекция сов...