Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all;
- close all;
- clc;
- %przedział
- a=-2;
- b=2;
- punkty=a:0.1:b; %w tych punktach szukamy co dzieje się z funkcją, zwiększajac zwiekszamy dokladnosc
- %ilosc wezlow
- ilosc=16;
- m=9;
- %wezly rownolegle
- n=ilosc;
- for i=1:n
- x(i)=a+((b-a)/(ilosc))*(i-1);
- end
- %wezly czebyszewa
- % n=ilosc;
- % for i=1:ilosc
- % x(i)=((a-b)*cos(((2*i-1)*pi)/(2*n)))/2+(a+b)/2;
- % end
- %dla funkcji:
- %y=exp(x);
- y=1./(1+x.^2);
- %tworznie macierzy
- for i=1:1:ilosc
- for j=1:1:m
- D(i,j)=x(i)^(j-1);
- end
- end
- %Ze wzoru
- Lewa=D'*D;
- Prawa=D'*y';
- %Eliminacja Gaussa
- U=[Lewa Prawa]; %Tworzymy macierz rozszerzoną
- [W K]=size(U); %Pobieramy rozmiar macierzy rozszerzonej
- for i=1:W
- for j=i:W
- if abs(U(j,i))==max(abs(U(i:W,i)))
- tmp1=U(i,:);
- U(i,:)=U(j,:);
- U(j,:)=tmp1;
- end
- end
- end
- for j=1:W-1
- for i=j+1:W
- U(i,j:K)=U(i,j:K)-U(i,j)/U(j,j)*U(j,j:K); %U(i,j)/U(j,j) oblicza nam wpsółczynik
- end %prze jaki należy pomnożyć elementy z wiersza
- end %np. pierwszego by później odjąć je od np.wiersza drugiego
- %w celu wyzerowania danego elementu
- a=zeros(W,1);
- for i=W:-1:1
- a(i)=(U(i,K)-U(i,i+1:W)*a(i+1:W))/U(i,i); %Obliczanie niewiadomych
- end
- a=a';
- %układamy w odpowiedniej kolejności
- for i=1:9
- wsp(1,i)=a(1,10-i);
- end
- plot(punkty, polyval(wsp,punkty), 'o', 'LineWidth', 2);
- hold on;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement