Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //------------Vandermonde mátrix felépítése
- function V=vand(x)
- n=length(x);
- for i=1:n
- for j=1:n
- V(i,j)=x(i)^(j-1);
- end
- end
- if abs(det(V))<10^-10
- d=0
- else
- d=det(V)
- end
- if d==0
- disp('Rossz adatok')
- abort
- end
- endfunction
- //-----------------Interpoláció-------
- function interp(x,y)
- if length(x) ~= length(y)
- disp('Nem egyforma hosszúak!')
- abort
- end
- V=vand(x)
- //rgauss(V,y) // amennyiben van működőképes gauss elimináció
- disp(V^-1*y) //- beépített utasítással
- endfunction
- //--------------Lagrange interpoláció Newton féle alakja------------------
- function NewtIntp(x,y)
- if length(x)~=length(y)
- printf('Rossz vektorokat adott meg!')
- abort
- end
- n=length(x);
- for i = 1 : n
- a(i) = y(i)
- end
- for j=2:n
- for i=n:-1:j
- a(i)=(a(i)-a(i-1))/(x(i)-x(i-j+1));
- end
- end
- disp('A Newton-polinom együtthatói: ')
- disp(a)
- endfunction
- //xd=[0;2;4]
- //y=[1;5;17]
- //function y=fg(x)
- //y=1+2*x+x*(x-2)
- //endfunction
- //plot(xd,y)
- //plot(-1:0.01:5,fg)
- //------------------Hermite interpoláció
- function Hermite(x,y,yd)
- if length(x)~=length(y) & length(y)~=length(yd)
- printf('Rossz vektorokat adott meg!')
- abort
- end
- n=length(x)
- O=zeros(2*n)
- for i=1:n
- // első oszlop
- xx(2*i -1)= x(i)
- xx(2*i)=x(i)
- // 0. rendű osztott differenciák, kiegészítve a deriváltértékekkel
- O(2*i-1 ,1)=y(i)
- O(2*i,1)= y(i)
- O(2*i,2)= yd(i)
- end
- // 1. rendű osztott differenciák
- for i=2:n
- O(2*i-1,2)=(O(2*i-1,1)-O(2*i-2,1))/(xx(2*i-1)-xx(2*i-2))
- end
- // magasabbrendű osztott differenciák
- for j =3:2* n
- for i=j :2*n
- O(i,j)=(O(i,j-1)-O(i-1,j-1))/(xx(i)-xx(i-j+1))
- end
- end
- printf ('A megoldás :')
- disp(O)
- endfunction
- function y=fg(x)
- y=x+(4-2*%pi)/%pi^2*x^2+((-8-2*%pi)/%pi^2)/(%pi/2)*x^2*(x-%pi/2)
- endfunction
- xs=[0;%pi/2]
- ys=[0;1]
- yd=[1;0]
- plot(xs,ys)
- plot(0:0.01:%pi/2,fg)
- Hermite(xs,ys,yd)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement