Сравнение ряда Тейлора с численным решением нелинейного дифференциального уравнения в Maple

Я хочу построить два графика: численное решение DE и аппроксимацию ряда Тейлора для заданного DE. у меня есть

de := diff(y(x), x$2) = x+y(x)-y(x)^2;
cond := y(0) = -1, (D(y))(0) = 1;
stp := 0.1e-1;
a, b := -5, 30;
numpts := floor((b-a)/stp+1);
p := dsolve({cond, de}, y(x), numeric, stepsize = stp, output = listprocedure); 

График eval дает странную вертикальную линию, в то время как я ожидаю получить график, который, кажется, колеблется как x -> ∞. Для серии Тейлора я пробовал f:=[seq(taylor(y(x),x=i,n),i=-5..30 by stp)];, но похоже, что таким образом это не сработает. Что я могу с этим сделать? Почему мой сюжет отличается от ожидаемого?


person Kelly Shepphard    schedule 30.12.2018    source источник
comment
В последнее время еще один ваш вопрос, кажется, исчез. Это правильно? Это было удалено?   -  person acer    schedule 31.12.2018
comment
Большое спасибо за этот ответ, сюжет выглядит правильно. Мой последний вопрос был бесполезен, потому что он возник из-за моих неправильных представлений о результате. На самом деле Maple автоматически делает то, что нужно, если это можно сделать таким образом, так что вопрос был излишним. Простая проверка (с использованием другого похожего DE) показала мне, что моя проблема связана с моими математическими навыками, а не с моими навыками Maple :)   -  person Kelly Shepphard    schedule 31.12.2018


Ответы (1)


restart;
kernelopts(version);

    Maple 2018.0, X86 64 LINUX, Mar 9 2018, Build ID 1298750

de := diff(y(x), x$2) = x+y(x)-y(x)^2:
cond := y(0) = -1, (D(y))(0) = 1:
stp := 0.1e-1:
a, b := -5, 30:
numpts := floor((b-a)/stp+1):

p := dsolve({cond, de}, y(x), numeric, stepsize = stp,
            output = listprocedure):

Y:=eval(y(x),p);

                Y := proc(x)  ...  end;

plot(Y, 0..20);

введите здесь описание изображения

Order:=10:
S := convert(rhs(dsolve({cond, de}, {y(x)}, series)),polynom);

plot([S, Y(x)], x=0..1.5);

введите здесь описание изображения

Order:=40:
S := convert(rhs(dsolve({cond, de}, {y(x)}, series)),polynom):

plot([S, Y(x)], x=0..2.0);

введите здесь описание изображения

person acer    schedule 31.12.2018