Создан заказ №2296608
2 октября 2017
Коши (для уравнения первого порядка) у′ = f(x y) (1) найти решение y = y(x)
Как заказчик описал требования к работе:
Нужно сделать программу и блок схему онлайн , сегодня контрольная в 8.00 в течении 20-30 минут ; 1 задание, программирование в Паскаль , одномерные массивы , подпрограммы
Фрагмент выполненной работы:
Коши (для уравнения первого порядка):
у′ = f(x, y) (1)
найти решение y = y(x), удовлетворяющее начальному условию: у(х0)=у0. (1*).
Т.е. найти интегральную кривую, проходящую через точку М(х0, у0).
Если f(x,y) непрерывна в области R: |x-x0| < a, |y-y0| < b, то существует по меньшей мере одно решение у = у(х), определённое в некоторой окрестности: |х-х0| < h, где h – положительное число. (работа была выполнена специалистами Автор 24) Это решение единственно, если в R выполнено условие Липшица:
(2)
где N – постоянная (константа Липшица), зависящая в общем случае от a и b. Если f(x,y) имеет ограниченную производную в R, то можно положить:
Для дифференциального уравнения n-го порядка: у(n)=f(x,y,y′,…,y(n-1)) задача Коши состоит в нахождении решения у = у(х), удовлетворяющего начальным условиям:
у(х0) = у0, у′(х0) = у′0, …, у(n-1)(x0) = y(n-1)0 – заданные числа.
Функция у = f(x, C1, C2,…, Cn), где С1,…, Сn– произвольные постоянные, называется общим решением ОДУ или общим интегралом.
Эти постоянные можно определить с помощью начальных условий. Решение ДУ при заданных начальных условиях называется его частным решением.
Определение: задача называется краевой, если указывается интервал интегрирования [a,b] и ставятся дополнительные условия для значений функции у и её производных на концах этого интервала.
Определение: Дифференциальным уравнением с частными производными называется уравнение, связывающее независимую переменные х1, х2, …, хn, t, искомую функцию
u = f (х1, х2, …, хn, t) и её частные производные:
.
Постановка задачи.
Дано дифференциальное уравнение первого порядка: у′ = f(x,y) (1).
Требуется найти решение этого уравнения на отрезке [x0, xmax], удовлетворяющее начальным условиям: у(х0) = у0 (2).
В вычислительной практике более предпочтительным являются численные методы нахождения приближённого решения в фиксированных точках: х0<x1<…<xn=xmax.
Большинство численных методов решения задачи (1) с начальными условиями (2) можно привести к виду:
– при r = 1, а1 = 1, b0 = 0 методы называются одношаговыми (чтобы найти yi+1 требуется информация только о предыдущей точке (xi, yi)).
– при r > 1 и b0 = 0 – явными многошаговыми.
– при r > 1 и b0 ≠ 0 – неявными многошаговыми.
а) Метод Эйлера.
Для решение Д.У.(1) с Н.У. (2) на отрезке [x0, xmax] по методу Эйлера, таблица приближённых значений у(х) для равноотстоящих узлов:
х
x0 x1 … хn
y y0 y1 … yn
строится по формулам: yk+1 = yk + h∙f(xk,yk)
xk+1 = xk + h, k = 0,…,n-1, h=(xn-x0)/n
Абсолютная погрешность формулы (4) на каждом шаге имеет порядок h2
Формула (4) означает, что на отрезке [xk, xk+1] интегральная кривая y = y(x) приближённо заменяется прямолинейным отрезком, выходящим из точки М(хk;уk) с угловым коэффициентом f(хk;уk). В качестве приближения искомой интегральной кривой получаем ломаную линию с вершинами в точках М0(х0;у0), М1(х1;у1),…, Мn(хn;уn). Первое звено касается истинной интегральной кривой в точке М0(х0;у0).
Метод Эйлера обладает двумя существенными недостатками:
1) малой точностью (метод первого порядка точности);
2) систематическое накопление ошибок.
б) 2oй усовершенствованный метод Эйлера.
Сначала определяют «грубые приближения»:
И приближённо полагают:
Локальная погрешность на i-ом шаге: .
Оценка погрешности в точке хn может быть получена с помощью двойного просчёта (с шагом h и h/2):
Расчеты
Вначале «врукопашную» найдем точное решения заданного дифференциального уравнения аналитическим способом:
Для нахождения произвольной постоянной С используем заданные начальные условия у(0) = 1:
Таким образом, получаем
Решение:
– найденной функции и функции и у2 – функции, полученной с помощью блока Given – Odesolve:
Вывод: сравнивая графики, видим, что решения совпадают.
Теперь найдем численное решения заданного дифференциального уравнения вторым усовершенствованным методом Эйлера с помощью программного модуля в Mathcad:
Вывод: графики и решения совпадает.
«Ручной» расчет:
Находим: x1=x0=0 y1=y(x0)=1
Делаем два шага вручную.
По формуле fxk,yk=yk∙sinxk+sin2xkcosxk при k = 1, находим:
fx1,y1=y1∙sinx1+sin3x1cosx1=1∙sin0+sin2∙0cos0=01=0
Далее используем формулу:
yk+1=yk+h2∙[fxk,yk+fxk+1,yk+h∙fxk,yk]
Для этого находим:
x2=x1+h=0+0,1=0,1
fx2,y1=y1∙sinx2+sin2x2cosx2=1∙sin0,1+sin2∙0,1cos0,1=0,0998+0,19870,9950=0,29850,9950=0,3
Тогда:
y2=y1+h2∙[fx1,y1+fx2,y1+h∙fx1,y1]
или
y2=1+0,12∙0+0,3+0,1∙0=1+0,032=1+0,015=1,015
Повторяем вычисления:
fx2,y2=y2∙sinx2+sin2x2cosx2=1,015∙sin0,1+sin2∙0,1cos0,1=0,1013+0,19870,9950=0,30000,9950=0,301
x3=x2+h=0,1+0,1=0,2
fx3,y2=y2∙sinx3+sin2x3cosx3=1,015∙sin0,2+sin2∙0,2cos0,2=0,2016+0,38940,9800=0,59000,9800=0,602
Тогда:
y3=y2+h2∙[fx2,y2+fx3,y2+h∙fx2,y2]
или
y3=1,015+0,12∙0,301+0,602+0,1∙0,301=1,015+0,0932=1,061
Выведем найденные в Mathcad значения аргумента и функции для шага 0.1:
Вывод: полученные значения совпадают с «ручным» счетом на первых двух шагах.
Рассчитаем эти же данные в Excel (файл прилагается):
Делаем повторный расчёт, принимая h = h/2.
Вывод: полученные значения аргумента и функции для шага 0.1 и 0.05 в программе Excel совпадают с ранее найденными в Mathcad:
Находим в Excel для каждого шага:
εk=|yk(h)-yk(h/2)|
Данные из Excel
На основании полученных расчётов делаем графики в Excel
Текст программы на языке Pascal
Program Eyler_2; {название программы}
uses crt; {открытие библиотеки процедур}
Const n_max=100;
type
mas=array[0..n_max] of real; {объявление типа массива}
Var i, n, k:integer; {объявление переменных}
xn, h, y0:real;
x, y, e:mas;
function wwod:real;
var
w:real; {промежуточная переменная}
kod:integer; {код перевода строки в число}
s:string;{строка вводимых символов}
begin{начало функции}
Repeat{цикл ввода чисел}
readln(s); {ввод строки}
val(s,w,kod); {перевод строки s в число w с получением кода ошибки}
if kod<>0 then writeln('Повторите ввод!'); {ошибка ввода}
until kod=0; {конец цикла}
wwod:=w; {присвоение функции введенного числа}
end; {конец функции}
function F(x, y:real):real;
begin{начало функции}
F:=(y*sin(x)+sin(2*x))/cos(x); {вычисление функции}
end; {конец функции}
Begin {начало программы}
clrscr; {очистка экрана}
write('Введите начало интервала x[0]: '); x[0]:=wwod; {ввод x[0]}
write('Введите конец интервала x[n]: '); xn:=wwod; {ввод b}
write('Вве...Посмотреть предложения по расчету стоимости
Заказчик
заплатил
заплатил
200 ₽
Заказчик не использовал рассрочку
Гарантия сервиса
Автор24
Автор24
20 дней
Заказчик принял работу без использования гарантии
3 октября 2017
Заказ завершен, заказчик получил финальный файл с работой
5
Коши (для уравнения первого порядка)
у′ = f(x y) (1)
найти решение y = y(x).docx
2021-01-04 15:50
Последний отзыв студента о бирже Автор24
Общая оценка
4.1
Положительно
Быстро и оперативно решили задачи по базам данным. Очень помогли перед экзаменом