LAB 3
SCILAB. моделирование задачи "Тело брошенное под углом к горизонту без учета сопротивления воздуха"
Аналитическое решение движения тела

Аналитическое решение движения тела, брошенного под углом к горизонту

1. Основные уравнения движения

Проекции начальной скорости:

По оси Ox: v0x = v0 cos α

По оси Oy: v0y = v0 sin α

Уравнения координат:

Горизонтальная координата: x(t) = v0 cos α · t

Вертикальная координата: y(t) = v0 sin α · t − gt²/2

Уравнения скоростей:

Горизонтальная скорость: vx(t) = v0 cos α (постоянна)

Вертикальная скорость: vy(t) = v0 sin α − gt

2. Основные параметры движения

Время подъема:

tпод = v0 sin α/g

Общее время полета:

tпол = 2tпод = 2v0 sin α/g

Максимальная высота подъема:

Hmax = v0² sin² α/2g

Дальность полета:

L = v0² sin 2α/g

3. Вывод уравнений

Траектория движения:

1. Из уравнения x(t) выражаем время:

t = x / (v0 cos α)

2. Подставляем в уравнение y(t):

y = x tan α − (gx²)/(2v0² cos² α)

Скорость в любой момент времени:

Модуль скорости:

v = √(vx² + vy²)

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

tan β = vy / vx

4. Важные особенности

  • Траектория движения — парабола
  • В верхней точке траектории вертикальная составляющая скорости равна нулю
  • Модуль конечной скорости равен модулю начальной скорости
  • Угол падения равен углу броска

5. Практическое применение формул

  1. Определить начальные условия (v0, α)
  2. Выбрать момент времени для расчета параметров
  3. Подставить значения в соответствующие формулы
  4. Выполнить необходимые вычисления

6. Проверка результатов

  • Время подъема должно быть меньше времени падения
  • Максимальная высота достигается в середине времени полета
  • Дальность полета максимальна при угле броска 45°
  • Конечная скорость равна начальной по модулю

Дополнительные проверки

Проверка времени полета:

tпол = 2tпод

Проверка максимальной высоты:

Hmax = v0² sin² α / 2g

Проверка дальности полета:

L = v0² sin 2α / g

Примеры расчетов для проверки

При начальной скорости v0 = 30 м/с и угле броска α = 45°:

  • Время полета: около 4.3 секунды
  • Максимальная высота: около 22.9 метров
  • Дальность полета: около 91.7 метров

Типичные ошибки при расчетах

  • Неправильный перевод угла из градусов в радианы
  • Ошибки в знаках при работе с проекциями
  • Неучтенное начальное положение тела
  • Ошибки в вычислениях квадратного корня

реализация в scilab


Пояснения к коду:
Инициализация параметров:
  • Задаются начальные условия движения
  • Угол переводится из градусов в радианы
  • Устанавливается шаг интегрирования
Расчет времени полета:
  • Используется формула t = 2v₀sin(α)/g
Создание массивов:
  • Формируется массив времени
  • Рассчитываются координаты x и y для каждого момента времени
Расчет дополнительных параметров:
  • Определяется максимальная высота
  • Вычисляется дальность полета
  • Находится время до максимальной высоты
Визуализация:
  • Строится траектория полета (y от x)
  • Отображается график высоты от времени
  • Добавляются сетки и подписи
Вывод результатов:
  • Отображаются основные расчетные параметры
  • Предоставляется информация о движении тела
html Функция mprintf в Scilab

Функция mprintf в Scilab

mprintf — это функция форматированного вывода в Scilab, аналогичная функции printf в языке C. Она позволяет форматировать и выводить данные в командное окно.

Базовый синтаксис

mprintf(формат, переменные);

Форматы вывода

Основные спецификаторы формата:

  • %d — целое число
  • %f — число с плавающей точкой
  • %e — экспоненциальный формат
  • %g — автоматический выбор формата
  • %s — строка
  • \n — переход на новую строку
  • \t — табуляция

Примеры использования

Простой вывод чисел

a = 10;
b = 3.14159;
mprintf("Целое число: %d\n", a);
mprintf("Вещественное число: %f\n", b);

Форматирование вещественных чисел

pi = 3.14159265359;
// Вывод с 2 знаками после запятой
mprintf("Число пи (2 знака): %.2f\n", pi);
// Вывод с 5 знаками после запятой
mprintf("Число пи (5 знаков): %.5f\n", pi);

Вывод нескольких значений

x = 5;
y = 10.5;
z = "результат";
mprintf("X = %d, Y = %f, Текст: %s\n", x, y, z);

Форматирование в научной нотации

num = 123456789;
mprintf("Обычный формат: %f\n", num);
mprintf("Экспоненциальный формат: %e\n", num);

Комбинированный вывод

v0 = 25;
angle = 45;
distance = 63.4;
mprintf("Параметры движения:\n");
mprintf("Начальная скорость: %d м/с\n", v0);
mprintf("Угол броска: %d градусов\n", angle);
mprintf("Пройденное расстояние: %.2f метров\n", distance);

Практический пример из механики

// Исходные данные
v0 = 30;
alpha_deg = 45;
g = 9.81;
// Расчеты
t_flight = 2 * v0 * sin(alpha_deg * %pi/180) / g;
range = v0^2 * sin(2 * alpha_deg * %pi/180) / g;
max_height = v0^2 * sin(alpha_deg * %pi/180)^2 / (2 * g);
// Форматированный вывод результатов
mprintf("\nРезультаты расчета:\n");
mprintf("Начальная скорость: %.1f м/с\n", v0);
mprintf("Угол броска: %.1f градусов\n", alpha_deg);
mprintf("Максимальная высота: %.2f м\n", max_height);
mprintf("Дальность полета: %.2f м\n", range);
mprintf("Время полета: %.2f с\n", t_flight);

Особенности использования

  • Каждый формат должен соответствовать типу переменной
  • Количество спецификаторов должно совпадать с количеством переменных
  • Можно использовать различные модификаторы формата (точность, ширина поля)
  • Для перехода на новую строку используется \n

Дополнительные возможности форматирования

  • Ширина поля: %10f (минимум 10 символов)
  • Выравнивание: %-10f (выравнивание по левому краю)
  • Точность: %.4f (4 знака после запятой)
  • Комбинированное: %10.4f (ширина 10 символов, 4 знака после запятой)

Примеры расширенного форматирования

Использование ширины поля

value = 123.456;
mprintf("Без форматирования: %f\n", value);
mprintf("С шириной поля: %10f\n", value);
mprintf("С выравниванием: %-10f\n", value);

Комбинированное форматирование

number = 78.123456;
mprintf("Формат 1: %10.2f\n", number);
mprintf("Формат 2: %-10.4f\n", number);
mprintf("Формат 3: %010.2f\n", number);

Особые случаи использования

Форматирование нескольких значений

a = 1;
b = 2.5;
c = "текст";
mprintf("Числа и текст: %d, %f, %s\n", a, b, c);

Важные замечания

  • При несоответствии формата и типа данных может возникнуть ошибка
  • Количество спецификаторов должно совпадать с количеством переменных
  • Можно использовать несколько форматов в одном вызове mprintf
Варианты заданий
Начальная скорость (v0, м/с) Угол броска (α, °) Начальная высота (h0, м) Шаг интегрирования (dt, с)
1 10 30 0 0.01
2 15 45 0 0.02
3 20 60 0 0.01
4 25 15 0 0.015
5 30 45 10 0.01
6 35 35 20 0.02
7 40 55 30 0.01
8 45 25 0 0.015
9 50 40 15 0.01
10 55 50 25 0.02
11 60 37 0 0.01
12 65 42 35 0.015
13 70 20 0 0.01
14 75 65 40 0.02
15 80 33 0 0.015
16 85 47 50 0.01
17 90 18 0 0.02
18 95 52 60 0.015
19 100 45 0 0.01
20 105 58 70 0.02

разбор 21.10

сдача 28.10



Критерии оценки кода (шкала 2–5 баллов)

1. Корректность решения (максимум 5 баллов)
  • 5 баллов: Код полностью решает поставленную задачу, все расчёты верны
  • 4 балла: Есть небольшие неточности в вычислениях или логике
  • 3 балла: Код работает, но содержит существенные ошибки в расчётах
  • 2 балла: Код не решает задачу или содержит критичные ошибки
2. Структура и организация кода (максимум 5 баллов)
  • 5 баллов: Чёткая структура, логичное разделение на блоки, понятная организация
  • 4 балла: В целом хорошая структура, но есть небольшие недочёты
  • 3 балла: Структура кода запутанная, но работоспособная
  • 2 балла: Отсутствует структурированность, код трудно читать
3. Комментарии и документация (максимум 5 баллов)
  • 5 баллов: Полные и понятные комментарии к каждому блоку кода
  • 4 балла: Достаточное количество комментариев, но не везде подробные
  • 3 балла: Минимальные комментарии, недостаточно информативные
  • 2 балла: Отсутствуют комментарии или они не несут смысла

оценка балл за пункты 1-3/3

Made on
Tilda