Tematy: równania (narzędzie Szukaj wyniku) | filtrowanie | narzędzie Solver

Arkusze kalkulacyjne Excel i Calc

Równania

Arkusze są wyposażone w narzędzie nazywające się Szukaj wyniku, potrafiące rozwiązać dowolne równanie z jedną niewiadomą.
Równania $e^{x^2} - 1 = \cos x$ nie potrafimy rozwiązać, a z wykresu widać, że to równanie ma dwa rozwiązania.

Rozwiązywanie

Inne pierwiastki

Równanie $e^{x^2} - 1 - \cos x = 0$ ma dwa – różniące się znakiem – pierwiastki. Narzędzie Szukaj wyniku znajduje jeden z nich, ten dodatni. W przypadku tego równania możemy łatwo ustalić wartość drugiego pierwiastka. Taka sytuacja nie jest typowa, jesteśmy zazwyczaj „skazani” na jeden pierwiastek, niekoniecznie ten, który nas interesuje.

Rozważmy równanie $\sin(x) = \frac{1}{2}x$

Narzędzie Szukaj wyniku znajdzie oczywiste rozwiązanie $x=0$. Co zrobić jeżeli interesuje nas najmniejszy pierwiastek dodatni? Rozpatrzmy nową funkcję, nazwijmy ją sinus, której wykres częściowo (dla $x\ge 0,5$) pokrywa się z wykresem funkcji $\sin$.

Pierwiatek równania $sinus(x)-\frac{1}{2}x=0$ jest szukanym najmniejszym pierwiastkiem równania $\sin(x) = \frac{1}{2}x$

Nadal zakładamy, że program ma wpisać rozwiązanie do komórki C3.
Do komórki z formułą (np. C4) wpisujemy:

=JEŻELI(C3<=0,5;0,5;sin(C3))-C3/2
Uruchamiamy narzędzie Szukaj wyniku, program znajduje rozwiązanie, liczbę $1,89549313523737$.

Inny sposób zdefiniowania funkcji sinus, to napisanie makra. Oznacza to „nauczenie” arkusza nowej funkcji. Aby napisać makro, musimy otworzyć okno edytora makr:

W oknie edytora wpisujemy kod funkcji:

Function sinus(x As Double) As Double
  If x <= 0.5 Then
    sinus = 0.5
  Else
    sinus = sin(x)  
  End If
End Function

Nadal zakładamy, że program ma wpisać rozwiązanie do komórki C3.
Do komórki z formułą (np. C4) wpisujemy

=sinus(C3)-C3/2

Uruchamiamy narzędzie Szukaj wyniku, program znajduje rozwiązanie, liczbę $1,89549413529882$.

Filtrowanie

Filtr to zestaw warunków, które musi spełniać zawartość komórek by wiersz został wyświetlony.
Do testowania filtrów można wykorzystać plik Państwa.
Przykładowy zestaw warunków: państwa leżące w Afryce lub w Europie, których powierzchnia przekracza 1000 km2.

Oba programy (Excel i Calc) mają trzy narzędzia filtrujące różniące się dopuszczalną budową warunków:

Autofiltr

Warunek dotyczący kolumny ma postać: (zawartość komórki = wartość)$\vee\dots\vee$(zawartość komórki = wartość).
Warunek końcowy jest koniunkcją warunków dotyczących kolumn.

Np. państwa leżące w Afryce, w których językiem urzędowym jest angielski, arabski lub francuski.
(w Afryce)$\wedge$((język=angielski)$\vee$(język=arabski)$\vee$(język=francuski))

Filtr standardowy

Filtr standardowy – warunek dotyczący kolumny ma postać:


Warunek końcowy jest koniunkcją, alternatywą lub jednym i drugim warunków dotyczących kolumn.

Np. państwa leżące w Europie, w których jednym z języków urzędowych jest angielski lub liczba ludności ≥ 10 mln.
(w Europie)$\wedge$((język zawiera angielski)$\vee$(ludność ≥ 10 mln.))

Niestety, tworząc filtr standardowy nie mamy możliwości wpisania nawiasów. Powstanie zatem taki (beznawiasowy) warunek:
(w Europie)$\wedge$(język zawiera angielski)$\vee$(ludność ≥ 10 mln.)

Zgodnie z priorytetami operatorów logicznych (wpierw koniunkcja, potem alternatywa) będzie on interpretowany (niezgodnie z intencją) tak:
((w Europie)$\wedge$(język zawiera angielski))$\vee$(ludność ≥ 10 mln.)

Filtr zaawansowany

Filtr zaawansowany opisujemy gdzieś w dokumencie (skoroszycie), który chcemy filtrować. Można wykorzystać fragment filtrowanego arkusza, można wykorzystać inny arkusz.

((w Europie)$\wedge$(język = angielski))$\vee$((w Europie)$\wedge$(ludność ≥ 10))

Równoważnie i trochę krócej:
(w Europie)$\wedge$((język = angielski)$\vee$(ludność ≥ 10))

Kłopoty sprawia zapisanie innego niż równość, warunku dotyczącego komórek z tekstem. Jak zapisać np. warunki, że język zawiera angielski lub, że angielski jest ostatnim wymienionym językiem? Rozwiązaniem są tzw. wyrażenia regularne. Są one potężnym narzędziem do składniowej analizy tekstu. Ważny przykład wyrażenia regularnego: .*, oznacza ono dowolny (również pusty!) ciąg znaków. W konsekwencji:

Pytania sprawdzające

Pytania dotyczą pliku Państwa.

Lista pytań
  • Czy za pomocą Autofiltru można wyświetlić:
    Państwa, w których językiem urzędowym jest tylko francuski? nie tak
    Państwa, w których pierwszym wymienionym językiem urzędowym jest francuski? nie tak
    Państwa, w których jednym z wymienionym języków urzędowych jest francuski? nie tak
  • Czy za pomocą narzędzia Filtr standardowy można wyświetlić:
    Państwa, które leżą w Afryce, a jednym z języków urzędowych jest angielski lub francuski? nie tak
    Państwa, które leżą w Afryce, jednym z wymienionych języków jest francuski, a ludność > 10 mln.? nie tak
    Państwa, które leżą w Afryce (bez ograniczenia na powierzchnię) lub leżą w Europie i powierzchnia > 300 000 km2? nie tak
  • Czy za pomocą narzędzia Filtr zaawansowany można wyświetlić:
    *Państwa, w których stosunek ludności do powierzchni (w km2) > 10? nie tak
    Państwa, w których jednym z wymienionych języków jest angielski i nie jest on pierwszym wymienionym językiem? nie tak
    Państwa, które leżą w Afryce (bez ograniczenia na powierzchnię) lub leżą w Europie i powierzchnia > 300 000km2 nie tak
Uwaga do pytania z *

Odpowiedź zależy od tego czy dozwolone jest tworzenie nowych kolumn. Jeśli jest dozwolone, to wystarczy utworzyć i wypełnić kolumnę Gęstość zaludnienia.

„Sprawdzarka” zakłada, że tworzenie nowych kolumn nie jest dozwolone.

Ukryj

Narzędzie Solver

Narzędzie Solver ma kilka zastosowań:

W programie Calc narzędzie Solver jest zawsze dostępne (Narzędzia ⇒ Solver).
W programie Excel może być konieczne zainstalowanie dodatku Solver oraz dołączenie go do Excela: Plik ⇒ Opcje. Po dołączeniu, narzędzie Solver jest dostępne na karcie Dane.

Funcje jednej zmiennej

Wyznaczymy wartość największą funkcji $y=sin(\frac{1}{3}x)$ dla $30^\circ\le x \le 300^\circ$.

Do dowolnej komórki arkusza (np. B14) wpisujemy formułę z powyższego wzoru.
W programach Excel i Calc funkcje trygonometryczne oczekują argumentów w radianach. Jeżeli chcemy posługiwać się stopniami, to musimy skorzystać z funkcji radiany() przeliczającej stopnie na radiany.

Uruchamiamy narzędzie Solver:

Informujemy program, w której komórce jest formuła (B14), w której jest zmienna (A14), jakie są ograniczenia na zmienną i czym jesteśmy zainteresowani (maksimum). Zatwierdzamy i w komórkach A14 oraz B14 pojawia się rozwiązanie.

Funkcje wielu zmiennych

Na odcinku $\overline{AB},\, A = (-1,1),\, B = (3,2)$ wyznaczymy punkty leżące najdalej i najbliżej od początku układu. Najpierw, korzystając z kartki, napiszemy równanie prostej przechodzącej przez punkty $A,B$, ma ono postać $4y-x-5=0$. By znaleźć punkt najbliższy i najdalszy, znajdziemy punkty, w których funkcja $f(x,y)=x^2+y^2$ osiąga wartość największą i najmniejszą. Zmiennym $x,y$ przydzielimy komórki A9 i B9. Do komórki C9 wpiszemy formułę opisującą badaną funkcję, a do komórki D9 formułę opisującą równanie prostej.

Uruchamiamy narzędzie Solver:

(Na powyższym zrzucie ekranu nie widać warunku $A9\ge -1$.)

Zatwierdzamy i w komórkach A9:B9 pojawia się rozwiązanie.

Analogicznie możemy wyznaczyć punkt najdalszy.

Znalezione rozwiązanie pokazuje, że Solver korzysta z algorytmów przybliżonych. Pozwala to rozwiązać znacznie więcej zagadnień, ale w prostych przypadkach może może dawać gorsze rozwiązania. W opisywanym zagadnieniu wystarczy naszkicować rysunek, by zobaczyć, że punktem najdalszym jest punkt $(3,2)$.

Układy równań

Rozwiążemy układ równań$\begin{cases} x\cdot y\cdot z=1 \\x+y+z=0 \\x+2\cdot y+3\cdot z=0\end{cases}$

Każde równanie w układzie musi być postaci $f(x_1,\dots,x_n)=c$.
Niewiadomym z równania ($x,y,z$) przydzielamy komórki w arkuszu (np. A18, B18, C18). Formuły opisujące lewe strony równań wpisujemy do dowolnych komórek arkusza (np. D18, E18, F18).

Uruchamiamy narzędzie Solver:

W polu Komórka docelowa wpisujemy adres jednej z komórek z formułą – nie ma znaczenia której. Zatwierdzamy i w komórkach A18:C18 pojawia się rozwiązanie.

Pytania