Podstawowe wyrażenia matematyczne

Podobne dokumenty
Wstęp do Maximy. Materiały pomocnicze do wizualizacji obiektów matematycznych. Opracowanie: Lech Sławik

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

Wykorzystanie programów komputerowych do obliczeń matematycznych, cz. 2/2

Języki programowania wysokiego poziomu. PHP cz.2.

Wstęp do Maximy. Materiały pomocnicze do wizualizacji obiektów matematycznych. Opracowanie: Lech Sławik

Algorytmika i Programowanie VBA 1 - podstawy

Programowanie Delphi obliczenia, schematy blokowe

Funkcje matematyczne w C. Programowanie w C Marek Pudełko

Metody numeryczne I. Programy wspomagajace obliczenia Maxima. Janusz Szwabiński.

Wykorzystanie programów komputerowych do obliczeń matematycznych

Adres komórki-nazwa kolumny i nazwa wiersza, na przecięciu których znajduje się komórka. B3- adres aktywnej komórki

JAVAScript w dokumentach HTML (1)

1 Podstawy c++ w pigułce.

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Instalacja

LICZBY ZESPOLONE. 1. Wiadomości ogólne. 2. Płaszczyzna zespolona. z nazywamy liczbę. z = a + bi (1) i = 1 lub i 2 = 1

Blok zawierający opis danego quizu, np. Pierwsze kolokwium z podstaw chemii. Blok definiujący czas trwania kolokwium.

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

dr inż. Jarosław Forenc

Laboratorium Programowanie Obrabiarek CNC. Nr H7

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Teksty Liczby Formuły. Operatory. dr inż. Jarosław Forenc. Pasek narzędzi. Pasek narzędzi. (Atrybuty komórek)

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Równania liniowe i nieliniowe

Cw.12 JAVAScript w dokumentach HTML

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

Maxima i Visual Basic w Excelu

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Lech Sławik Podstawy Maximy 6 Definiowanie funkcji.wxmx 1 / 8. 1 Definiowanie funkcji przy pomocy operatora :=

Język programowania zbiór reguł określających, które ciągi symboli tworzą program komputerowy oraz jakie obliczenia opisuje ten program.

Kształcenie w zakresie podstawowym. Klasa 1

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 2. Programowanie komputerowe

1 Podstawy c++ w pigułce.

operator zmiany znaku operatory mnożenia, dzielenia, dzielenia modulo operatory dodawania, odejmowania

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

WYRAŻENIA ALGEBRAICZNE

Podstawy Programowania Podstawowa składnia języka C++

Obliczenia Symboliczne

JAVAScript w dokumentach HTML - przypomnienie

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Harmonogramowanie, kosztorysowanie, planowanie budowy.

Prolog struktury danych oraz obliczenia. 1. Arytmetyka?- Y is 2+2. Y = 4. ?- 5 is 3+3. false. ?- Z is (3.9 / 2.1). Z =

Struktura pliku projektu Console Application

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Obliczenia, zmienne. Proste działania, zmienne, rodzaje zmiennych, proste operacje i działania na zmiennych.

Wprowadzenie do Scilab: podstawy języka Scilab

Odczyt danych z klawiatury Operatory w Javie

Liczby zespolone. x + 2 = 0.

ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2016) Liczby, znaki, napisy, operatory logiczne, stałe. Pętle typu while.

Programowanie w języku Matlab

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

2 Przygotował: mgr inż. Maciej Lasota

Elementy języków programowania

Podstawy programowania w języku C i C++

Algebra macierzy

Funkcje. czyli jak programować proceduralne. Programowanie Proceduralne 1

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Wprowadzenie do języka Pascal

Przy Matlabie istnieje duże społeczność wymieniająca się plikami, programami i poradami

Wyrażenia arytmetyczne

Stałe. Funkcje standardowe. Niektóre stałe i funkcje z pliku nagłówkowego math.h. M_E M_LOG2E M_LOG10E M_LN2 M_LN10 M_PI M_PI_2

Podstawy programowania skrót z wykładów:

Informatyka 1. Wyrażenia i instrukcje, złożoność obliczeniowa

Właściwości i metody obiektu Comment Właściwości

Powtórzenie podstawowych zagadnień. związanych ze sprawnością rachunkową *

4. Funkcje. Przykłady

C++ wprowadzanie zmiennych

Operatory w C++ Operatory arytmetyczne. Operatory relacyjne (porównania) Operatory logiczne. + dodawanie - odejmowanie * mnożenie / dzielenie % modulo

dr inż. Jarosław Forenc

Podstawy i języki programowania

Pascal - wprowadzenie

Przekształcenia całkowe. Wykład 1

Liczby zespolone. P. F. Góra (w zastępstwie prof. K. Rościszewskiego) 27 lutego 2007

Python wstęp do programowania dla użytkowników WCSS

Matematyka liczby zespolone. Wykład 1

MATERIAŁY DO ZAJĘĆ II

ZASADY PROGRAMOWANIA STRUKTURALNEGO (ZAP - zima 2014) Wyrażenia c.d. Pętle typu while.

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Wstęp do programowania

Funkcje. Część druga. Zbigniew Koza. Wydział Fizyki i Astronomii

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Kiedy i czy konieczne?

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

1 Funkcje elementarne

PL/SQL. Część 1 Bloki PL/SQL. Piotr Medoń

opracował: mgr inż. Piotr Marchel Instrukcja obsługi programu Struktura

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Wprowadzenie implementacja języka WolframAlpha

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

Liczby zespolone. Magdalena Nowak. 23 marca Uniwersytet Śląski

Klasyfikacja typów w C++

PRZETWARZANIE I ORGANIZOWANIE DANYCH: ARKUSZ KALKULACYJNY

Maxima i Visual Basic w Excelu

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Podstawy programowania C. dr. Krystyna Łapin

ZMIENNE. Podstawy PHP

Transkrypt:

Lech Sławik Podstawy Maximy 3 Wyrażenia matematyczne.wxmx 1 / 7 Podstawowe wyrażenia matematyczne 1 Nazwy Nazwy (zmiennych, stałych, funkcji itp.) w Maximie mogą zawierać małe i duże litery alfabetu łacińskiego, cyfry od 0 do 9, znak % oraz znak podkreślenia. W nazwie mogą wystąpić inne znaki, ale muszą być poprzedzone znakiem ukośnika \. Jeżeli pierwszym znakiem nazwy jest cyfra, to musi być poprzedzona znakiem ukośnika \. Cyfry wewnątrz nazwy nie muszą być poprzedzona znakiem ukośnika \. Maxima rozróżnia duże i małe litery. Pod zmienną sytemową "values" zapisywane są wprowadzone nazwy, którym przypisano wartość. Wartość zmiennej "values" możemy odczytać przy pomocy pozycji menu "Maxima->Pokaż zmienną". 2 Nadawanie wartości Jak już wiemy nazwom zmiennych możemy przypisywać wartości przy pomocy operatora : (znak dwukropka, bez znaku równości!) --> x : 1 /* spacje nie są konieczne, ale poprawiają czytelność */; (%o26) 1 --> x; (%o27) 1 Operator : wylicza wartość prawej strony i przypisuje ją do zmiennej. Zwróćmy uwagę, że przypisanej wartości nie zmieniają późniejsze modyfikacje składowych prawej strony. Przykładowo: Zmiennej hf nadajemy wartość określoną prawą stroną --> hf:f*(l/d)*(v^2/(2*g)); Aktualna wartość hf: --> hf; Przypisujemy wartości zmiennym f,l,d,v,g (aby zachować czytelność używamy $) --> f:0.017 $ L:1000 $ D:0.2 $ V:2.5 $ g:32.2 $ Mimo tego wartość hf nie ulega zmianie: --> hf; Jeszcze raz definiujemy hf (dla zachowania efektu używamy $) --> hf:f*(l/d)*(v^2/(2*g))$ W tym momencie przy wyliczaniu prawej strony (i przypisywaniu wartości do hf) zostają uwzględnione nadane wartości --> hf;

Lech Sławik Podstawy Maximy 3 Wyrażenia matematyczne.wxmx 2 / 7 3 Usuwanie wartości zmiennej Funkcja kill(a_1,..., a_n) anuluje przypisania wartości do nazw a_1,...,a_n. Funkcja "kill" rozpoznaje specjalne typy argumentów, z których w tej chwili wspomnimy jedynie o argumencie "all": kill(all) usuwa wszelkie przypisania poczynione w danej sesji. Polecenie "kill(all)" jest podpięte pod pozycję w menu "Maxima->Wyczyść pamięć". Uwaga. Komenda "kill(all)" usuwa również definicje innych obiektów, w szczególności funkcji użytkownika, o których będziemy mówić w następnej części. 4 Nazwy zarezerwowane Tworząc nowe nazwy trzeba pamiętać, że pewne słowa są już zarezerwowane w Maximie. Przykładowo integrate next from diff in at limit sum for and elseif then else do or if unless product while thru step 5 Predefiniowane stałe matematyczne Pewnym nazwom są przypisane w Maximie wartości i własności typowych stałych matematycznych. Przykładowo: %e podstawa logarytmu naturalnego (=exp(1)) %i jedność urojona (=sqrt(-1)) inf plus nieskonczoność (rzeczywista) minf minus nieskonczoność (rzeczywista) infinite nieskończoność zespolona %phi złoty podział %pi pi %gamma stała Eulera false, true stałe logiczne (fałsz, prawda) 6 Operatory arytmetyczne, porównania, logiczne Operatory arytmetyczne: + dodawanie - odejmowanie * mnożenie ( w Maximie znak mnożenia jest obowiązkowy, np. 2*x NIE 2x) / dzielenie ^ potęgowanie

Lech Sławik Podstawy Maximy 3 Wyrażenia matematyczne.wxmx 3 / 7 Operatory porównania: = równa się # różny > większy < mniejszy >= większy lub równy <= mniejszy lub równy Powyższe operatory porównania mają charakter pomocniczy (np. do budowania warunków), w szczególności nie są ewaluowane (tzn. nie testują w żadnym sensie prawdziwości formuły): --> 2=2; a=b;3=5; (%o7) 2=2 (%o8) a=b (%o9) 3=5 Do bezpośredniego testowania służy funkcja "is": --> is(2=2); is(a=b);is(3=5); (%o1) true (%o2) false (%o3) false Zwróćmy uwagę, że funkcja "is" nie rozpoznaje wyrażeń równoważnych --> is ((x^2-1 = (x + 1) * (x - 1))); (%o4) false Do tego celu należy użyć funkcji "equal" --> is (equal (x^2-1, (x + 1) * (x - 1))); (%o3) true Operatory logiczne: and koniunkcja or alternatywa not zaprzeczenie Operatory logiczne wyliczają wartość operatorów porównania bez konieczności użycia funkcji "is" --> 1>2 or 3>2; (%o1) true Kolejność wykonywania różnych operatorów wchodzących w skład złożonego wyrażenia jest określona przez zasady preferencji wbudowane w program. Jeżeli chcemy zmienić tę kolejność używamy standardowego grupowania przy pomocy nawiasów okrągłych ( ). 7 Predefiniowane funkcje matematyczne

Lech Sławik Podstawy Maximy 3 Wyrażenia matematyczne.wxmx 4 / 7 Przykłady funkcji matematycznych dostępnych w Maximie: sqrt pierwiastek kwadratowy sin sinus cos cosinus tan tangens cot cotangens sec secans csc kosecans asin arcus sinus acos arcus cosinus atan arcus tangens acot arcus cotangens asec arcus secans acsc arcus kosecans exp wykładnicza e^x log logarytm naturalny sinh sinus hiperboliczny cosh cosinus hiperboliczny tanh tangens hiperboliczny asinh arcus sin hiperboliczny acosh hyperbolic acos atanh arcus tangens hiperboliczny floor "podłoga" ceiling "sufit" fix część całkowita float przybliżenie dziesiętne abs wartość bezwzględna 8 Arytmetyka liczb rzeczywistych 8.1 Obliczenia symboliczne (arytmetyka dokładna) Jeżeli w wyrażeniu nie występują numerał (liczba) w zapisie dziesiętnym, to standardowo Maxima daje wyniki w postaci symbolicznej. Aby otrzymać przybliżenie zmiennoprzecinkowe ( w arytmetyce dziesiętnej 16-to cyfrowej) można (m.in.) uzyć funkcji "float". Przykłady: --> 3* --> 5/3; float(%);sqrt(3^2+5);float(%); Jeżeli jeden z argumentów jest liczbą dziesiętną, wynik (z małymi wyjątkami) też jest w postaci dziesiętnej: --> 3.5/2; sqrt(3.2^2+5); 8.2 Zmiana standardowego typu Pozycja menu "Numeryczne"->"Wyjście..." pozwala na przełączanie standardowego typu wyniku (z symbolicznego na numeryczne i vice versa): --> if numer#false then numer:false else numer:true; exp(-2); i na odwrót: --> if numer#false then numer:false else numer:true; exp(-2); 8.3 Arytmetyka o dowolnej precyzji

Lech Sławik Podstawy Maximy 3 Wyrażenia matematyczne.wxmx 5 / 7 Standardowo Maxima wykonuje obliczenia w arytmetyce dziesiętnej 16-to cyfrowej. Jezeli chcemy wykonywać obliczenia z większą (lub mniejszą) dokładnością używamy innego typu liczb rzeczywistych o nawie "bfloat". Komenda "bfloat" dokonuje konwersji argumentu do zapisu w arytmetyce dziesiętnej z liczbą cyfr wskazana przez zmienna "fpprec", np. przez podstawienie "fpprec:32" (dostepne również z pozycji menu "Numeryczne". UWAGA 1: wartość "fpprec" nie ma wpływu na obliczenia typu "float", które zawsze są 16-to cyfrowe. UWAGA 2: fakt, ze dana liczba jest interpretowana jako "bfloat" jest sygnalizowane w zapisie "mantysa-cecha" literą b (dla "float" jest to litera e).. UWAGA 3: obliczenia w których wystepują liczby "float" i "bfloat" daja w wyniku "bfloat" Przykłady: zadanie liczby cyfr w arytmetyce bfloat Mix --> fpprec : 32; (%o2) 32 --> 3.5b-4*2.7e2; 2.2e-2+1.2b-1; -3.2b2/2e3; (%o6) 9.45b-2 (%o7) 1.4199999999999999872324352168107b-1 (%o8) - 1.6000000000000000333066907387547b-1 Kilka przykładów z pi: --> float(%pi); bfloat(%pi); (%o9) 3.141592653589793 (%o10) 3.1415926535897932384626433832795b0 --> fpprec:64; bfloat(%pi); (%o11) 64 (%o12) 3.141592653589793238462643383279502884197169399375105820974944592b0 --> fpprec:128; bfloat(%pi); (%o13) 128 (%o14) 3.1415926535897932384626433832[71 digits]9821480865132823066470938446b0 Sprawdzenie aktualnej arytmetyki --> fpprec; powrót do standardu: --> fpprec:16 $ fpprec; Kilka przykładów obliczeń sybolicznych i dziesiętnych:

Lech Sławik Podstawy Maximy 3 Wyrażenia matematyczne.wxmx 6 / 7 --> 2+(1/(2+1/(2+1/2))); 4./3.+3./4.+1./6.; sqrt(1+(3/2)^3); abs(-2.5+1/2.5); sin(%pi/3+cos(%pi/3)); sqrt(exp(-2)+log(abs(-2+1/2))); ceiling(3.25); floor(3.25); fix(3.25); 3.25-fix(3.25); sinh(2.5); (%o15) 29 12 (%o16) 9 4 p 35 (%o17) 2 3/ 2 (%o18) 2.1 (%o19) sin 3 +1 2 q 3 (%o20) log 2 +%e-2 (%o21) 4 (%o22) 3 (%o23) 3 (%o24) 0.25 (%o25) 6.050204481039787 9 Liczby zespolone Liczby zespolone zapisujemy w tradycyjnej postaci x+%i*y. Program wykonuje działania na liczbach zespolonych (w arytmetyce zależnej od typu części rzeczywistej i urojonej) --> z1: 3+5*%i; z2:-2+6*%i;z1+z2;z1-z2;z1*z2;z1^2; (%o28) 5 %i+3 (%o29) 6 %i-2 (%o30) 11 %i+1 (%o31) 5-%i 5 %i+3 6 %i-2 (%o32) ( ) (%o33) ( 5 %i+3) 2 Ostatnie dwa przykłady wymagają wskazania stosownego uproszczenia. Na przykład --> expand(z1*z2); (%o34) 8 %i-36 Maxima dostarcza wielu funkcji związanych z liczbami zespolonymi. Przykładowo: cabs (complex absolute value) moduł liczby zespolonej carg (complex argument)argument liczby zespolonej rectform przedstawia wyrażenie zespolone w postaci x+%i*y polarform przedstawia wyrażenie zespolone w postaci wykładniczej realpart zwraca część rzeczywistą imagpart zwraca część urojoną conjugate sprzężenie liczby zespolonej

Lech Sławik Podstawy Maximy 3 Wyrażenia matematyczne.wxmx 7 / 7 Przykłady --> cabs(z1);arg(z1); z2;-z2;conjugate(z2);expand(z2*conjugate(z2)); rectform(z1/z2);rectform(sqrt(z1));polarform(z1);polarform(z2); (%o35) p 34 (%o36) arg( 5 %i+3) (%o37) 6 %i-2 (%o38) 2-6 %i (%o39) -6 %i-2 (%o40) 40 (%o41) 3 %i -7 5 10 p p34-3 p p34+3 %i (%o42) p + p 2 2 (%o43) p 34 %e (%o44) 2 p 10 %e %i 0 1 @ 5 A %i atan 3 -atan( 3) Funkcje wbudowane w Maximę działają zarówno w dziedzinie rzeczywistej jak i zespolonej. --> rectform(sin(z1)); (%o46) %i cos( 3) sinh( 5 ) +sin( 3) cosh( 5) --> rectform(log(-1)); (%o48) %i