-
-
Save UnknownAMD/d6acadc7a374329c66f69f2265b521f8 to your computer and use it in GitHub Desktop.
thing
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
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) |
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
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) |
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
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 |
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
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