Skip to content

Instantly share code, notes, and snippets.

@UnknownAMD
Last active June 10, 2025 19:28
Show Gist options
  • Save UnknownAMD/d6acadc7a374329c66f69f2265b521f8 to your computer and use it in GitHub Desktop.
Save UnknownAMD/d6acadc7a374329c66f69f2265b521f8 to your computer and use it in GitHub Desktop.
thing
from math import sin, cos, tan, exp, log, sqrt, pow, pi, e
def parse_function(expr):
def f(x):
try:
return eval(expr, {"x": x, "sin": sin, "cos": cos, "tan": tan,
"exp": exp, "log": log, "sqrt": sqrt,
"pow": pow, "pi": pi, "e": e, "__builtins__": None})
except:
return None
return f
def safe_eval(f, x):
try:
return f(x)
except:
return None
def derivative(f, x, h=1e-5, order=1):
fxmh = safe_eval(f, x - h)
fxph = safe_eval(f, x + h)
fx = safe_eval(f, x)
if None in (fxmh, fxph, fx):
return None
if order == 1:
return (fxph - fxmh) / (2 * h)
elif order == 2:
return (fxph - 2 * fx + fxmh) / (h ** 2)
else:
return None
def find_extrema(f, x_min, x_max, steps=1000):
dx = (x_max - x_min) / steps
extrema = []
for i in range(1, steps - 1):
x1 = x_min + (i - 1) * dx
x2 = x_min + i * dx
x3 = x_min + (i + 1) * dx
f1 = safe_eval(f, x1)
f2 = safe_eval(f, x2)
f3 = safe_eval(f, x3)
if None not in (f1, f2, f3):
if f1 > f2 < f3 or f1 < f2 > f3:
extrema.append((x2, f2))
return extrema
def find_intersections(f, x_min, x_max, steps=1000):
dx = (x_max - x_min) / steps
x_intercepts = []
y_intercept = safe_eval(f, 0)
for i in range(1, steps):
x1 = x_min + (i - 1) * dx
x2 = x_min + i * dx
f1 = safe_eval(f, x1)
f2 = safe_eval(f, x2)
if None not in (f1, f2) and f1 * f2 <= 0:
x_intercepts.append((x1 + x2) / 2)
return x_intercepts, y_intercept
def find_asymptotes(f, x_min, x_max, steps=1000, threshold=1e3):
dx = (x_max - x_min) / steps
vertical = []
for i in range(1, steps):
x1 = x_min + (i - 1) * dx
x2 = x_min + i * dx
y1 = safe_eval(f, x1)
y2 = safe_eval(f, x2)
if None not in (y1, y2):
if abs(y1) > threshold and abs(y2) > threshold and y1 * y2 < 0:
vertical.append((x1 + x2) / 2)
return vertical
def print_results(f, x_min, x_max):
print("==== الحساب التفصيلي ====")
print("🧮 المشتقات:")
for x in range(x_min, x_max + 1):
d1 = derivative(f, x, order=1)
d2 = derivative(f, x, order=2)
if d1 is None or d2 is None:
print("x =", x, "| لا يمكن حساب المشتقة")
else:
print("x =", x, "| f'(x) =", round(d1, 5), "| f''(x) =", round(d2, 5))
print("\n📈 نقاط التقاطع مع المحاور:")
x_axis, y_axis = find_intersections(f, x_min, x_max)
print("X-axis:", ["x = " + str(round(x, 4)) for x in x_axis])
if y_axis is None:
print("Y-axis: غير معرف")
else:
print("Y-axis: y =", round(y_axis, 4))
print("\n🎯 نقاط النهاية (القيم القصوى):")
extrema = find_extrema(f, x_min, x_max)
for x, y in extrema:
print("x =", round(x, 4), "| f(x) =", round(y, 4))
print("\n📏 خطوط التقارب الرأسية:")
asymptotes = find_asymptotes(f, x_min, x_max)
print(["x = " + str(round(x, 4)) for x in asymptotes])
expr = input("اكتب الدالة f(x): ")
x_min = float(input("أدخل أقل قيمة x: "))
x_max = float(input("أدخل أكبر قيمة x: "))
f = parse_function(expr)
print_results(f, x_min, x_max)
from math import sin, cos, tan, exp, log, sqrt, pow, pi, e
# Provide a safe eval environment
def parse_function(expr):
def f(x):
try:
return eval(expr, {"x": x, "sin": sin, "cos": cos, "tan": tan,
"exp": exp, "log": log, "sqrt": sqrt,
"pow": pow, "pi": pi, "e": e, "__builtins__": None})
except:
return None
return f
def safe_eval(f, x):
try:
return f(x)
except:
return None
def derivative(f, x, h=1e-5, order=1):
fxmh = safe_eval(f, x - h)
fxph = safe_eval(f, x + h)
fx = safe_eval(f, x)
if None in (fxmh, fxph, fx):
return None
if order == 1:
return (fxph - fxmh) / (2 * h)
elif order == 2:
return (fxph - 2 * fx + fxmh) / (h ** 2)
else:
return None
def find_extrema(f, x_min, x_max, steps=1000):
dx = (x_max - x_min) / steps
extrema = []
for i in range(1, steps - 1):
x1 = x_min + (i - 1) * dx
x2 = x_min + i * dx
x3 = x_min + (i + 1) * dx
f1 = safe_eval(f, x1)
f2 = safe_eval(f, x2)
f3 = safe_eval(f, x3)
if None not in (f1, f2, f3):
if f1 > f2 < f3 or f1 < f2 > f3:
extrema.append((x2, f2))
return extrema
def find_intersections(f, x_min, x_max, steps=1000):
dx = (x_max - x_min) / steps
x_intercepts = []
y_intercept = safe_eval(f, 0)
for i in range(1, steps):
x1 = x_min + (i - 1) * dx
x2 = x_min + i * dx
f1 = safe_eval(f, x1)
f2 = safe_eval(f, x2)
if None not in (f1, f2) and f1 * f2 <= 0:
x_intercepts.append((x1 + x2) / 2)
return x_intercepts, y_intercept
def find_asymptotes(f, x_min, x_max, steps=1000, threshold=1e3):
dx = (x_max - x_min) / steps
vertical = []
for i in range(1, steps):
x1 = x_min + (i - 1) * dx
x2 = x_min + i * dx
y1 = safe_eval(f, x1)
y2 = safe_eval(f, x2)
if None not in (y1, y2):
if abs(y1) > threshold and abs(y2) > threshold and y1 * y2 < 0:
vertical.append((x1 + x2) / 2)
return vertical
def print_results(f, x_min, x_max):
print("==== الحساب التفصيلي ====")
print("🧮 المشتقات:")
for x in range(x_min, x_max + 1):
d1 = derivative(f, x, order=1)
d2 = derivative(f, x, order=2)
if d1 is None or d2 is None:
print("x =", x, "| لا يمكن حساب المشتقة")
else:
print("x =", x, "| f'(x) =", round(d1, 5), "| f''(x) =", round(d2, 5))
print("\n📈 نقاط التقاطع مع المحاور:")
x_axis, y_axis = find_intersections(f, x_min, x_max)
print("X-axis:", ["x = " + str(round(x, 4)) for x in x_axis])
if y_axis is None:
print("Y-axis: غير معرف")
else:
print("Y-axis: y =", round(y_axis, 4))
print("\n🎯 نقاط النهاية (القيم القصوى):")
extrema = find_extrema(f, x_min, x_max)
for x, y in extrema:
print("x =", round(x, 4), "| f(x) =", round(y, 4))
print("\n📏 خطوط التقارب الرأسية:")
asymptotes = find_asymptotes(f, x_min, x_max)
print(["x = " + str(round(x, 4)) for x in asymptotes])
expr = input("اكتب الدالة f(x): ")
x_min = float(input("أدخل أقل قيمة x: "))
x_max = float(input("أدخل أكبر قيمة x: "))
f = parse_function(expr)
print_results(f, x_min, x_max)
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
ff12638914
from kandinsky import *
BGCOLOR = 0,0,0
PXCOLOR = 255,0,0
pxi=0
def Play(file="o.py"):
lines = open(file, "r").read().split("\n")
fill_rect(0,0,255,255,color(BGCOLOR))
for i in range(255):
for pxi in range(0, len(lines[i]), 2):
set_pixel(int(lines[i][pxi]+lines[i][pxi+1],16),i,color(PXCOLOR))
#for pxi in lines[i]:
#set_pixel()
#fill_rect(int(pxi)*size-size,i*size,size,size,color(PXCOLOR))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment