Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 8

Численное решение задачи о нелинейных колебаниях, методом Эйлера

25.10.2016, 19:14. Показов 1969. Ответов 9

Студворк — интернет-сервис помощи студентам
Здравствуйте, я - новичок в усвоении Мадлаба. Насколько? Только не давно узнал о нем и только сегодня скачал. А вот знания его уже требуют, совершенно не думая о том, что некоторые его в глаза не знают. Сначала, я думал, что будет не тяжело и попробовал программу. После того, как я несколько часов бился с возвращением истории и остальных окон и узнаванием команды для удаления прошлых сообщений, я наконец решил, что мне нужна помощь.
Сама задача: Решить задачу о нелийных колебаниях численно, методом Эйлера на отрезке [0:20] с шагом 0,04
Сама формула:
ddx + 3*sin(x) = 0
При
x(0) = pi/6
dx(0) = 0
Можете пожалуйста скинуть информационные книжки, статьи или же примеры решения, когда нету "y"(Уже посмотрел некоторые решения) и все равно 0? Буду очень признателен. Спасибо.
Вот к этому я уже пришел
Миниатюры
Численное решение задачи о нелинейных колебаниях, методом Эйлера  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.10.2016, 19:14
Ответы с готовыми решениями:

Численное решение ДУ методом Эйлера + правило рунге
попытался написать, но работает некорректно может кто подсказать в чем ошибка? program MethosEyl; //Метод Эйлера для ДУ uses ...

Численное решение дифференциального уравнения методом Эйлера
Нужно разработать алгоритм и составить программу для численного решения дифференциального уравнения методом Эйлера: ...

Численное решение дифференциальных уравнений методом Эйлера
Помогите найти ошибку в программе, по логике все верно, но почему то не работает. Задача относится к численным методам, а именно найти...

9
533 / 438 / 47
Регистрация: 17.07.2013
Сообщений: 2,236
25.10.2016, 20:17
Цитата Сообщение от Nekomaster Посмотреть сообщение
книжки, статьи
Они у Вас перед носом:
Много книг по матлабу в официальном ОТКРЫТОМ доступе
0
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 8
25.10.2016, 20:49  [ТС]
Смотрел и в основном там все на английском. А мне бы что-нить связанное непосредственно с самим заданием.
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
25.10.2016, 21:08
Nekomaster, поищите внизу страницы в похожих темах. Может, что-то вам подойдёт.
0
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 8
25.10.2016, 22:17  [ТС]
А вот этот, что я уже сделал, не подойдет для решения?
0
Модератор
 Аватар для Centurio
1765 / 1610 / 541
Регистрация: 13.09.2015
Сообщений: 5,629
26.10.2016, 07:12
Цитата Сообщение от Nekomaster Посмотреть сообщение
А вот этот, что я уже сделал, не подойдет для решения?
Вы сами можете что-нибудь рассмотреть, кроме графика, на той картинке, что привели?
0
Эксперт по математике/физике
 Аватар для Том Ардер
4218 / 3418 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
26.10.2016, 13:11
Nekomaster, Google "MATLAB Дьяконов"
Первая ссылка В.П. Дьяконов - MATLAB. Полный самоучитель (2012).pdf
и ещё очень много

Свои результаты показывать, набирая код в сообщении, а не картинкой. Они только для графиков, схем, диаграмм.
 Комментарий модератора 
Правила форума
4.7. Как можно более полно описывайте суть проблемы или вопроса, что было сделано для ее решения и какие результаты получены.

5.18. Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

Задания и решения набирать ручками. Один вопрос - одна тема. Для формул есть редактор.

Рекомендации по созданию темы

0
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 8
26.10.2016, 14:35  [ТС]
x(с двумя точками) + 3*sin(x) = 0
При
x(0) = pi/6
x(с одной точкой)(0) = 0
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>> h = 0.04;
>> a = 0;
>> b = 20;
>> dsys = @(x,dx,ddx) ddx +3*sin(x);
>> T = a:h:b;
>> X = zeros(size(T));
>> dX = zeros(size(T));
>> X (1) = pi/6;
>> dX (1) = 0;
>> for j = 1:length (T)-1dX(j+1) = dX(j) + h*dsys(T(j), X(j), dX(j));
X(j+1) = X(j) + h*dX(j);
end
>> plot(T,X, T,dX)
>> legend
Сам попробовал по тем, что уже сделаны, но немного смущает решение.
Да, спасибо. Правда Дьякова бесплатно еще не нашел.
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
26.10.2016, 15:52
Лучший ответ Сообщение было отмечено Nekomaster как решение

Решение

А почему Вы не пользуетесь функциями в m-файле. Или ответ в следю фразе
Цитата Сообщение от Nekomaster Посмотреть сообщение
я - новичок в усвоении Мадлаба
Прочитайте про m-файлы, судя по Вашим успехам управления из командной строки, Вам должно понравится.
Вот немного исправленный Ваш код, можно еще подоформить графики, ну Вы сами разберетесь с xlabel и ylabel.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
clc;
clear all;
close all;
 
h = 0.04;
a = 0;
b = 20;
dsys = @(x) -3*sin(x);
T = a:h:b;
X = zeros(size(T));
dX = zeros(size(T));
X (1) = pi/6;
dX (1) = 0;
for j = 1:length(T)-1
    dX(j+1) = dX(j) + h*dsys(T(j));
    X(j+1) = X(j) + h*dX(j);
end
plot(T,X, T,dX)
grid on
1
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 8
26.10.2016, 21:55  [ТС]
SSC, спасибо, но в описании я ошибся. В задании x был не в dx, а с точкой сверху.... Как можно это отобразить?

Добавлено через 10 минут
SSC, и если можно, можете меня направить ссылкой на m-файлы.

Добавлено через 4 минуты
SSC, А! Все, нашел. Сейчас почитаю

Добавлено через 4 часа 28 минут
"По крайней мере с порядком проблемы и ответ неправильный. Это колебания. " - Преподователь.

Решить задачу о нелинейных колебаниях численно, методом Эйлера на отрезке [0;20] с шагом h = 0,04
x**+3sin(x) = 0
x(0) = pi/6
x*(0) = 0
Где * - точка над x
Долго уже пытался решить и выставил вот так:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
clear all;
close all;
h = 0.04;
T = 0:h:20;
x (1) = pi/6;
dx (1) = 0;
for j = 1:length(T)-1
x(j+1) = x(j)+h*dx(j);
dx(j+1) = dx(j) + h*(-3)*sin(x(j));
end
plot(T,x, T,dx)
grid on
Но сказали, что тут не верно, ибо нужно найти колебания, которые должны угасать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.10.2016, 21:55
Помогаю со студенческими работами здесь

Найти численное решение дифференциального уравнения методом Эйлера
Помогите с задачей. Решал, как в примере, но не строится график. Может я неправильно преобразовал уравнение или не тем способом решал?...

Численное решение системы нелинейных уравнений методом Зейделя и Ньютона
Численное решение системы нелинейных уравнений методом а)Зейделя, б)Ньютона. MathCAD. 2x^3-y^3-1=0 xy^3-y-4=0

Численное решение нелинейных алгебраических уравнений методом половинного деления
Численное решение нелинейных алгебраических уравнений методом половинного деления уравнение вот такое x=exp(-x);

Найти численное решение задачи Коши для ДУ-1 (по методу Эйлера). Построить график интегральной кривой
Найти численное решение задачи Коши для ДУ-1 (по методу Эйлера) на отрезке с шагом h = 0,1. Построить ломаную Эйлера и интегральную кривую...

Решение задачи Коши методом Эйлера
Добрый вечер. Необходимо методом Эйлера получить решение задачи Коши на указанном отрезке. И оценить относительную погрешность решения. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru