Generuj zestaw zadań

Wskazówka

Binder <- interaktywna sesja notebooka

import os
import sys
from random import choice

import ipywidgets as widgets
from IPython.display import display, Image, Markdown, Latex
from pdf2image import convert_from_path

import generator_zadan.generatory as gz

print(gz.__version__)
0.2.11

Wybierz zadania

Wskazówka

  • Można komórki uruchamiać wielokrotnie. Aż się trafi ciekawszy przykład.

  • Można zmieniać parametry funkcji generujących.

  • Zmień zadanie_nr na odpowiednio rozróżnialne zadanie_1, zadanie_2 itp. Tylko te będą potem przekazywane do funkcji generującej zestaw. Domyślnie pięć zadań. Można to zmienić niżej przy wywołaniu funkcji generuj_LaTeX().

  • Na potrzeby dokumentacji na początku numery ustawione ma pierwszych pięć przykładów.

Liczby zespolone

Równanie liniowe

Hide code cell source
zadanie = gz.rownanie_liniowe()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\n')[2] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_1 = zadanie
** Zadanie ************************************************************************************

Rozwiązać równanie w zbiorze liczb zespolonych. Sprawdzić rozwiązanie.

\[ 2 - 2i+\left(7 + 5i\right)z = \left(7 + 4i\right)z\]
** Rozwiązanie ********************************************************************************
\[z=2 + 2i.\]

Równanie kwadratowe

Hide code cell source
zadanie = gz.rownanie_kwadratowe()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\n')[2] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_2 = zadanie
** Zadanie ************************************************************************************

Rozwiązać równanie w zbiorze liczb zespolonych. Sprawdzić jedno z rozwiązań.

\[ \left(1 - i\right)z^2 + \left(13 - 3 i\right) z + \left(28 + 10 i\right)=0\]
** Rozwiązanie ********************************************************************************
\[\Delta = 8-6i, \quad \sqrt{\Delta}=\pm( 3 - i), \quad z_{1}=-5 - 3 i, \quad z_{2}=-3 - 2 i\]

Pierwiastek zespolony

Hide code cell source
zadanie = gz.pierwiastek_zespolony(stopien=choice([3, 4]), nr_zadania=1234)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
temp = zadanie[1].split('\n\t')[2] + zadanie[1].split('\n\t')[5][4:]
display(Latex(f'$${temp}$$'))
display(Markdown(f'![](./pics//rozklad_pierwiastkow1234.png)'))
print("\033[32m*\033[0m" * 95)
zadanie_3 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć wszystkie zadane pierwiastki zespolone i zaznaczyć je na płaszczyźnie zespolonej

\[ \sqrt[\leftroot{2}\uproot{-4} \displaystyle ^{3}]{\left(-1 + \sqrt{2} i \right) \left(\frac{9 \sqrt{2}}{64} - \frac{9 i}{64} \right)} \]
** Rozwiązanie ********************************************************************************
\[ \sqrt[\leftroot{2}\uproot{-4} \displaystyle ^{3}]{\frac{27 i}{64}}=\left\{ - \frac{3 i}{4}, \ - \frac{3 \sqrt{3}}{8} + \frac{3 i}{8}, \ \frac{3 \sqrt{3}}{8} + \frac{3 i}{8}\right\}.\]

***********************************************************************************************

Równanie zespolone ze sprzężeniem

Hide code cell source
zadanie = gz.rownanie_ze_sprzezeniem(calkowite=choice([False, True]), kwadratowe=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\n')[2] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
rozwiazanie = zadanie[1].replace('$ \\\\ \n$', ' $ ').replace('$\\\\\n$', ' $ ').replace('$ \\\\\n$', ' $ ').split('$')
for i in range(1, len(rozwiazanie) - 1):
    display(Latex('$$' + rozwiazanie[i] + '$$'))
zadanie_2 = zadanie
** Zadanie ************************************************************************************

Rozwiązać równanie w zbiorze liczb zespolonych

\[ z \left(6 + 4 i\right) + \left(4 - 5 i\right) \overline{z} - 3 - 3 i = 0\]
** Rozwiązanie ********************************************************************************
\[\left(4 - 5 i\right) \left(x - i y\right) + \left(6 + 4 i\right) \left(x + i y\right) - 3 - 3 i = 0, \]
\[ x \left(10 - i\right) + y \left(-9 + 2 i\right) - 3 - 3 i = 0, \]
\[\begin{split} \left\{ \begin{array}{c} 10 x - 9 y - 3 = 0\\ - x + 2 y - 3 = 0 \end{array} \right. \end{split}\]
\[ z = \left\{ x : 3, \ y : 3\right\}.\]

Obszar zespolony

Hide code cell source
zadanie = gz.obszar_zespolony(typ=choice([1, 2, 3, 4, 5]), nr_zadania=1234)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$$\\begin{gather*}' + zadanie[1].split('{gather*}')[1] + '{gather*}$$'))
display(Markdown(f'![](./pics//obszar1234.png)'))
zadanie_4 = zadanie
** Zadanie ************************************************************************************

Zaznaczyć na płaszczyźnie zespolonej obszar spełniający warunek

\[ \left|z+3 - i\right| \leq \sqrt{2} \]
** Rozwiązanie ********************************************************************************
\[\begin{gather*} \left(x + 3\right)^{2} + \left(y - 1\right)^{2}\leq2 \end{gather*}\]

Działania w różnych postaciach

zadanie = gz.dzialania_zespolone()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
print("\033[34m*\033[0m" * 95)
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$$' + zadanie[1].split('$')[1] + '$$'))
print("\033[32m*\033[0m" * 95)
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Obliczyć

\[ \frac{\left(2 + \frac{2 \sqrt{3} i}{3}\right)\left(3 + 3 \sqrt{3} i\right)}{-1 + \frac{\sqrt{3} i}{3}} + \frac{4\left(\cos\left(\frac{5 \pi}{6}\right) + i \, \sin\left(\frac{5 \pi}{6}\right)\right)\cdot 2\left(\cos\left(\frac{\pi}{6}\right) + i \, \sin\left(\frac{\pi}{6}\right)\right)}{2\left(\cos\left(\pi\right) + i \, \sin\left(\pi\right)\right)} - \frac{3\,e^{0\, i}\cdot 4\,e^{- \frac{\pi}{2}\, i}}{3\,e^{- \frac{5 \pi}{6}\, i}}. \]

Wynik zapisać w postaci algebraicznej, trygonometrycznej i wykładniczej.

***********************************************************************************************
** Rozwiązanie ********************************************************************************
\[8 - 8 \sqrt{3} i, \qquad 16 \left(\cos\left(- \frac{\pi}{3}\right) + i\,\sin\left(- \frac{\pi}{3}\right)\right), \qquad 16 e^{- \frac{\pi}{3}\,i}\]
***********************************************************************************************

Macierze

Wyznacznik

zadanie = gz.wyznacznik(wymiar=choice([4,5,6]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:30].replace('A', '*A*')))
display(Latex(zadanie[0][30:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace("$", "$$")))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć wyznacznik macierzy A

\[\begin{split} \textnormal{A=} \left[\begin{matrix}2 & 3 & 3 & 0\\3 & 1 & 0 & 0\\1 & 3 & -2 & 0\\0 & 3 & 3 & 0\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det(A)= 0\]

Równanie macierzowe

Hide code cell source
print("\033[34m** Zadanie **" + '*' * 81 + '\033[0m')
zadanie = gz.rownanie_macierzowe()
display(Markdown(zadanie[0].split(':')[0]))
display(Latex(zadanie[0].split(':')[1]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace('$ \\\\ \n\t$', ',\\quad ').replace('$', '$$')))
zadanie_3 = zadanie
** Zadanie ***********************************************************************************

Rozwiązać równanie

\[\begin{split} \left[\begin{matrix}2 & 0 & 0 & 1 & 0\\1 & 2 & -1 & 0 & 0\end{matrix}\right]\cdot \left[\begin{matrix}1 & 0 & 0 & -2 & 1\\-2 & 0 & -1 & 0 & -2\end{matrix}\right]^T + 3X= \left[\begin{matrix}1 & 1\\1 & 2\\1 & -1\\0 & -1\\1 & 1\end{matrix}\right]^T \cdot \left[\begin{matrix}-2 & 0\\-2 & -2\\0 & -2\\0 & -1\\-1 & 0\end{matrix}\right] \cdot X \end{split}\]
** Rozwiązanie ********************************************************************************
\[\begin{split} \left[\begin{matrix}0 & -4\\1 & -1\end{matrix}\right] + 3X= \left[\begin{matrix}-5 & -4\\-7 & -1\end{matrix}\right] \cdot X, \quad \left[\begin{matrix}0 & -4\\1 & -1\end{matrix}\right] = \left[\begin{matrix}-8 & -4\\-7 & -4\end{matrix}\right] \cdot X ,\quad X=\frac{1}{4}\left[\begin{matrix}4 & 12\\-8 & -20\end{matrix}\right].\end{split}\]

Wyznacznik z parametrem

Hide code cell source
zadanie = gz.wyznacznik_parametr(wymiar=choice([2, 3, 4]), gotowiec=True)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:91].replace('\\ ', ' ').replace('$', '*')))
display(Latex(zadanie[0][91:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace('$ \\\\ \n\t$', ',\\quad ').replace('$', '$$')))
zadanie_4 = zadanie
** Zadanie ************************************************************************************

Dla jakich rzeczywistych wartości parametru x wyznacznik macierzy A jest różny od zera?

\[\begin{split} \textnormal{A=} \left[\begin{matrix}-2 & x & 1 & 2\\2 & 2 x + 2 & x + 3 & 2\\2 & -3 & -2 & -3\\x - 1 & 0 & -2 & -2\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det A=3 x^{3} - 6 x^{2} + x + 10 \neq 0, \quad x\neq -1, \ \]

Macierz odwrotna z parametrem

Hide code cell source
zadanie = gz.macierz_odwrotna_parametr(wymiar=choice([2, 3, 4]), gotowiec=True)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:79].replace('$', '*')))
display(Latex(zadanie[0][79:].split('W')[0]))
display(Markdown('W' + zadanie[0][79:].split('W')[1].replace('$', '*')))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
rozwiazanie = zadanie[1].replace('$\\\\\n\t$', ' $ ').split('$')
for i in range(1, len(rozwiazanie) - 1):
    display(Latex('$$' + rozwiazanie[i] + '$$'))
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Dla jakich rzeczywistych wartości parametru x macierz A posiada odwrotność?

\[\begin{split} \textnormal{A=}\left[\begin{matrix}-2 & -1 & 4\\-2 & -1 & x + 4\\x + 4 & 4 & 2 x + 3\end{matrix}\right] \end{split}\]

Wyznaczyć macierz odwrotną dla x=-1.

** Rozwiązanie ********************************************************************************
\[\det A=- x^{2} + 4 x\neq 0, \quad x\neq 0\ \textnormal{oraz} \ x\neq 4, \]
\[\begin{split} A(-1)= \left[\begin{matrix}-2 & -1 & 4\\-2 & -1 & 3\\3 & 4 & 1\end{matrix}\right],\ \det A(-1)=-5,\ A^{-1}=- \frac{1}{5}\left[\begin{matrix}-13 & 17 & 1\\11 & -14 & -2\\-5 & 5 & 0\end{matrix}\right].\end{split}\]

Wektor własne

Hide code cell source
zadanie = gz.wartosci_wlasne(wymiar=choice([2, 3, 4]), zespolone=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:51]))
display(Latex(zadanie[0][51:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].split(', \quad')[0].replace("$", "$$")))
display(Markdown("Wartości własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[1] + "$$"))
display(Markdown("Wektory własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[3] + "$$"))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć wartości własne i wektory własne macierzy

\[\begin{split} \textnormal{A=} \left[\begin{matrix}1 & 0\\-1 & 0\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det\left(\lambda \mathbb{I} - A \right) = \lambda^{2} - \lambda\]

Wartości własne

\[ \left\{ 0 : 1, \ 1 : 1\right\}, \]

Wektory własne

\[\begin{split}\left[ \left( 0, \ 1, \ \left[ \left[\begin{matrix}0\\1\end{matrix}\right]\right]\right), \ \left( 1, \ 1, \ \left[ \left[\begin{matrix}-1\\1\end{matrix}\right]\right]\right)\right]\end{split}\]

Rząd macierzy

Hide code cell source
zadanie = gz.rzad_macierzy()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:25].replace('A', '*A*')))
display(Latex(zadanie[0][25:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace("$", "$$")))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć rząd macierzy A

\[\begin{split} \textnormal{A=} \left[\begin{matrix}-2 & 1 & -1 & -1 & 0\\-1 & 2 & 0 & 0 & 1\\-2 & 2 & 0 & 0 & 2\\0 & 2 & 1 & 1 & -2\\2 & -1 & 1 & 1 & -2\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[R(A)= 4\]

Diagonalizacja macierzy

Hide code cell source
zadanie = gz.diagonalizacja_macierzy(choice([2, 3, 4]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:53]))
display(Latex(zadanie[0][53:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].split(', \quad')[0].replace("$", "$$")))
display(Markdown("Wartości własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[1] + "$$"))
display(Markdown("Wektory własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[3] + "$$"))
display(Markdown("Diagonalizacja:"))
try:
    display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[5]
                  + '\quad ' + (zadanie[1].split(', \quad')[1]).split("$")[7] + "$$"))
except Exception:
    display(Markdown("Macierz nie jest diagonalizowalna"))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Przeprowadzić diagonalizację macierzy (jeśli możliwa)

\[\begin{split} \textnormal{A=} \left[\begin{matrix}1 & -2\\-1 & 0\end{matrix}\right] \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det\left(\lambda \mathbb{I} - A \right) = \lambda^{2} - \lambda - 2\]

Wartości własne

\[ \left\{ -1 : 1, \ 2 : 1\right\}, \]

Wektory własne

\[\begin{split}\left[ \left( -1, \ 1, \ \left[ \left[\begin{matrix}1\\1\end{matrix}\right]\right]\right), \ \left( 2, \ 1, \ \left[ \left[\begin{matrix}-2\\1\end{matrix}\right]\right]\right)\right]\end{split}\]

Diagonalizacja:

\[\begin{split}A = P\,D\,P^{-1}: \quad P=\left[\begin{matrix}1 & -2\\1 & 1\end{matrix}\right],\quad D=\left[\begin{matrix}-1 & 0\\0 & 2\end{matrix}\right]\end{split}\]

Diagonalizacja z wielokrotnymi wartościami własnymi

Hide code cell source
zadanie = gz.diagonalizacja_macierzy_z_wielokrotnym_wartosciami_wlasnymi(choice([2, 3, 4]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0][:39]))
display(Latex(zadanie[0][39:]))
print("\033[34m*\033[0m" * 95)
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].split(', \quad')[0].replace("$", "$$")))
display(Markdown("Wartości własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[1] + "$$"))
display(Markdown("Wektory własne"))
display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[3] + "$$"))
display(Markdown("Diagonalizacja:"))
try:
    display(Latex("$$" + (zadanie[1].split(', \quad')[1]).split("$")[5]
                  + '\quad ' + (zadanie[1].split(', \quad')[1]).split("$")[7] + "$$"))
except Exception:
    display(Markdown("Macierz nie jest diagonalizowalna"))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Przeprowadzić diagonalizację macierzy

\[\begin{split} \textnormal{A=} \left[\begin{matrix}-1 & 0 & -2\\0 & -1 & -2\\0 & 0 & 1\end{matrix}\right] \end{split}\]
***********************************************************************************************
** Rozwiązanie ********************************************************************************
\[\det\left(\lambda \mathbb{I} - A \right) = \lambda^{3} + \lambda^{2} - \lambda - 1\]

Wartości własne

\[ \left\{ -1 : 2, \ 1 : 1\right\}, \]

Wektory własne

\[\begin{split}\left[ \left( -1, \ 2, \ \left[ \left[\begin{matrix}1\\0\\0\end{matrix}\right], \ \left[\begin{matrix}0\\1\\0\end{matrix}\right]\right]\right), \ \left( 1, \ 1, \ \left[ \left[\begin{matrix}-1\\-1\\1\end{matrix}\right]\right]\right)\right]\end{split}\]

Diagonalizacja:

\[\begin{split}A = P\,D\,P^{-1}: \quad P=\left[\begin{matrix}1 & 0 & -1\\0 & 1 & -1\\0 & 0 & 1\end{matrix}\right],\quad D=\left[\begin{matrix}-1 & 0 & 0\\0 & -1 & 0\\0 & 0 & 1\end{matrix}\right]\end{split}\]

Regresja

zadanie = gz.regresja(stopien=1, nr_zadania=1234)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\', '')))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
temp = zadanie[1].split('_L')[0].split('[\n\t\t')[1] + '_L'
display(Latex(f'$${temp}$$'))
display(Latex(f"$${zadanie[1].split('_L')[1][12:].split('raisebox')[0][:-11]}$$"))
display(Markdown(f'![](./pics//regresja1234.png)'))
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć prostą regresji dla punktów

\[ (2,1),\ (1,2),\ (-2,0),\ (5,3),\ (4,4). \]
** Rozwiązanie ********************************************************************************
\[\begin{split}\left[\begin{matrix}2 & 1\\1 & 1\\-2 & 1\\5 & 1\\4 & 1\end{matrix}\right] \cdot \left[\begin{matrix} a \\ b \end{matrix}\right] \simeq \left[\begin{matrix}1\\2\\0\\3\\4\end{matrix}\right] \quad \Biggm/ \cdot \left(\left(A^T A \right)^{-1} A^T \right)_L\end{split}\]
\[\begin{split}\left[\begin{matrix} a \\ b \end{matrix}\right] = \left[\begin{matrix} \frac{1}{2} \\ 1 \end{matrix}\right]\end{split}\]

Układy równań liniowych

Układ Cramera

Hide code cell source
zadanie = gz.uklad_Cramera(choice([3]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].split('$')[0] +
                 '*' + zadanie[0].split('$')[1].split('$')[0] + '*'))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace('$ \\\\ \n\t$', ',\\quad ').replace('$', '$$')))
zadanie_1 = zadanie
** Zadanie ************************************************************************************

Z układu równań wyznaczyć niewiadomą x

\[\begin{split} \left\{ \begin{matrix} - x + 4 y - 3 z = 0 \\ x + y = 1 \\ - 2 y + 3 z = 1 \\ \end{matrix} \right. \end{split}\]
** Rozwiązanie ********************************************************************************
\[\det(A) = -9,\ \det(A_x)=-3,\ x = \frac{1}{3}\]

Układ nieoznaczony

Hide code cell source
zadanie = gz.uklad_rownan_nieoznaczony()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0].replace('\\ ', ' ')))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].replace('$ \\\\ \n\t$', ',\\quad ').replace('$', '$$')))
zadanie_2 = zadanie
** Zadanie ************************************************************************************

Rozwiązać układ równań. Jeśli możliwe podać trzy przykładowe rozwiązania. Jedno rozwiązanie sprawdzić.

\[\begin{split} \left\{ \begin{matrix} 3 t + 2 x + 2 y - 6 z = 8 \\ 2 t + x + y - 3 z = 5 \\ 3 t + 2 x + y - 5 z = 6 \\ 2 t + 2 x + y - 5 z = 4 \\ - t - 2 x + 4 z = 0 \\ \end{matrix} \right. \end{split}\]
** Rozwiązanie ********************************************************************************
\[\left\{ t = 2, \ x = 2 z - 1, \ y = z + 2\right\}\]

Geometria analityczna

Równanie prostej

Hide code cell source
zadanie = gz.rownanie_prostej()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
display(Latex('$$' + (zadanie[0].split('\n\t')[6]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_3 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć równanie prostej przechodzącej przez punkty

\[ P_1 = (4, 5, 5), \quad P_2 = (1, 1, -3).\]

Obliczyć odległość wyznaczonej prostej od punktu

\[ P_3 = (4, 5, 5).\]
** Rozwiązanie ********************************************************************************
\[l\colon \frac{x - 4}{-3}= \frac{y - 5}{-4}= \frac{z - 5}{-8}; \qquad d(P_3,l) = 0\]

Równanie płaszczyzny

Hide code cell source
zadanie = gz.rownanie_plaszczyzny()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
display(Latex('$$' + (zadanie[0].split('\n\t')[6]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć równanie płaszczyzny przechodzącej przez punkty

\[ P_1 = (-2, 1, 0), \quad P_2 = (1, 3, 1), \quad P_3 = (3, 1, 5).\]

Obliczyć odległość wyznaczonej płaszczyzny od punktu

\[ P_4 = (4, 3, 4).\]
** Rozwiązanie ********************************************************************************
\[\pi\colon 10 x - 10 y - 10 z + 30=0; \qquad d(P_4,\pi) = 0\]

Punkty symetryczny do płaszczyzny

Hide code cell source
zadanie = gz.punkt_symetryczny_do_plaszczyzny()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
display(Latex('$$' + (zadanie[0].split('\n\t')[6]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown(zadanie[1].split('$')[0]))
display(Latex('$$' + zadanie[1].split('$')[1] + '$$'))
display(Markdown(zadanie[1].split('$')[4][2:]))
display(Latex('$$' + zadanie[1].split('$')[5] + ' \quad ' + zadanie[1].split('$')[3] + '$$'))
display(Markdown(zadanie[1].split('$')[6][6:]))
display(Latex('$$' + zadanie[1].split('$')[7] + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć punkt symetryczny do punktu

\[ P = (5, 3, 1)\]

względem płaszczyzny

\[ \pi\colon 2 x + y + z + 4 = 0.\]
** Rozwiązanie ********************************************************************************

Prosta prostopadła:

\[ \frac{x - 5}{2}= \frac{y - 3}{1}= \frac{z - 1}{1}= t,\]


Punkt przecięcia to:

\[P_p =(-1,0,-2), \quad t_p=-3\]

Punkt symetryczny to:

\[P_s = (-7,-3,-5)\]

Punkty symetryczny do prostej

Hide code cell source
zadanie = gz.punkt_symetryczny_do_prostej()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4]))
display(Latex('$$' + (zadanie[0].split('\n\t')[6]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown(zadanie[1].split('$')[0]))
display(Latex('$$' + zadanie[1].split('$')[1].split('\\quad')[0] + '$$'))
display(Markdown(zadanie[1].split('$')[2][8:]))
display(Latex('$$' + zadanie[1].split('$')[3] + ' \quad ' + zadanie[1].split('$')[1].split('\quad')[1] + '$$'))
display(Markdown(zadanie[1].split('$')[4][12:]))
display(Latex('$$' + zadanie[1].split('$')[5] + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć punkt symetryczny do punktu

\[ P = (-3, -1, 3)\]

względem prostej

\[ l\colon \frac{x - 5}{3}= \frac{y - 1}{1}= \frac{z - 4}{2}.\]
** Rozwiązanie ********************************************************************************

Płaszczyzna prostopadła:

\[\pi\colon 3 x + y + 2 z + 4 = 0, \]

Punkt przecięcia to:

\[P_p =(-1,-1,0), \quad t_p=-2\]

Punkt symetryczny to:

\[P_s = (1,-1,-3)\]

Proste skośne

Hide code cell source
zadanie = gz.odleglosc_prostych_skosnych()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Latex('$$' + (zadanie[0].split('\n\t')[3]) + '$$'))
display(Markdown(zadanie[0].split('\n\t')[4][3:]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown('Płaszczyzna zawierająca *l<sub>2</sub>* i równoległa do *l<sub>1</sub>* to'))
display(Latex('$$' + (zadanie[1].split('$')[5]) + '$$'))
display(Markdown('Odległość prostych skośnych to'))
display(Latex('$$' + (zadanie[1].split('$')[7]) + '$$'))
display(Markdown('Punkty realizujące minimalną odległość to'))
display(Latex('$$' + (zadanie[1].split('$')[9]).replace('\\ ', '\qquad ') + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć odległość prostych skośnych

\[ l_1\colon \frac{x + 2}{-3}=\frac{y - 1}{-1}=\frac{z + 1}{4}, \quad \]
\[ l_2\colon \frac{x - 3}{3}=\frac{y - 4}{2}=\frac{z - 4}{-2}.\]

Wyznaczyć punkty realizujące minimalną odległość.

** Rozwiązanie ********************************************************************************

Płaszczyzna zawierająca l2 i równoległa do l1 to

\[\pi\colon - 6 x + 6 y - 3 z + 6=0\]

Odległość prostych skośnych to

\[d(l_1,l_2)=3;\]

Punkty realizujące minimalną odległość to

\[ P_3=(-11,-2,11),\qquad P_4=(-9,-4,12)\]

Kąty w trójkącie

Hide code cell source
zadanie = gz.katy_w_trojkacie(prosty=choice([False, True]), calkowite=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown('Wyznaczyć miary kątów wewnętrznych trójkąta *ABC*, gdzie'))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown('Sprawdzić, czy sumują się do 180\u00b0'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_4 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć miary kątów wewnętrznych trójkąta ABC, gdzie

\[ A = (-2, 5, -1),\ B = (5, 4, -1),\ C = (5, 4, 1)\]

Sprawdzić, czy sumują się do 180°

** Rozwiązanie ********************************************************************************
\[\alpha \approx 15.79^{\circ},\ \beta = 90.00^{\circ},\ \gamma \approx 74.21^{\circ}.\]

Iloczyn wektorowy

Hide code cell source
zadanie = gz.iloczyn_wektorowy(ladne=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('$')[0]))
display(Latex('$$' + (zadanie[0].split('$')[1]) + ', \quad ' + (zadanie[0].split('$')[3]) + '$$'))
display(Markdown('(a) Obliczyć ich iloczyn wektorowy i jego długość.'))
display(Markdown('(b) Sprawdzić, czy wyznaczony iloczyn jest prostopadły do zadanych wektorów.'))
display(Markdown('(c) Wyznaczyć kąt między zadanymi wektorami.'))
display(Markdown('(d) Używając kąta między wektorami obliczyć długość iloczynu wektorowego i porównać z (a).'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$ \quad ' + zadanie[1].split('\\newline')[0][1:] + '$'))
display(Latex('$' + zadanie[1].split('\\newline')[1] + '$'))
display(Latex('$' + zadanie[1].split('\\newline')[2] + '$'))
display(Latex('$' + zadanie[1].split('\\newline')[3][:-1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Niech dane będą wektory

\[\vec{u}=[-1, 2, 5], \quad \vec{v}=[5, -1, -2].\]

(a) Obliczyć ich iloczyn wektorowy i jego długość.

(b) Sprawdzić, czy wyznaczony iloczyn jest prostopadły do zadanych wektorów.

(c) Wyznaczyć kąt między zadanymi wektorami.

(d) Używając kąta między wektorami obliczyć długość iloczynu wektorowego i porównać z (a).

** Rozwiązanie ********************************************************************************
\[ \quad \textbf{(a)}\ \vec{u}\times\vec{v}=[1, 23, -9], |\vec{u}\times\vec{v}|=\sqrt{611}, \quad \textbf{(b)} \ \vec{u}\circ (\vec{u}\times \vec{v}) = 0, \vec{v}\circ (\vec{u}\times \vec{v}) = 0,\]
\[ \quad \textbf{(c)} \ \angle (\vec{u},\vec{v})=\arccos{\frac{-17}{\sqrt{30}\cdot \sqrt{30}} }= 124.518107841061^{\circ} ,\]
\[ \quad \textbf{(d)} \ |\vec{u}\times\vec{v}|=\sqrt{30}\cdot\sqrt{30}\cdot\sin{124.518107841061^{\circ}}=24.7184141886319,\]
\[ \quad \textbf{(d')}\ |\vec{u}\times\vec{v}|=\sqrt{30}\cdot\sqrt{30}\cdot \sqrt{1-\frac{289}{900}}=\sqrt{611} \]

Pole trójkąta

Hide code cell source
zadanie = gz.pole_trojkata(calkowite=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(
    f'Wyznaczyć pole  trójkąta *ABC* oraz długość wysokości opuszczonej z wierzchołka *{zadanie[0].split("ka ")[1].split(" dla")[0]}*' + ' dla'))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1].replace('\\ \\', '\qquad') + '$'))
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć pole trójkąta ABC oraz długość wysokości opuszczonej z wierzchołka C dla

\[ A = (4, -3, -2),\ B = (4, -3, -1),\ C = (-3, -3, 2)\]
** Rozwiązanie ********************************************************************************
\[P=\frac{7}{2},\qquad h_C=7\]

Płaszczyzna styczna

Hide code cell source
zadanie = gz.plaszczyzna_styczna()
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(
    f'Wyznaczyć płaszczyznę styczną do powierzchni'))
display(Latex('$$' + (zadanie[0].split('$$')[1]) + '$$'))
display(Markdown('w punkcie'))
display(Latex('$' + zadanie[0].split('punkcie ')[1] + '$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1].replace('\\ \\', '\qquad') + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Wyznaczyć płaszczyznę styczną do powierzchni

\[f(x,y)=\frac{\sqrt{4 x^{2} - y^{2} + 1}}{2 x - y}\]

w punkcie

\[P=(3,-1,f(3,-1)).\]
** Rozwiązanie ********************************************************************************
\[z = \frac{2 x}{49} + \frac{43 y}{294} + \frac{37}{42}\]

Granice

Granice ciągów

Hide code cell source
zadanie = gz.granica_ciagu(typ=choice([0, 1, 2, 3]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_1 = zadanie
** Zadanie ************************************************************************************

Obliczyć granicę

\[ \lim\limits_{n \rightarrow \infty} \frac{3 - 3 n}{\sqrt{n^{2} - 3 n - 1}} \]
** Rozwiązanie ********************************************************************************
\[-3\]

Granice funkcji

Hide code cell source
zadanie = gz.granica_funkcji(typ=2)  # typ=choice(range(12))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_2 = zadanie
** Zadanie ************************************************************************************

Obliczyć granicę

\[ \lim\limits_{{x \rightarrow 1^{+}}} \frac{\ln{\left(x \right)}}{\sqrt{x^{2} - 1}} \]
** Rozwiązanie ********************************************************************************
\[0\]

Asymptoty

zadanie = zadanie = gz.asymptoty(typ=choice(range(1,11)))  # typ=choice(range(1,11))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex(zadanie[1].split('\\\\')[0]))
for i in range(1,len(zadanie[1].split('\\\\'))):
    display(Markdown((zadanie[1].split('\\\\')[i].split('$')[0])))
    display(Latex('$' + zadanie[1].split('\\\\')[i].split('$')[1] + '$'))
zadanie_3 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć wszystkie asymptoty funkcji

\[ f(x)= 2 x e^{\frac{1}{x}}.\]
** Rozwiązanie ********************************************************************************
\[D_f\colon \mathbb{R} \setminus \left\{0\right\}.\]

Asymptota pionowa prawostronna w

\[x_0=0.\]

Asymptota ukośna w plus i minus nieskończoności o równaniu

\[y=2 x + 2.\]

Styczna i normalna

Hide code cell source
zadanie = gz.styczna_normalna(typ=choice([1, 2]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
display(Markdown('w punkcie o współrzędnej'))
display(Latex('$ x_0' + zadanie[0].split('x_0')[1]))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown('Prosta styczna: '))
display(Latex('$$' + zadanie[1].split('$')[1][:-1] + '$$'))
display(Markdown('Prosta normalna: '))
display(Latex('$$' + zadanie[1].split('$')[3] + '$$'))
zadanie_4 = zadanie
** Zadanie ************************************************************************************

Wyznaczyć równanie stycznej i normalnej do wykresu funkcji

\[ f(x) = \frac{4 x - 2}{4 x^{2} + 4 x + 2}\]

w punkcie o współrzędnej

\[ x_0 = -1.\]
** Rozwiązanie ********************************************************************************

Prosta styczna:

\[y = - 4 x - 7\]

Prosta normalna:

\[y = \frac{x}{4} - \frac{11}{4}\]

Monotonicznoźć

Hide code cell source
zadanie = gz.monotonicznosc(choice([1, 2, 3]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown('$$' + zadanie[1].split('$')[1] + '$$'))
display(Markdown('$$' + zadanie[1].split('$')[5].split('\\implies')[0] + '\\implies' + '$$'))
display(Markdown('$$' + '\\implies' + zadanie[1].split('$')[5].split('\\implies')[1] + '$$'))
display(Markdown('$$' + zadanie[1].split('$')[7].split('\\implies')[0] + '\\implies' + '$$'))
display(Markdown('$$' + '\\implies' + zadanie[1].split('$')[7].split('\\implies')[1] + '$$'))
display(Markdown('$$' + zadanie[1].split('$')[9].replace('\\left\\{', '\\left\\lbrace').replace('\\right\\}',
                                                                                                '\\right\\rbrace') + '$$'))
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Zbadać monotoniczność i ekstrema funkcji

\[ f(x)=\frac{- x^{2} - 2 x + 1}{4 x - 2} \]
** Rozwiązanie ********************************************************************************

$$D_f\colon \mathbb{R}\setminus \left{\frac{1}{2}\right}$$

$$f’(x) > 0 \textnormal{ dla: }x > 0 \wedge x < 1 \wedge x \neq \frac{1}{2} \implies$$

$$\implies f(x) \textnormal{ jest rosnąca dla } x \in \left(0,\frac{1}{2} \right)\textnormal{ oraz } x \in \left(\frac{1}{2},1 \right) $$

$$f’(x) < 0 \textnormal{ dla: }1 < x \vee x < 0 \implies$$

$$\implies f(x) \textnormal{ jest malejąca dla } x \in \left( -\infty, 0 \right)\textnormal{ oraz } x \in \left(1, \infty \right) $$

$$f’(x) = 0 \textnormal{ dla } x \in \left\lbrace 0, \ 1\right\rbrace \implies f_{\min}\left(0\right) = - \frac{1}{2} \textnormal{ oraz } f_{\max}\left(1\right) = -1$$

zadanie_5 = gz.asymptoty(typ=6)
zadanie_5
('Wyznaczyć wszystkie asymptoty funkcji\n\t\\[\n\t\tf(x)= \\frac{x - e^{x}}{2 x - 1}.\n\t\\]\n',
 '$D_f\\colon \\mathbb{R}\\setminus \\left\\{\\frac{1}{2}\\right\\}.$\\\\Asymptota pionowa dwustronna w $x_0=\\frac{1}{2}.$ \\\\Asymptota pozioma w minus nieskończoności o równaniu $y=\\frac{1}{2}.$ ')

Całki nieoznaczone

Przez podstawianie i przez części

Hide code cell source
zadanie = gz.calka_nieoznaczona(typ=choice([1, 2, 3, 4]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$$' + zadanie[1].split('=')[1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć całkę

\[ \int \frac{4}{\left(5 x + 2\right)^{3}} \, dx \]
** Rozwiązanie ********************************************************************************
\[ - \frac{2}{5 \left(5 x + 2\right)^{2}} + C\]

Wymierne

Hide code cell source
zadanie = gz.calka_wymierna(wlasciwy=choice([False, True]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n\t')[0]))
display(Latex('$$' + (zadanie[0].split('\n\t')[2]) + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1] + '$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć całkę

\[ \int \frac{- 3 x^{2} - 24}{x^{4} - 4 x^{3} - 12 x^{2} + 32 x + 64} \, dx \]
** Rozwiązanie ********************************************************************************
\[\int \left(- \frac{1}{\left(x + 2\right)^{2}} - \frac{2}{\left(x - 4\right)^{2}}\right)\,dx = \frac{3 x}{x^{2} - 2 x - 8} + C\]

Całki oznaczone

Pole obszaru

Hide code cell source
zadanie = gz.pole_obszaru(typ=choice([1, 2, 3, 4, 5]))
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].replace('\\[', '$$').replace('\\]', '$$')))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Markdown(zadanie[1].replace('$', '$$').replace('\,', '')))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć pole obszaru ograniczonego wykresami krzywych $$ f(x) = - 2 x^{2} - x - 3 \quad \textnormal{ oraz } \quad g(x) = - x^{2} + 4 x - 3 $$

** Rozwiązanie ********************************************************************************

Pole obszaru to $$\int\limits_{-5}^{0}\left(- x^{2} - 5 x\right)dx = \frac{125}{6}$$

Całki podwójne

Po trójkącie

Hide code cell source
zadanie = gz.calka_podwojna(typ=1, nr_zadania=1234)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].replace('\\,', '').replace('$', '*', ).replace('**', '$$', 2)))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
img1 = open(f'pics/calka_podwojna1234x.png', 'rb').read()
wi1 = widgets.Image(value=img1, format='jpg', width=300, height=400)
img2 = open(f'pics/calka_podwojna1234y.png', 'rb').read()
wi2 = widgets.Image(value=img2, format='jpg', width=300, height=400)
a = [wi1, wi2]
wid = widgets.HBox(a)
display(wid)
print(len(zadanie[1].split('$')))
if len(zadanie[1].split('$')) == 5:
    display(Markdown(f'Względem *{zadanie[1].split("$")[1]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[3].split('$')[0] + '$$'))
else:
    display(Markdown(f'Względem *{zadanie[1].split("$")[1]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[3].split('$')[0] + '$$'))
    display(Markdown(f'Względem *{zadanie[1].split("$")[5]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[7].split('$')[0] + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć $$\iint\limits_D\left(3 x - y\right)dxdy$$ gdzie D - trójkąt ABC dla A=(0,1), B=(3,0), C=(0,3)

** Rozwiązanie ********************************************************************************
9

Względem Ox:

$$\int\limits_{0}^{3}\left(\int\limits_{1 - \frac{x}{3}}^{3 - x}\left(3 x - y\right)dy\right)dx =\ldots=\int\limits_{0}^{3}\left(- \frac{22 x^{2}}{9} + \frac{26 x}{3} - 4\right)dx = \ldots = 5$$

Względem Oy:

$$\int\limits_{0}^{1}\left(\int\limits_{3 - 3 y}^{3 - y}\left(3 x - y\right)dx\right)dy + \int\limits_{1}^{3}\left(\int\limits_{0}^{3 - y}\left(3 x - y\right)dx\right)dy =\ldots=\int\limits_{0}^{1}\left( - 14 y^{2} + 18 y \right)dy + \int\limits_{1}^{3}\left( \frac{5 y^{2}}{2} - 12 y + \frac{27}{2} \right)dy = \ldots = 5$$

Po obszarze ograniczonym krzywymi

Hide code cell source
zadanie = gz.calka_podwojna(typ=2, nr_zadania=1111)  # nr by wykluczyć zduplikowanie wykresu
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(
    zadanie[0].split('krzywymi')[0].replace('\\,', '').replace('$', '*', ).replace('**', '$$', 2) + 'krzywymi'))
display(Markdown('$$' + zadanie[0].split('$')[7] + '\\quad \\text{' + zadanie[0].split('$')[8][1:] + '} \\quad ' +
                 zadanie[0].split('$')[9] + '$$'))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
img1 = open(f'pics/calka_podwojna1111x.png', 'rb').read()
wi1 = widgets.Image(value=img1, format='jpg', width=300, height=400)
img2 = open(f'pics/calka_podwojna1111y.png', 'rb').read()
wi2 = widgets.Image(value=img2, format='jpg', width=300, height=400)
a = [wi1, wi2]
wid = widgets.HBox(a)
display(wid)
print(len(zadanie[1].split('$')))
if len(zadanie[1].split('$')) == 5:
    display(Markdown(f'Względem *{zadanie[1].split("$")[1]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[3].split('$')[0] + '$$'))
else:
    display(Markdown(f'Względem *{zadanie[1].split("$")[1]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[3].split('$')[0] + '$$'))
    display(Markdown(f'Względem *{zadanie[1].split("$")[5]}*'))
    display(Markdown('$$' + zadanie[1].split('$')[7].split('$')[0] + '$$'))
zadanie_nr = zadanie
** Zadanie ************************************************************************************

Obliczyć $$\iint\limits_D\left(2 - 3 x\right)dxdy$$ gdzie D - obszar ograniczony krzywymi

$$x=1 - y^{2}\quad \text{ oraz } \quad x=3 y - 3$$

** Rozwiązanie ********************************************************************************
5

Względem Oy:

$$\int\limits_{-4}^{1}\left(\int\limits_{3 y - 3}^{1 - y^{2}}\left(2 - 3 x\right)dx\right)dy =\ldots=\int\limits_{-4}^{1}\left(- \frac{3 y^{4}}{2} + \frac{29 y^{2}}{2} - 33 y + 20\right)dy = \ldots = \frac{2125}{6}$$

Szeregi Fouriera

zadanie = gz.szereg_Fouriera(
    typ_l=choice([0, 1, 2, 3, 4]),
    typ_p=choice([0, 1, 2, 3, 4]),
    bez_wykresu=True,
    tylko_koncowy=True,
    nr_zadania=123)
print(f"\033[34m** Zadanie **" + '*' * 82 + '\033[0m')
display(Markdown(zadanie[0].split('\n')[0]))
display(Latex('$$' + zadanie[0].split('\[')[1].split('\]')[0] + '$$'))
display(Markdown(zadanie[0].split('\n')[7].replace('$', '$$')))
print("\033[32m** Rozwiązanie **" + '*' * 78 + '\033[0m')
display(Latex('$' + zadanie[1].split('$')[1] + '$'))
display(Latex('$' + zadanie[1].split('$')[3] + '$'))
display(Markdown(f'![](./pics//szereg_Fouriera_{123}_funkcja.png)'))
display(Markdown(f'![](./pics//szereg_Fouriera_{123}_inf.png)'))
zadanie_5 = zadanie
** Zadanie ************************************************************************************

Rozwinąć w szereg Fouriera funkcję

\[\begin{split} f(x)=\left\{\begin{matrix} \cos{\left(x \right)} & \textnormal{ dla } & x\in\left[- \pi,0\right)\\ - \cos{\left(x \right)} & \textnormal{ dla } & x\in\left[0,\pi\right) \end{matrix}\right. \end{split}\]

o okresie zasadniczym $$2T=2 \pi.$$ Naszkicować wykres funkcji, do której zbieżny jest uzyskany szereg.

** Rozwiązanie ********************************************************************************
\[\begin{split}a_0=0,\quad a_n=0,\quad b_n=\frac{\begin{cases} \frac{2 n \left(\left(-1\right)^{n + 1} - 1\right)}{n^{2} - 1} & \text{for}\: n > 1 \\0 & \text{otherwise} \end{cases}}{\pi},\end{split}\]
\[S(x) = - \frac{8 \sin{\left(2 x \right)}}{3 \pi} - \frac{16 \sin{\left(4 x \right)}}{15 \pi} + \dots \]


Ustaw nazwy

Wskazówka

Nazwy mogą być puste, tzn. ‘’. Nie wszystkie, bo na ich podstawie tworzona jest nazwa pliku.

‘kolor_odpowiedzi’ jest ważny dla pliku tex:

  • ‘red’ - odpowiedzi ukryte, ale dostępne po kliknięciu,

  • ‘white’ - ukrywa, ale zostawia miejsce,

  • ‘brak’ - ukrywa i chowa miejsce,

  • dla innych kolorów odpowiedzi są pokazywane, ale można je ukryć po kliknięciu.

Dlatego potrzebna jest dwukrotna kompilacja i potrzebny jest czytnik pdf z obsługą warst i JavaScript. Zalecam Adobe Acrobat Reader

# bez podkreśleń !!! bo są błędy w kompilacji z podkreśleniami
kierunek = 'OC'  # np. AiR  
grupa = ''  # np. Grupa-11
przedmiot = 'Matematyka 1'  # np. Algebra
semestr = 'Sem 1'  # np. Semestr-1 
kolokwium = 'Kolokwium nr 2'  # np. Kolokwium nr 2
data = '30 stycznia 2025'  # tego już w nazwie pliku nie będzie
kolor_odpowiedzi = 'blue'

nazwa_pliku = f'{kierunek}-{grupa}-{przedmiot}-{semestr}-{kolokwium}'
nazwa_pliku
'OC--Matematyka 1-Sem 1-Kolokwium nr 2'

Generuj plik LaTeX z wybranych zadań

Wskazówka

Wynik jest gotową zawartością pliku LaTeX.

W mybinder (interaktywna sesja) można skopiować.

Kompilować dwukrotnie pdflatex.

W przypadku zadań z obrazkami trzeba też je pobierać w odpowiednie miejsce.

Lepiej po prostu wygenerować pdf poniżej.

# Wynik jest gotową zawartością pliku LaTeX. Można skopiować i wkleić. 
# Kompilować dwukrotnie pdflatex.
LaTeX_source = gz.generuj_LaTeX(kierunek,
                                grupa,
                                przedmiot,
                                semestr,
                                kolokwium,
                                data,
                                kolor_odpowiedzi,
                                zadanie_1, zadanie_2, zadanie_3, zadanie_4, zadanie_5)
print(LaTeX_source)
% !TeX spellcheck = pl_PL-Polish
\documentclass[a4paper,12pt]{article}
\linespread{1.3} %odstepy miedzy liniami
\usepackage[a4paper, lmargin=2cm, rmargin=2cm, tmargin=2cm, bmargin=2cm]{geometry}
\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{color}
\usepackage{enumitem}
\usepackage{fancyhdr}
\usepackage{float}
\usepackage{graphicx}
\usepackage{ifthen}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage{ocgx}
\usepackage{polski}
\usepackage{tcolorbox}
\tcbuselibrary{most}
\tcbuselibrary{skins}
\tcbuselibrary{raster}
% brak - bez odpowiedzi i bez miejsca, white - bez odpowiedzi z miejscem, red = odpowiedzi ukryte ale dostepne
\newcommand{\kolorodpowiedzi}{blue}
\renewcommand{\footrulewidth}{0.4pt}% linia pozioma na końcu strony - default is 0pt
\DeclareFontShape{OMX}{cmex}{m}{n}
    {<-7.5> cmex7
    <7.5-8.5> cmex8
    <8.5-9.5> cmex9
    <9.5-> cmex10}{}
\DeclareSymbolFont{largesymbols}{OMX}{cmex}{m}{n}


\newcommand{\ukryte}{1}  % domyślnie odpowiedzi są do pokazywania po kliknięciu
\ifthenelse{\equal{\kolorodpowiedzi}{red}}  % ukrywamy od pokazywania gdy kolor jest red
	{\renewcommand{\ukryte}{0}}{}

\newcommand{\zOdpowiedziami}[3]{
	\ifthenelse{\equal{#1}{brak}}{}{
		\ifthenelse{\equal{#1}{white}}{\vphantom{#3}}{
			\switchocg{#2}{\textcolor{\kolorodpowiedzi}{\\Rozwiązanie: }}
				\begin{ocg}{Warstwa odpowiedzi}{#2}{\ukryte}
					\textcolor{\kolorodpowiedzi}{#3}
				\end{ocg}}}}

\pdfinfo{/Author (https://generator-zadan.readthedocs.io)}

\begin{document}
    \pagestyle{fancy}
    \setlength{\headheight}{27.29453pt}
    \fancyhead{}
    \fancyhead[L]{\textbf{OC\\Matematyka 1 - }}
    \fancyhead[R]{\textbf{Kolokwium nr 2\\ 30 stycznia 2025}}
    \fancyfoot{}
    \fancyfoot[R]{\tiny\textbf{10 maja 2025, 19:03}}
%    \hspace{1cm}
    \begin{enumerate}[label= \textbf{Zadanie \arabic*. }, leftmargin=1cm, align=left, itemsep=0pt]
		\item Obliczyć granicę
			\[
				\lim\limits_{n \rightarrow \infty} \frac{3 - 3 n}{\sqrt{n^{2} - 3 n - 1}} 
			\]

			\zOdpowiedziami{\kolorodpowiedzi}{ocg0}
				{$-3$}

		\item Obliczyć granicę
			\[
				\lim\limits_{{x \rightarrow 1^{+}}} \frac{\ln{\left(x \right)}}{\sqrt{x^{2} - 1}} 
			\]

			\zOdpowiedziami{\kolorodpowiedzi}{ocg1}
				{$0$}

		\item Wyznaczyć wszystkie asymptoty funkcji
			\[
				f(x)= 2 x e^{\frac{1}{x}}.
			\]

			\zOdpowiedziami{\kolorodpowiedzi}{ocg2}
				{$D_f\colon \mathbb{R} \setminus \left\{0\right\}.$\\Asymptota pionowa prawostronna w $x_0=0.$ \\Asymptota ukośna w plus i minus nieskończoności o równaniu $y=2 x + 2.$ }

		\item Wyznaczyć równanie stycznej i normalnej do wykresu funkcji
			\[
				f(x) = \frac{4 x - 2}{4 x^{2} + 4 x + 2}
			\]
		 w punkcie $x_0 = -1.$
			\zOdpowiedziami{\kolorodpowiedzi}{ocg3}
				{Styczna: $y = - 4 x - 7,$ \quad
			Normalna: $y = \frac{x}{4} - \frac{11}{4}$}

		\item Rozwinąć w szereg Fouriera funkcję 
			\[
				f(x)=\left\{\begin{matrix}
					\cos{\left(x \right)} & \textnormal{ dla } & x\in\left[- \pi,0\right)\\
					- \cos{\left(x \right)} & \textnormal{ dla } & x\in\left[0,\pi\right)
				\end{matrix}\right.
			\]
		o okresie zasadniczym $2T=2 \pi.$ Naszkicować wykres funkcji, do której zbieżny jest uzyskany szereg.
			\zOdpowiedziami{\kolorodpowiedzi}{ocg4}
				{$a_0=0,\quad a_n=0,\quad b_n=\frac{\begin{cases} \frac{2 n \left(\left(-1\right)^{n + 1} - 1\right)}{n^{2} - 1} & \text{for}\: n > 1 \\0 & \text{otherwise} \end{cases}}{\pi},$\\
				$S(x) = - \frac{8 \sin{\left(2 x \right)}}{3 \pi} - \frac{16 \sin{\left(4 x \right)}}{15 \pi} + \dots $\\
				\includegraphics[width = 224pt]{../pics/szereg_Fouriera_123_funkcja}
				\includegraphics[width = 224pt]{../pics/szereg_Fouriera_123_inf}
			}

    \end{enumerate}
\end{document}

Wskazówka

Poniżej można zapisać gotowy plik na dysku. Można go edytować.
W mybinder można go pobrać w menu po lewej stronie z katalogu wygenerowane. Kompilować dwukrotnie.

if not os.path.exists('wygenerowane'):
    os.makedirs('wygenerowane')
    print(" ! Tworzę katalog wygenerowane ", file=sys.stderr)
with open(f'./wygenerowane/{nazwa_pliku}.tex', 'w',
          encoding='utf-8') as LaTeX_file:
    print(LaTeX_source, file=LaTeX_file)
 ! Tworzę katalog wygenerowane 

Generuj plik Pdf z pliku Latex

Wskazówka

Można wygenerować gotowego pdf-a.

W mybinder (interaktywna sesja) plik pdf jest w menu po lewej. Można pobrać. W mybinder wszystkie pakiety LaTeX-a są zainstalowane. U siebie pewnie trzeba będzie coś doinstalować.

Kompilacja wykonuje się dwukrotnie.

Uwaga

Przy ponownej kompilacji online pliku z taką samą nazwą podgląd pdf-a w przeglądarce może pokazywać poprzednią wersję.

Trzeba wygenerowanego pdf-a pobrać na dysk lokalny i tam go oglądać. Albo podejrzeć niżej pdf-a przetworzonego na jpg.

import subprocess

for i in range(2):
    result = subprocess.run(
        'cd wygenerowane && pdflatex "' + f'{nazwa_pliku}' + '".tex',
        capture_output=True,
        shell=True)

# w razie problemów poniżej można zobaczyć komunikaty
# trzeba odkomentować 

# for i in str(result).split(', '):
#     print(i.replace('\\n', '\n'))

Uwaga

To co widać niżej to jest obraz stworzony z pdf-a. Kolor odpowiedzi jest ‘blue’ - czyli widoczne, do ukrycia po kliknięciu (w pliku pdf). Kolor można zmieniać w pliku tex.

Widoczna jest tylko pierwsza strona.

image = convert_from_path(f'wygenerowane/{nazwa_pliku}.pdf')
image[0].save(f'wygenerowane/{nazwa_pliku}.png')
display(Image(f'wygenerowane/{nazwa_pliku}.png', width=800))
_images/d3f06503de0e9d7b47757d9bdaad17093156dfa54969c0cb0d7c3759bcb56a92.png