Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Помощ за задача на Коши на MatLab

Помощ за задача на Коши на MatLab

Мнениеот sbozhinov » 31 Май 2015, 18:02

Здравейте,

Изчетох целия форум, както и всички материали от упражненията но не намирам пълно решение на една задача, която ми трябва за проект по Диференциални уравнения, а наистина ми е крайно важно. Та ето я и нея :

Дадена е задачата на Коши :

y'= 2y - 3cosx
y(-п/2) = -1

1. Напишете интегрално уравнение еквивалентно на дадената задача и по метода на Пикар дефинирайте последователни приближения на решението на това уравнение.
2. С оператора dsolve решете символно в MATLAB дадената задача и начертайте с червен цвят графика на полученото решение в интервала [-2;1]. Начертайте с различни цветове графиките на първото, третото и четвъртото приближение в същия интервал.

Всякакъв вид помощ ще ми е от полза.

Искрено благодаря предварително,

Поздрави
sbozhinov
Нов
 
Мнения: 4
Регистриран на: 31 Май 2015, 17:45
Рейтинг: 0

Re: Помощ за задача на Коши на MatLab

Мнениеот Anubis » 02 Юни 2015, 08:13

Това са файл-функцията и съответният скрипт. Надявам се, знаеш как да си ги стартираш, за да получиш като резултат прикрепения чертеж.

Файл-функция: func.m
Код: Избери целия код
function res = func(x,y)
res = 2 .* y - 3 .* cos(x);
end


Скрипт: odeSol.m
Код: Избери целия код
clear all
%===================================
% ТОЧНО РЕШЕНИЕ С ВГРАДЕНАТА ФУНКЦИЯ
%===================================
y = dsolve('Dy = 2*y - 3*cos(x), y(-pi/2)=-1','x');
xx = -pi/2 : 0.01 : pi/2;
yy = subs(y, 'x', xx);
%===================================
% ПРИБЛИЖЕНО РЕШЕНИЕ С МЕТОД НА РУНГЕ-КУТА
%===================================
[xp,yp] = ode45('func', [-pi/2 : 0.01 : pi/2], -1);
%===================================
% ИЗОБРАЗЯВАНЕ НА РЕШЕНИЯТА
%===================================
subplot(1,2,1)
plot(xp, yp, 'b', 'LineWidth', 3)
hold on
grid on
plot(xx, yy, 'r--', 'LineWidth', 3)
set(gca,'FontName', 'Times', 'FontSize', 11)
xlabel('$$ Ox, \, -\frac{\pi}{2} \le x \le \frac{\pi}{2} $$', ...
    'interpreter', 'latex')
ylabel('$$ Oy $$', 'interpreter', 'latex')
legend('Приближено решение с Рунге-Кута', ...
    'Точно решение')
hold off
%===================================
% ИЗОБРАЗЯВАНЕ НА РЕШЕНИЕТО В ИСКАНИЯ
% ИНТЕРВАЛ [-2; 1]
%===================================
subplot(1,2,2)
x1 = -2 : 0.01 : 1;
y1 = subs(y, 'x', x1);
plot(x1, y1, 'r', 'LineWidth', 3)
grid on
set(gca, 'FontName', 'Times', 'FontSize', 11)
xlabel('\it{Ox}')
ylabel('\it{Oy}')
legend('Точно решение в интервала [-2;1]')
Прикачени файлове
fig1.png
fig1.png (15.05 KiB) Прегледано 1523 пъти
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166

Re: Помощ за задача на Коши на MatLab

Мнениеот sbozhinov » 02 Юни 2015, 09:25

Здравейте,

Много благодаря за помощта ! Но по условие е нужно да се начертае с различни цветове графиката на първото, третото и четвъртото приближение в интервала [-2;1], а тук сте начертали решение на едно приближение по метода на Рунге-Кута.

Надявам се, ако имате идея как става това да го вмъкнете в решението.

Благодаря отново
sbozhinov
Нов
 
Мнения: 4
Регистриран на: 31 Май 2015, 17:45
Рейтинг: 0

Re: Помощ за задача на Коши на MatLab

Мнениеот Anubis » 03 Юни 2015, 18:57

Последователните приближения се намират чрез формулата

[tex]y_{k+1} = y_{0} + \int_{-\frac{\pi}{2}}^{x} f(t; \, y_{k}(t)) \operatorname{d}t[/tex],

където [tex]y_{0} = y(x_{0})[/tex], а [tex]f(t)[/tex] е дясната страна на диференциалното уравнение (в някакъв друг параметър).

Последователно пресмятаме, че

[tex]y_{1} = -1,[/tex]
[tex]y_{2} = -2 x -3 \sin x - \pi -4,[/tex]
[tex]y_{3} = -(2 x + \pi + 1) (2 x + 3 \sin x + \pi + 3) - 1,[/tex]
[tex]y_{4} = -(4 x^2 + 4 \pi x + 2 x + \pi^2 + \pi + 1) (2 x + 3 \sin x + \pi + 3) - 1.[/tex]

Picard.m
Код: Избери целия код
clear all
y0 = -1;
y1 = y0;
y2 = inline('-2.*x-3.*sin(x)-pi-4');
y3 = inline('-(2.*x+pi+1).*(2.*x+3.*sin(x)+pi+3)-1');
y4 = inline('-(4.*x.^2+4.*pi.*x+2.*x+pi^2+pi+1).*(2.*x+3.*sin(x)+pi+3)-1');
x = -2 : 0.01 : 1;
plot(x, y2(x), 'g', 'LineWidth', 3)
hold on
plot(x, y3(x), 'r', 'LineWidth', 3)
plot(x, y4(x), 'm', 'LineWidth', 3)   
set(gca, 'FontName', 'Times', 'FontSize', 11)
xlabel('\it{Ox}')
ylabel('\it{Oy}')
legend('Първо приближение', ...
    'Второ приближение', ...
        'Трето приближение')
title('Метод на Пикард за последователните приближения')
Прикачени файлове
fig2.png
fig2.png (12.34 KiB) Прегледано 1507 пъти
Аватар
Anubis
Напреднал
 
Мнения: 286
Регистриран на: 05 Авг 2010, 17:45
Рейтинг: 166

Re: Помощ за задача на Коши на MatLab

Мнениеот sbozhinov » 11 Юни 2015, 15:51

Благодаря отново, много за решението, но начертаната графика със зелено не е ли второто приближение ? По условие е нужно първото
sbozhinov
Нов
 
Мнения: 4
Регистриран на: 31 Май 2015, 17:45
Рейтинг: 0

Re: Помощ за задача на Коши на MatLab

Мнениеот Гост » 03 Юли 2017, 08:36

Здравейте,
а може ли помощ по подобна задача и по-точно за първата част :
какво е интегралното уравнение еквивалентно на задачата :
y'=2y*cos2x + sin4x, y(1) = -1
и да се дефинират 6 последователни решения.

Благодаря


Последно избутване Anonymous от 03 Юли 2017, 08:36
Гост
 


Назад към Диференциални уравнения



Кой е на линия

Регистрирани потребители: 0 регистрирани

Форум за математика(архив)