Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.29 KB | None | 0 0
  1. 1.
  2. clear all;
  3. clc;
  4. %% Współrzędne punktów dla wielomianu interpolacyjnego testowego
  5. format compact;
  6. % Współrzędne x interpolowanych punktów wielomianu
  7. x = [0 1 2]
  8. % 2x^4-3X^3+3X^2-2X+1
  9. w = [2, - 3, 3, - 2, 1]
  10. w = fliplr(w);
  11. y = polyval(fliplr(w),x);
  12.  
  13. %% Wyznaczanie współczynników wielomianów interpolacyjnych
  14.  
  15. wL = Lagrange(x,y);% ze skryptów funkcyjnych
  16. wN = Newton(x,y);
  17.  
  18. %% Analiza i wyświetlanie wyników
  19.  
  20. % Okreslenie liczby wyników - wierszy tabeli
  21.  
  22. Nw = size(w,2); % Liczba współczynników wielomianu interpolowanego
  23. Ni = size(wN,2); % Liczba współczynników wielomianu interpolacyjnego
  24. N = max(Nw,Ni);
  25.  
  26. % Wyrównywanie rozmiarów tablic współczynników
  27.  
  28. if (Nw < N)
  29.  
  30. w(N) = 0; % Rozszerzona tablica wsp. wiel. interpolowanego
  31.  
  32. elseif (Ni < N)
  33.  
  34. wL(Nw) = 0; % Rozszerzona tablica wyników współczynników
  35. wN(Nw) = 0; % wielomianów interpolacyjnych Lagrange'a i Newtona
  36. end;
  37.  
  38. % Wyzanczanie błedów interpolacji
  39.  
  40. dwL = w - wL; % Bład interpolacji Lagrange'a
  41. dwN = w - wN; % Błąd interpolacji Newtona
  42.  
  43. % Tworzenie tablicy z wynikami
  44.  
  45. tbl=[(0:N-1)', w', wL', dwL', wN', dwN'];
  46. disp(' ')
  47. disp(' NrWsp WielInt WielLag BladLag WielNew BladNew')
  48. %% Wyświetlanie wyników
  49.  
  50. format short e;
  51. disp(tbl);
  52.  
  53. %% Wyświetlanie wykresu wielomianów
  54. xx = linspace(min(x),max(x),1000);%min(x):(max(x) - min(x))/1000:max(x);
  55. yy = polyval(fliplr(wL),xx);
  56. plot(x,y,'ko')
  57. hold on
  58. plot(xx,yy,'b-');
  59. yy = polyval(fliplr(wN),xx);
  60. plot(xx,yy,'r--');
  61. yy = polyval(fliplr(w),xx);
  62. plot(xx,yy,'k:');
  63. title('Interpolacja wielomianu 4 stopnia');
  64. xlabel('x');
  65. ylabel('W(x)');
  66. legend('Punkty int.','W. Lagrange''a','W. Newtona','w. interpolowany',...
  67. 'Location','best');
  68. hold off
  69.  
  70. 2.
  71. clear all;
  72. clc;
  73. %% Współrzędne punktów dla wielomianu interpolacyjnego testowego
  74. format compact;
  75. % Współrzędne x interpolowanych punktów wielomianu
  76. x = [-1 0 1 2]
  77. % 2x^4-3X^3+3X^2-2X+1
  78. w = [2, - 3, 3, - 2, 1]
  79. w = fliplr(w);
  80. y = polyval(fliplr(w),x);
  81.  
  82. %% Wyznaczanie współczynników wielomianów interpolacyjnych
  83.  
  84. wL = Lagrange(x,y);% ze skryptów funkcyjnych
  85. wN = Newton(x,y);
  86.  
  87. %% Analiza i wyświetlanie wyników
  88.  
  89. % Okreslenie liczby wyników - wierszy tabeli
  90.  
  91. Nw = size(w,2); % Liczba współczynników wielomianu interpolowanego
  92. Ni = size(wN,2); % Liczba współczynników wielomianu interpolacyjnego
  93. N = max(Nw,Ni);
  94.  
  95. % Wyrównywanie rozmiarów tablic współczynników
  96.  
  97. if (Nw < N)
  98.  
  99. w(N) = 0; % Rozszerzona tablica wsp. wiel. interpolowanego
  100.  
  101. elseif (Ni < N)
  102.  
  103. wL(Nw) = 0; % Rozszerzona tablica wyników współczynników
  104. wN(Nw) = 0; % wielomianów interpolacyjnych Lagrange'a i Newtona
  105. end;
  106.  
  107. % Wyzanczanie błedów interpolacji
  108.  
  109. dwL = w - wL; % Bład interpolacji Lagrange'a
  110. dwN = w - wN; % Błąd interpolacji Newtona
  111.  
  112. % Tworzenie tablicy z wynikami
  113.  
  114. tbl=[(0:N-1)', w', wL', dwL', wN', dwN'];
  115. disp(' ')
  116. disp(' NrWsp WielInt WielLag BladLag WielNew BladNew')
  117. %% Wyświetlanie wyników
  118.  
  119. format short e;
  120. disp(tbl);
  121.  
  122. %% Wyświetlanie wykresu wielomianów
  123. xx = linspace(min(x),max(x),1000);%min(x):(max(x) - min(x))/1000:max(x);
  124. yy = polyval(fliplr(wL),xx);
  125. plot(x,y,'ko')
  126. hold on
  127. plot(xx,yy,'b-');
  128. yy = polyval(fliplr(wN),xx);
  129. plot(xx,yy,'r--');
  130. yy = polyval(fliplr(w),xx);
  131. plot(xx,yy,'k:');
  132. title('Interpolacja wielomianu 4 stopnia');
  133. xlabel('x');
  134. ylabel('W(x)');
  135. legend('Punkty int.','W. Lagrange''a','W. Newtona','w. interpolowany',...
  136. 'Location','best');
  137. hold off
  138.  
  139. 3.
  140. clear all;
  141. clc;
  142. %% Współrzędne punktów dla wielomianu interpolacyjnego testowego
  143. format compact;
  144. % Współrzędne x interpolowanych punktów wielomianu
  145. x = [-2 -1 0 1 2]
  146. % 2x^4-3X^3+3X^2-2X+1
  147. w = [2, - 3, 3, - 2, 1]
  148. w = fliplr(w);
  149. y = polyval(fliplr(w),x);
  150.  
  151. %% Wyznaczanie współczynników wielomianów interpolacyjnych
  152.  
  153. wL = Lagrange(x,y);% ze skryptów funkcyjnych
  154. wN = Newton(x,y);
  155.  
  156. %% Analiza i wyświetlanie wyników
  157.  
  158. % Okreslenie liczby wyników - wierszy tabeli
  159.  
  160. Nw = size(w,2); % Liczba współczynników wielomianu interpolowanego
  161. Ni = size(wN,2); % Liczba współczynników wielomianu interpolacyjnego
  162. N = max(Nw,Ni);
  163.  
  164. % Wyrównywanie rozmiarów tablic współczynników
  165.  
  166. if (Nw < N)
  167.  
  168. w(N) = 0; % Rozszerzona tablica wsp. wiel. interpolowanego
  169.  
  170. elseif (Ni < N)
  171.  
  172. wL(Nw) = 0; % Rozszerzona tablica wyników współczynników
  173. wN(Nw) = 0; % wielomianów interpolacyjnych Lagrange'a i Newtona
  174. end;
  175.  
  176. % Wyzanczanie błedów interpolacji
  177.  
  178. dwL = w - wL; % Bład interpolacji Lagrange'a
  179. dwN = w - wN; % Błąd interpolacji Newtona
  180.  
  181. % Tworzenie tablicy z wynikami
  182.  
  183. tbl=[(0:N-1)', w', wL', dwL', wN', dwN'];
  184. disp(' ')
  185. disp(' NrWsp WielInt WielLag BladLag WielNew BladNew')
  186. %% Wyświetlanie wyników
  187.  
  188. format short e;
  189. disp(tbl);
  190.  
  191. %% Wyświetlanie wykresu wielomianów
  192. xx = linspace(min(x),max(x),1000);%min(x):(max(x) - min(x))/1000:max(x);
  193. yy = polyval(fliplr(wL),xx);
  194. plot(x,y,'ko')
  195. hold on
  196. plot(xx,yy,'b-');
  197. yy = polyval(fliplr(wN),xx);
  198. plot(xx,yy,'r--');
  199. yy = polyval(fliplr(w),xx);
  200. plot(xx,yy,'k:');
  201. title('Interpolacja wielomianu 4 stopnia');
  202. xlabel('x');
  203. ylabel('W(x)');
  204. legend('Punkty int.','W. Lagrange''a','W. Newtona','w. interpolowany',...
  205. 'Location','best');
  206. hold off
  207.  
  208. 4.
  209. clear all;
  210. clc;
  211. %% Współrzędne punktów dla wielomianu interpolacyjnego testowego
  212. format compact;
  213. % Współrzędne x interpolowanych punktów wielomianu
  214. x = [-3 -2 -1 0 1 2 3]
  215. % 2x^4-3X^3+3X^2-2X+1
  216. w = [2, - 3, 3, - 2, 1]
  217. w = fliplr(w);
  218. y = polyval(fliplr(w),x);
  219.  
  220. %% Wyznaczanie współczynników wielomianów interpolacyjnych
  221.  
  222. wL = Lagrange(x,y);% ze skryptów funkcyjnych
  223. wN = Newton(x,y);
  224.  
  225. %% Analiza i wyświetlanie wyników
  226.  
  227. % Okreslenie liczby wyników - wierszy tabeli
  228.  
  229. Nw = size(w,2); % Liczba współczynników wielomianu interpolowanego
  230. Ni = size(wN,2); % Liczba współczynników wielomianu interpolacyjnego
  231. N = max(Nw,Ni);
  232.  
  233. % Wyrównywanie rozmiarów tablic współczynników
  234.  
  235. if (Nw < N)
  236.  
  237. w(N) = 0; % Rozszerzona tablica wsp. wiel. interpolowanego
  238.  
  239. elseif (Ni < N)
  240.  
  241. wL(Nw) = 0; % Rozszerzona tablica wyników współczynników
  242. wN(Nw) = 0; % wielomianów interpolacyjnych Lagrange'a i Newtona
  243. end;
  244.  
  245. % Wyzanczanie błedów interpolacji
  246.  
  247. dwL = w - wL; % Bład interpolacji Lagrange'a
  248. dwN = w - wN; % Błąd interpolacji Newtona
  249.  
  250. % Tworzenie tablicy z wynikami
  251.  
  252. tbl=[(0:N-1)', w', wL', dwL', wN', dwN'];
  253. disp(' ')
  254. disp(' NrWsp WielInt WielLag BladLag WielNew BladNew')
  255. %% Wyświetlanie wyników
  256.  
  257. format short e;
  258. disp(tbl);
  259.  
  260. %% Wyświetlanie wykresu wielomianów
  261. xx = linspace(min(x),max(x),1000);%min(x):(max(x) - min(x))/1000:max(x);
  262. yy = polyval(fliplr(wL),xx);
  263. plot(x,y,'ko')
  264. hold on
  265. plot(xx,yy,'b-');
  266. yy = polyval(fliplr(wN),xx);
  267. plot(xx,yy,'r--');
  268. yy = polyval(fliplr(w),xx);
  269. plot(xx,yy,'k:');
  270. title('Interpolacja wielomianu 4 stopnia');
  271. xlabel('x');
  272. ylabel('W(x)');
  273. legend('Punkty int.','W. Lagrange''a','W. Newtona','w. interpolowany',...
  274. 'Location','best');
  275. hold off
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement