Aby oszacować minimum funkcji wyznaczana jest jej wartość: humps(p) ans =
11.2528
W analizie numerycznej używane są terminy kwadratura i całkowanie (ang. ąuadrature and integration) do rozróżnienia między numerycznym przybliżeniem całek określonych i numerycznym całkowaniem równań różniczkowych zwyczajnych. Procedurami kwadratury MATLAB-a sąąuad i quad8. Instrukcja Q = quad8('humps‘,0,1)
oblicza przybliżone pole pod krzywą na wykresie i daje w wyniku
29.8583
Wykres funkcji pokazuje, że nic osiąga ona zera w przedziale całkowania. Pierwiastek poszukiwany za pomocą polecenia z = fzero('humps',.5)
znajdowany jest poza tym przedziałem i wynosi z =
-0.1316
Jednym z ważniejszych zagadnień, w którym wykorzystuje się „funkcje funkcji” jest rozwiązywanie równań różniczkowych. Dla przykładu, poszukiwane jest rozwiązanie równania Lotki-Volterry będące modelem układu łowca-ofiara i opisujące na przykład populację lisów i populację królików. yl' = yl-ayly2 y2' = -y2 + P yl y2
Dla zmniejszenia liczby argumentów funkcji współczynniki a i P wprowadzono jako zmienne globalne. Najpierw tworzony jest M-plik o nazwie lotka.m wyznaczający pochodne: function yp = lotka (t,y)
% LOTKA model układu łowca -ofiara, - równanie Lotka-Volterra global ALPHA BETA
yp = [y(1)- ALPHA*y(1)*y(2); -y(2)+ BETA*y(1)*y(2)];
Rozwiązywanie układu równań różniczkowych realizowane jest przez następujący program:
global ALPHA BETA ALPHA =0.01 BETA = 0.02 yo=[2 0;2 0] ;
[t,y] = ode23('lotka',[0 15],yo‘);
plot(t,y(:,1),'k-',t,y(:,2),‘k--’)
Wywoływana funkcja ode23 oznacza metodę rozwiązywania równań różniczkowych zwyczajnych Rungc-Kutty rzędu 2 z automatycznym doborem kroku
61