zad 2.docx

(44 KB) Pobierz

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Kod programu

>> x=[1 2 3];

y=1./(x+1);

S3N=nsfit(x,y);

dx0=-1/4; dxn=-1/8;

S3=csfit(x,y,dx0,dxn);

x1=x(1):.01:x(2); y1=polyval(S3N(1,:),x1-x(1));

x2=x(2):.01:x(3); y2=polyval(S3N(2,:),x2-x(2));

fx1=1./(x1+1);

fx2=1./(x2+1);

ys1=polyval(S3(1,:),x1-x(1));

ys2=polyval(S3(2,:),x2-x(2));

E11N=abs(fx1-y1);

E12N=abs(fx2-y2);

E11=abs(fx1-ys1);

E12=abs(fx2-ys2);

subplot(3,1,1)

hh1=plot(x,y,'o',fx1,x1,fx2,x2,'k-',x1,y1,x2,y2,'r-',x1,ys1,x2,ys2,'g-');

>>

>> S3

 

S3 =

 

   -0.0104    0.0937   -0.2500    0.5000

   -0.0521    0.0625   -0.0938    0.3333

 

>> S3N

 

S3N =

 

    0.0208         0   -0.1875    0.5000

   -0.0208    0.0625   -0.1250    0.3333

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Wykres

Wnioski

Jak widać błąd przy naturalnej funkcji sklejanej jest mniejszy niż ten przy zwykłej funkcji sklejanej. Obie funkcje dają bardzo duże przybliżenie dla rzeczywistej funkcji. Z obliczeń ręcznych i tych w programie wynika, że parametry dla funkcji sklejanych są takie same wystarczy tylko wygenerować odpowiednie równania przy obliczaniu ręcznym.

 

Treść zadania

7) „Funkcje sklejane” – Dla funkcji f(x)=1/(x+1) w punktach {1 2 3} wyprowadź ręcznie postać naturalnej funkcji sklejanej S3N(x). Następnie porównaj wynik z obliczeniami numerycznymi używając skryptów Matlaba. Następnie wyznacz (znów używając skryptów) postać funkcji sklejanej S3(x) stosując warunki S3’(1) = -1/4, S3’(3)=-1/8. Wykreśl za pomocą komendy plot błędy lokalne  E1(x)=abs(f(x)-S3N(x)) oraz E2(x)=abs(f(x)-S3(x)) i skomentuj rezultat. Wykreśl podane punkty, przebieg wyznaczonych funkcji sklejanych i funkcji f(x) używając komendy plot. Wydruk wykresu (wraz z kodem) dołącz do sprawozdania.

Zgłoś jeśli naruszono regulamin