Архив разработки (5 Кб, Maple 8)
задача 1 ~ задача 2 ~ задача 3 ~ задача 4
ЗАДАЧА 1.
Пользуясь известными формулами разложения в степенной ряд функций , разложить данную функцию в ряд по степеням и определить интервал сходимости полученного ряда.
Заданная функция
> f(x):=x^2*exp(-x);
Известное разложение
> exp(x)=Sum((x)^(n)/(n)!,n=0..infinity);
Значит, исходную функцию можно представить в виде:
> f(x)=Sum((-x)^(n+2)/(n)!,n=0..infinity);a:=%:
Введём новую переменную m
> n:=m-2;
Тогда разложение исходной функции перепишется в виде:
> a;
Коэффициент степенного ряда:
> 'a[m]'=(-1)^m/(m-2)!,'b[m]'=(1/(m-2)!)^(1/m);
Найдём предел коэффициента (по Т. Коши-Адамара)
> Limit((1/(m-2)!)^(1/m),m=infinity)=
limit((1/(m-2)!)^(1/m),m=infinity);;
Значит, радиус сходимости -
ЗАДАЧА 2.
Найти первые 4-5 членов разложения в ряд Тэйлора частного решения данного диффиренциального уравнения при указанных начальных условиях. н.у.: .
> with(DEtools):
> infolevel[all]:=0:
Решение дифференциального равнения стандартными методами результатов не даёт
> dsolve({diff(y(x),x)=x-y(x)+cos(2*y(x)),y(-4)=0},{y(x)});
> infolevel[all]:=3:#вывод программного решения дифура
Пытаемся решить, разлагая частное решение в ряд
> dsolve({diff(y(x),x)=x-y(x)+cos(2*y(x)),y(-4)=0},{y(x)},type=series);
DEtools/convertsys: converted to first-order system Y'(x) = f(x,Y(x)) namely (with Y' represented by YP)
DEtools/convertsys: correspondence between Y[i] names and original functions:
dsolve/series/ordinary: converted to first-order system Y'(x) = f(x,Y(x)) namely (with Y' represented by YP)
dsolve/series/ordinary: correspondence between Y[i] names and original functions:
dsolve/series/ordinary: vector Y of initial conditions at x0 = 0 [0]
dsolve/series/ordinary: trying Newton iteration
dsolve/series/sysol: latest approx is table([(1)=-3*x])
dsolve/series/sysol: latest approx is table([(1)=-3*x+2*x^2-20/3*x^3])
dsolve/series/sysol: latest approx is table([(1)=-3*x+2*x^2-20/3*x^3+23/3*x^4-25/3*x^5+29/18*x^6])
На основе полученного ряда создаём функцию Y(x)
> Y(x):=convert(op(2,%),polynom):
Проверяем частное решение
> eval(Y(x),x=-4);
> infolevel[all]:=0:
Построим методом изоклин наш дифур
> p:=phaseportrait(D(y)(x)=x-y(x)+cos(2*y(x)),y(x),x=-5..5,[[y(-4)=0]],
linecolor=[BLACK],arrows=medium,color=x-y(x)+cos(2*y(x))):
Построим функцию Y(x)
> Q:=plot(Y(x),x=-4..4,color=BLUE,thickness=3):Q;
Совместим 2 предыдущих графика
> plots[display]({Q,p});
ЗАДАЧА 3.
Функцию , заданную в интервале (0, l), разложить в ряд Фурье указанного вида. Построить график данной функции и график суммы полученного ряда.
> f(x):=piecewise(x>-Pi and x<-Pi/2,0,x<Pi and x>-Pi/2,-x);
> points:=plot({[[-Pi,0],[-Pi/2,0]],[[-Pi/2,Pi/2],[Pi,-Pi]]},style=point,axes=none,symbolsize=15,color=black,symbol=circle):
> p1:=plot({[[-Pi,0],[-Pi/2,0]],[[-Pi/2,Pi/2],[Pi,-Pi]]},axes=frame,color=red,title="Исходная функция"):
> plots[display]([p1,points]);
> l:=Pi;
> a[0]=1/l*Int(op(4,f(x)),x=-Pi/2..Pi);
a[0]:=value(op(2,%));
> 'a[n]'=1/l*Int(op(4,f(x))*cos(Pi*n*x/l),x=-Pi/2..Pi);
a[n]:=value(op(2,%));
> 'b[n]'=1/l*Int(op(4,f(x))*sin(Pi*n*x/l),x=-Pi/2..Pi);
b[n]:=combine(value(op(2,%)));
> F:=x->a[0]/2+Sum(a[n]*cos(Pi*n*x/l)+b[n]*sin(Pi*n*x/l),n=1..1000);
> p2:=plot(F(x),x=-4*Pi..4*Pi,axes=frame,discont=true):
> plots[display]([p2],title="Сумма ряда Фурье");
Увеличивая количество членов в сумме на единицу, покажем изменения графика суммы s(x)
> for k from 1 to 25 do
a[k]:=plot(a[0]/2+Sum(a[n]*cos(Pi*n*x/l)+b[n]*sin(Pi*n*x/l),n=1..k),x=-Pi..Pi,
numpoints=200,title=sprintf("Сумма до %d-го члена.",k),titlefont=[TIMES,ROMAN,8],tickmarks=[0,0],axes=normal):od:
> F:=display([a[j]$j=1..25],insequence=true):
> display([F],labels=[``,``]);
ЗАДАЧА 4.
Функцию , заданную в интервале (0, l), разложить в ряд Фурье указанного вида. Построить график данной функции и график суммы полученного ряда.
> f(x):=piecewise(x>0 and x<1,3*x-3,x>1 and x<3,0);
> points:=plot({[[0,-3]],[[1,0]],[[3,0]]},style=point,axes=none,symbolsize=15,color=black,symbol=circle):
> p1:=plot(f(x),x=-0..3,style=[line,point],axes=frame,discont=true,title="Исходная функция"):
> plots[display]([p1,points]);
> l:=3;
> a[0]=2/l*Int(op(2,f(x)),x=0..1);
a[0]:=value(op(2,%));
> a[n]=2/l*Int(op(2,f(x))*cos(Pi*n*x/l),x=0..1);
a[n]:=value(op(2,%));
> F:=x->a[0]/2+sum(a[n]*cos(Pi*n*x/l),n=1..100);
> plot(evalf(value(F(x))),x=-12..12,axes=frame,title="Сумма полученного ряда");
Аналогично предыдущему примеру, покажем изменения графика суммы s(x)
> with(plots):
Warning, the name changecoords has been redefined
> for k from 1 to 6 do
a[k]:=plot(a[0]/2+sum(a[n]*cos(Pi*n*x/l),n=1..k),x=0..6,
numpoints=200,title=sprintf("Сумма до %d-го члена.",k),titlefont=[TIMES,ROMAN,8],tickmarks=[0,0],axes=none):od:
> F:=display([a[j]$j=1..6],insequence=true):
> display([F],labels=[``,``]);
|