Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

МП-12_Николаев_Олег_Практ_5_2

.docx
Скачиваний:
18
Добавлен:
05.06.2015
Размер:
88.36 Кб
Скачать

Отчет к упражнению 1

Найти приближенное решение уравнения , удовлетворяющего начальному условию , на отрезке () методом ломаных Эйлера с заданной точностью .

Порядок выполнения упражнения:

1. Для отыскания приближенного решения создайте М-функцию.

function [x2,y2,n]=euler(f,x,y,x0,y0,a,b,n0,eps)

n=n0;r=eps+1;

dx1=(b-a)/n;dx2=(b-a)/(2*n);

x2(1)=x0;

y2(1)=y0;

for i=2:1:n+1

x2(i)=x2(i-1)+dx1;

y2(i)=y2(i-1)+subs(f,{x,y},{x2(i-1),y2(i-1)})*dx1;

end

while(r>=eps)

dx1=(b-a)/n;dx2=(b-a)/(2*n);

x1=x2;y1=y2;

x2(1)=x0;

y2(1)=y0;

for i=2:1:2*n+1

x2(i)=x2(i-1)+dx2;

y2(i)=y2(i-1)+subs(f,{x,y},{x2(i-1),y2(i-1)})*dx2;

end

if(n==n0)

plot(x1,y1,'k',x2,y2,'g');

end

i=1:1:n+1;

r=max(abs(y2(2*i-1)-y1(i)));

n=2*n;

end

plot(x2,y2,'r');

end

2. Для тестирования М-функции из п.1 используйте решение уравнения с начальным условием на отрезке с точностью . Вначале найдите «вручную» точное решение. Тестирование оформите в виде scriptа.

syms x y;

figure(1);

axis equal;hold on;grid on;

[x2,y2,n]=euler('x*y',x,y,0,1,0,1,2,0.001);

n =

2048

f='exp(x^2)^0.5';

yp=subs(f,x2);

r=max(abs(yp-y2))

r =

5.3647e-004

figure(2);

axis equal;hold on;grid on;

plot(x2,y2,'*r',x2,yp,'b','LineWidth',2);

Отчет к упражнению 2

Найти приближенное решение уравнения , удовлетворяющего начальному условию , методом последовательных приближений Пикара.

Порядок выполнения упражнения:

1. Для отыскания приближенного решения создайте М-функцию.

function p=pikar(f,x,y,x0,y0,n0)

syms t;

p(1)=y0+0*t;

for i=2:1:n0+1

p(i)=y0+int(subs(f,{x,y},{t,subs(p(i-1),x,t)}),t,x0,x);

set(ezplot(p(i),[0 1]),'Color','r')

end

end

2. Для тестирования М-функции из п.1 используйте решение уравнения с начальным условием на отрезке . Вначале найдите «вручную» точное решение. Тестирование оформите в виде scriptа.

syms x y;

figure(1);

axis equal;hold on;grid on;

n0=4;

p=pikar('x*y',x,y,0,1,n0);

p(n0+1)

ans =

1+1/384*x^8+1/48*x^6+1/8*x^4+1/2*x^2

f='exp(x^2)^0.5';

x=0:0.01:1;

yn=subs(p(n0+1),x);

yp=subs(f,x);

r=max(abs(yp-yn))

r =

2.8377e-004

figure(2);

axis equal;hold on;grid on;

plot(x,yn,'*r',x,yp,'b','LineWidth',2);