Narzędzia matematyczne w C

Języka C nie trzeba rekomendować ludziom tworzącym oprogramowanie dla systemów Unix. Natomiast w środowisku akademickim, które jest jednym z poważniejszych odbiorców oprogramowania, i w którym powstaje coraz więcej oryginalnych programów, jest on bardzo mało popularny. Przyczyną tego faktu może być funkcjonujący mit o trudności programowania w C, a także nieznajomość jego możliwości. Tymczasem istniejące biblioteki narzędzi matematycznych i graficznych czynią z niego wymarzone narzędzie do tworzenia oprogramowania dla celów naukowych i zastosowań inżynierskich.

Języka C nie trzeba rekomendować ludziom tworzącym oprogramowanie dla systemów Unix. Natomiast w środowisku akademickim, które jest jednym z poważniejszych odbiorców oprogramowania, i w którym powstaje coraz więcej oryginalnych programów, jest on bardzo mało popularny. Przyczyną tego faktu może być funkcjonujący mit o trudności programowania w C, a także nieznajomość jego możliwości. Tymczasem istniejące biblioteki narzędzi matematycznych i graficznych czynią z niego wymarzone narzędzie do tworzenia oprogramowania dla celów naukowych i zastosowań inżynierskich.

Firma Mix Software proponuje za cenę 30 USD pakiet C/Math Toolchest, zawierający bogatą bibliotekę funkcji matematycznych oraz programy graficznej analizy danych z możliwością wydruków na drukarce. Za dodatkowe 10 USD można otrzymać wersję źródłową programów.

Biblioteka matematyczna zawiera ok. 140 funkcji z podstawowych działów matematyki, takich jak: algebra liniowa, rachunek prawdopodobieństwa i statystyka, metody numeryczne oraz analiza sygnałów.

Oprócz typu rzeczywistego, w bibliotece zdefiniowane są dane typu zespolonego, a także wektory i macierze o elementach rzeczywistych i zespolonych oraz tablice wektorów i macierzy. Dane w formie wektorów i macierzy mają charakter dynamiczny oraz pamięć na zmienne tego rodzaju jest przydzielana nie statycznie w czasie kompilacji, lecz w czasie wykonywania, co pozwala na bardziej efektywne jej wykorzystanie.

Dla wszystkich wymienionych typów zdefiniowano działania arytmetyczne. Dla liczb zespolonych wprowadzono dodawanie, mnożenie, dzielenie oraz wyznaczanie pierwiastków. Zdefiniowano również wszystkie podstawowe działania na wektorach i macierzach. Biblioteka zawiera funkcje wyznaczające sumę, różnice i iloczyn dwóch macierzy. Dla danej macierzy istnieje również możliwość wyznaczenia jej transpozycji, wyznacznika, śladu oraz macierzy odwrotnej. Co za tym idzie, biblioteka zawiera, tak dla danych rzeczywistych, jak i zespolonych, funkcę rozwiązania układów równań liniowych. Zdefiniowany jest również iloczyn skalarny i wektorowy oraz długość wektora.

Funkcje zawarte w dziale metod numerycznych dają szeroki wybór algorytmów interpolacji, całkowania, obliczania pochodnych dowolnego rzędu, wyznaczania pierwiastków funkcji, a także znajdowania minimum funkcji wielu zmiennych.

Dość obszerna jest również biblioteka funkcji probabilistycznych i statystycznych. Podstawowe rozkłady zmiennych losowych dostępne w bibliotece, to rozkład dwumianowy, geometryczny, Pascala, jednostajny oraz normalny, dla których można uzyskać zarówno wartość dystrybuanty, jak i kwantyli oraz generatory liczb losowych. Funkcje statystyczne obejmują wartość przeciętną i wariancję z próbki, szeroki wybór równań regresji jednej i wielu zmiennych wyznaczanych metodą najmniejszych kwadratów oraz regresję Fouriera.

Analiza sygnałów obejmuje m. in. transformatę Fouriera, filtrowanie, wygładzanie oraz analizę widmową, w tym szybką transformatę Fouriera i widmo mocy.

Poza tym w bibliotece dostępnych jest wiele niestandardowych funkcji, takich jak funkcje hiperboliczne, logarytm przy dowolnej podstawie, funkcje Bessela, silnia czy liczba kombinacji i permutacji.

Przedstawione przykłady nie wyczerpują oczywiście wszystkich możliwości pakietu. Program Grafix, który jest też jego częścią, pozwala na przedstawienie w formie wykresów zarówno bezpośrednich danych, jak i ich funkcji, np. wielomian interpolacyjny czy funkcję regresji. Oczywiście, metody analizy sygnałów, podobnie jak inne wprowadzone w bibliotece matematycznej funkcje, mają również możliwość ilustracji graficznej.

Dodatkową zaletą pakietu jest dostęp do kodu źródłowego, co w tak specyficznej pracy, jak aplikacje naukowe czy inżynierskie, pozwala na łatwe wprowadzanie dowolnych modyfikacji.

Załączony do pakietu 200-stronicowy podręcznik, oprócz szczegółowego omówienia pracy z programem, opisu wszystkich funkcji oraz przykładów programów z ich wykorzystaniem, zawiera również część teoretyczną, omawiającą podstawy matematyczne oraz metody numeryczne, zastosowane do tworzenia poszczególnych procedur.

Jakkolwiek pakiet nie obejmuje wielu, zwłaszcza bardziej zaawansowanych metod matematycznych, zawiera jednak funkcje przydatne w niemal wszystkich aktualnych zastosowaniach matematycznych, jak modelowanie procesów, analiza sygnałów czy analiza obrazów, i stanowi dużą pomoc w programowaniu w C. Może więc warto spróbować? Tym bardziej, że cena jest bardzo przystępna.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200