All MicroEvals
Make the process we used here into a re-usable skill ======...
Create MicroEval

Make the process we used here into a re-usable skill ======...

Prompt

Make the process we used here into a re-usable skill =========================================================================== 2D ÜTKÖZÉS-RÖGZÍTETT LEKÉPEZÉS C[u, v]^2-BEN: F1(u, v) = -21*u**5 - 15*u**4*v + 20*u**3 + 15*u**2*v + 4*u + 2*v F2(u, v) = -45*u**5/2 - 15*u**4*v + 45*u**3/2 + 15*u**2*v + 3*u + 2*v Pontos det J_F(u, v) = -225*u**8/2 + 225*u**6 - 225*u**4/2 + 2 Szorzattá alakított forma: det J_F(u, v) = 2 - 225*u**4*(u - 1)**2*(u + 1)**2/2 =========================================================================== A 3-pontos ütközés ellenőrzése: F(p1) = F(p2) = F(p3) = (0, 0): p1 = (0, 0) -> F(p1) = (0, 0), det J_F(p1) = 2 p2 = (1, -3/2) -> F(p2) = (0, 0), det J_F(p2) = 2 p3 = (-1, 3/2) -> F(p3) = (0, 0), det J_F(p3) = 2 -> Mindhárom pont azonosan a (0, 0) képbe megy, ahol det J_F = 2. =========================================================================== 2D MARADÉK TAG KIKÜSZÖBÖLÉSE (LOKÁLIS ANALITIKUS ÉS POLINOMIÁLIS KORREKCIÓ): Hermite-interpolációs alaptag P(u) = 3*u**5/2 - 5*u**3/2 + u Derivált-eltérés Delta(u) = P'(u) - 1 = 15*u**2*(u - 1)*(u + 1)/2 Beszorzási maradék tag: 2*(1 + Delta)*(1 - Delta) - 2 = -225*u**4*(u - 1)**2*(u + 1)**2/2 Korrigált egzakt leképezés det J_F_egzakt(u, v) = 2 p1 = (0, 0) -> F_egzakt(p1) = (0, 0), det J_F_egzakt(p1) = 2 p2 = (1, -3/2) -> F_egzakt(p2) = (0, 0), det J_F_egzakt(p2) = 2 p3 = (-1, 3/2) -> F_egzakt(p3) = (0, 0), det J_F_egzakt(p3) = 2 Magasrendű polinomiális korrekció maradék tagja: 2 - det J = 50625*u**8*(u - 1)**4*(u + 1)**4/8 Unipotens polinomiális leképezés C[u, v]^2-ben: det J = 2 =========================================================================== =========================================================================== 3D LEKÉPEZÉS MEGERŐSÍTÉSE: det J_F(x,y,z) = -2 1. Algebrai szizígia: w*F2 - 3*x*F1 - y*w = 0 2. Algebrai szizígia: w^3*F3 + x^3*F1 - x*w*(1+w) = 0 =========================================================================== import sympy as sp u, v = sp.symbols('u v') F1 = -21*u**5 - 15*u**4*v + 20*u**3 + 15*u**2*v + 4*u + 2*v F2 = -sp.Rational(45, 2)*u**5 - 15*u**4*v + sp.Rational(45, 2)*u**3 + 15*u**2*v + 3*u + 2*v J_2D = sp.Matrix([F1, F2]).jacobian([u, v]) det_J_2D = sp.simplify(J_2D.det()) print("=" * 75) print("2D ÜTKÖZÉS-RÖGZÍTETT LEKÉPEZÉS C[u, v]^2-BEN:") print(f" F1(u, v) = {F1}") print(f" F2(u, v) = {F2}") print(f"\nPontos det J_F(u, v) = {det_J_2D}") print(f"Szorzattá alakított forma: det J_F(u, v) = 2 - {sp.factor(2 - det_J_2D)}") print("=" * 75) pontok = [ ("p1", (0, 0)), ("p2", (1, -sp.Rational(3, 2))), ("p3", (-1, sp.Rational(3, 2))) ] print("\nA 3-pontos ütközés ellenőrzése: F(p1) = F(p2) = F(p3) = (0, 0):") for nev, (pu, pv) in pontok: ertek_F = (F1.subs({u: pu, v: pv}), F2.subs({u: pu, v: pv})) ertek_det = det_J_2D.subs({u: pu, v: pv}) print(f" {nev} = ({pu}, {pv}) -> F({nev}) = {ertek_F}, det J_F({nev}) = {ertek_det}") assert ertek_F == (0, 0), f"Az ütközés nem teljesült itt: {nev}" assert ertek_det == 2, f"A Jacobi-determináns nem 2 itt: {nev}" print("\n-> Mindhárom pont azonosan a (0, 0) képbe megy, ahol det J_F = 2.") P_u = sp.Rational(3, 2)*u**5 - sp.Rational(5, 2)*u**3 + u Delta_u = sp.diff(P_u, u) - 1 w_2d = 2*v + 3*u assert sp.expand(F2 - (1 - Delta_u) * w_2d) == 0 assert sp.expand(F1 - (P_u + F2)) == 0 assert sp.expand(det_J_2D - 2 * (1 + Delta_u) * (1 - Delta_u)) == 0 assert sp.expand(det_J_2D - (2 - 2 * Delta_u**2)) == 0 F2_egzakt_2D = w_2d / (1 + Delta_u) F1_egzakt_2D = P_u + F2_egzakt_2D J_egzakt_2D = sp.Matrix([F1_egzakt_2D, F2_egzakt_2D]).jacobian([u, v]) det_J_egzakt_2D = sp.simplify(J_egzakt_2D.det()) assert det_J_egzakt_2D == 2 print("\n" + "=" * 75) print("2D MARADÉK TAG KIKÜSZÖBÖLÉSE (LOKÁLIS ANALITIKUS ÉS POLINOMIÁLIS KORREKCIÓ):") print(f" Hermite-interpolációs alaptag P(u) = {P_u}") print(f" Derivált-eltérés Delta(u) = P'(u) - 1 = {sp.factor(Delta_u)}") print(f" Beszorzási maradék tag: 2*(1 + Delta)*(1 - Delta) - 2 = {sp.factor(-2 * Delta_u**2)}") print(f" Korrigált egzakt leképezés det J_F_egzakt(u, v) = {det_J_egzakt_2D}") for nev, (pu, pv) in pontok: ertek_F_egzakt = ( sp.simplify(F1_egzakt_2D.subs({u: pu, v: pv})), sp.simplify(F2_egzakt_2D.subs({u: pu, v: pv})) ) ertek_det_egzakt = det_J_egzakt_2D.subs({u: pu, v: pv}) print(f" {nev} = ({pu}, {pv}) -> F_egzakt({nev}) = {ertek_F_egzakt}, det J_F_egzakt({nev}) = {ertek_det_egzakt}") assert ertek_F_egzakt == (0, 0), f"Az egzakt ütközés nem teljesült itt: {nev}" assert ertek_det_egzakt == 2, f"Az egzakt Jacobi-determináns nem 2 itt: {nev}" neumann_inverz_4 = sum((-Delta_u)**k for k in range(4)) F2_magasrendu_2D = sp.expand(w_2d * neumann_inverz_4) F1_magasrendu_2D = sp.expand(P_u + F2_magasrendu_2D) J_magasrendu_2D = sp.Matrix([F1_magasrendu_2D, F2_magasrendu_2D]).jacobian([u, v]) det_J_magasrendu_2D = sp.expand(J_magasrendu_2D.det()) assert sp.expand(det_J_magasrendu_2D - (2 - 2 * Delta_u**4)) == 0 for nev, (pu, pv) in pontok: assert (F1_magasrendu_2D.subs({u: pu, v: pv}), F2_magasrendu_2D.subs({u: pu, v: pv})) == (0, 0) assert det_J_magasrendu_2D.subs({u: pu, v: pv}) == 2 F2_unipotens_2D = w_2d F1_unipotens_2D = sp.expand(u + P_u.subs(u, w_2d)) J_unipotens_2D = sp.Matrix([F1_unipotens_2D, F2_unipotens_2D]).jacobian([u, v]) det_J_unipotens_2D = sp.expand(J_unipotens_2D.det()) assert det_J_unipotens_2D == 2 print(f" Magasrendű polinomiális korrekció maradék tagja: 2 - det J = {sp.factor(2 - det_J_magasrendu_2D)}") print(f" Unipotens polinomiális leképezés C[u, v]^2-ben: det J = {det_J_unipotens_2D}") print("=" * 75) x, y, z = sp.symbols('x y z') w_3d = 1 + x*y F1_3d = w_3d**3 * z + y**2 * w_3d * (4 + 3*x*y) F2_3d = y + 3*x * w_3d**2 * z + 3*x * y**2 * (4 + 3*x*y) F3_3d = 2*x - 3*x**2 * y - x**3 * z J_3D = sp.Matrix([F1_3d, F2_3d, F3_3d]).jacobian([x, y, z]) det_J_3D = sp.expand(J_3D.det()) assert det_J_3D == -2 szizigia_1 = sp.expand(w_3d * F2_3d - 3 * x * F1_3d - y * w_3d) szizigia_2 = sp.expand(w_3d**3 * F3_3d + x**3 * F1_3d - x * w_3d * (1 + w_3d)) assert szizigia_1 == 0 assert szizigia_2 == 0 print("\n" + "=" * 75) print(f"3D LEKÉPEZÉS MEGERŐSÍTÉSE: det J_F(x,y,z) = {det_J_3D}") print(f" 1. Algebrai szizígia: w*F2 - 3*x*F1 - y*w = {szizigia_1}") print(f" 2. Algebrai szizígia: w^3*F3 + x^3*F1 - x*w*(1+w) = {szizigia_2}") print("=" * 75)

Drag to resize

Response not available

Drag to resize

Response not available

Drag to resize
Drag to resize
Drag to resize