Created
June 3, 2023 13:44
-
-
Save okurka12/07b0ae083c6a44fd60265f384be3c4d5 to your computer and use it in GitHub Desktop.
Overeni spravnosti slozeni funkci - zadane funkce pochazi ze zadani prvniho opravneho terminu IMA1 skup. G. Jinak je skript stejny jako muj prechozi gist z unora.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# skripticek na overeni spravnosti slozeni funkci | |
# | |
# (stejne jako muj predchozi gist, | |
# ale napsal jsem tady funkci ze zadani IMA1 2022/2023 G-opravny) | |
# | |
# autor: vitek kvitek 🌻 | |
# datum: 2023-06-03 | |
# funguje v poho s: | |
# windows 11 | |
# python 3.10.7 | |
# numpy 1.23.3 | |
# matplotlib 3.7.1 | |
import matplotlib.pyplot as plt | |
import numpy as np | |
import math | |
def f(x): | |
if -2 <= x <= 0: | |
return 1 + x | |
elif 0 < x <= 2: | |
return 1 - (x / 2) | |
else: | |
return 0 | |
def f_po_f(x): | |
return f(f(x)) | |
def f_po_f_moje(x): | |
if -2 <= x < -1: | |
return x + 2 | |
elif -1 <= x < 0: | |
return -(x / 2) + (1 / 2) | |
elif 0 <= x < 2: | |
return (x / 4) + (1 / 2) | |
else: | |
return 0 | |
# tady funkce na vicenasobne zavolani pro zobrazeni vicero grafu | |
def plot(funkce, od=-2, do=2, n=10000, color="b", nazev="graf"): | |
# n linearne rozprostrenych cisel (np.float64) v mezich od, do | |
xs = np.linspace(od, do, n) | |
# at tam jsou i integery a nebyl problem s porovnavanim v meznich hodnotach x | |
xs = np.append(xs, list(range(od, do + 1))) | |
# obrazy | |
ys = [funkce(x) for x in xs] | |
# bloat aby byly hezky osy uprostred | |
fig = plt.figure() | |
ax = fig.add_subplot(1, 1, 1) | |
ax.spines['left'].set_position('center') | |
ax.spines['bottom'].set_position('zero') | |
ax.spines['right'].set_color('none') | |
ax.spines['top'].set_color('none') | |
ax.xaxis.set_ticks_position('bottom') | |
ax.yaxis.set_ticks_position('left') | |
# popisek grafu | |
ax.set_xlabel(nazev) | |
# jedna instance grafu | |
plt.plot(xs, ys, f"{color}o") | |
def main(): | |
plot(f, nazev="f", color="b") | |
plot(f_po_f_moje, nazev="f po f (moje)", color="g") | |
plot(f_po_f, nazev="f po f", color="r") | |
# ukaze graf (otevre okynko) | |
plt.show() | |
if __name__ == "__main__": | |
main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment