|
9 | 9 | }, |
10 | 10 | { |
11 | 11 | "cell_type": "code", |
12 | | - "execution_count": 1, |
| 12 | + "execution_count": 85, |
13 | 13 | "metadata": {}, |
14 | 14 | "outputs": [], |
15 | 15 | "source": [ |
16 | | - "from numpy import e\n", |
| 16 | + "import numpy as np\n", |
17 | 17 | "import matplotlib.pyplot as plt\n", |
18 | 18 | "from matplotlib.pyplot import savefig\n", |
| 19 | + "from math import sqrt\n", |
| 20 | + "import polars as pl\n", |
| 21 | + "pl.Config.set_tbl_rows(100)\n", |
19 | 22 | "\n", |
20 | 23 | "def show10(n):\n", |
| 24 | + " if n == None:\n", |
| 25 | + " return \"N/A\"\n", |
21 | 26 | " return \"{0:.10f}\".format(n)" |
22 | 27 | ] |
23 | 28 | }, |
|
37 | 42 | }, |
38 | 43 | { |
39 | 44 | "cell_type": "code", |
40 | | - "execution_count": 2, |
| 45 | + "execution_count": null, |
41 | 46 | "metadata": {}, |
42 | 47 | "outputs": [ |
43 | 48 | { |
|
55 | 60 | ], |
56 | 61 | "source": [ |
57 | 62 | "def f1(l: float) -> float:\n", |
58 | | - " return e**l + 0.435/l * (e**l - 1) - 1.564\n", |
| 63 | + " return np.e**l + 0.435/l * (np.e**l - 1) - 1.564\n", |
59 | 64 | "\n", |
60 | 65 | "\n", |
61 | 66 | "for i in range(10, 21, 2):\n", |
|
352 | 357 | "\n", |
353 | 358 | "savefig('../../notes/assets/image-004.png', transparent=True, bbox_inches=\"tight\")" |
354 | 359 | ] |
| 360 | + }, |
| 361 | + { |
| 362 | + "cell_type": "markdown", |
| 363 | + "metadata": {}, |
| 364 | + "source": [ |
| 365 | + "## 1.5) Metodo del punto unito" |
| 366 | + ] |
| 367 | + }, |
| 368 | + { |
| 369 | + "cell_type": "code", |
| 370 | + "execution_count": 97, |
| 371 | + "metadata": {}, |
| 372 | + "outputs": [ |
| 373 | + { |
| 374 | + "name": "stdout", |
| 375 | + "output_type": "stream", |
| 376 | + "text": [ |
| 377 | + "shape: (31, 6)\n", |
| 378 | + "┌─────┬──────────┬──────────┬─────────────┬──────────┬──────────┐\n", |
| 379 | + "│ it ┆ phi1 ┆ phi2 ┆ phi3 ┆ phi4 ┆ phi5 │\n", |
| 380 | + "│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n", |
| 381 | + "│ i64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ f64 │\n", |
| 382 | + "╞═════╪══════════╪══════════╪═════════════╪══════════╪══════════╡\n", |
| 383 | + "│ 0 ┆ 1.5 ┆ 1.5 ┆ 1.5 ┆ 1.5 ┆ 1.5 │\n", |
| 384 | + "│ 1 ┆ 1.286954 ┆ 1.0 ┆ -0.875 ┆ 0.816497 ┆ 1.373333 │\n", |
| 385 | + "│ 2 ┆ 1.402541 ┆ 1.817121 ┆ 6.732422 ┆ 2.996909 ┆ 1.365262 │\n", |
| 386 | + "│ 3 ┆ 1.345458 ┆ null ┆ -469.720012 ┆ 1.0 ┆ 1.36523 │\n", |
| 387 | + "│ 4 ┆ 1.37517 ┆ null ┆ 1.0275e8 ┆ 2.44949 ┆ 1.36523 │\n", |
| 388 | + "│ 5 ┆ 1.360094 ┆ null ┆ -1.0849e24 ┆ 1.0 ┆ 1.36523 │\n", |
| 389 | + "│ 6 ┆ 1.367847 ┆ null ┆ 1.2771e72 ┆ 2.44949 ┆ 1.36523 │\n", |
| 390 | + "│ 7 ┆ 1.363887 ┆ null ┆ -2.0827e216 ┆ 1.0 ┆ 1.36523 │\n", |
| 391 | + "│ 8 ┆ 1.365917 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 392 | + "│ 9 ┆ 1.364878 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 393 | + "│ 10 ┆ 1.36541 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 394 | + "│ 11 ┆ 1.365138 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 395 | + "│ 12 ┆ 1.365277 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 396 | + "│ 13 ┆ 1.365206 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 397 | + "│ 14 ┆ 1.365242 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 398 | + "│ 15 ┆ 1.365224 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 399 | + "│ 16 ┆ 1.365233 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 400 | + "│ 17 ┆ 1.365228 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 401 | + "│ 18 ┆ 1.365231 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 402 | + "│ 19 ┆ 1.36523 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 403 | + "│ 20 ┆ 1.36523 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 404 | + "│ 21 ┆ 1.36523 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 405 | + "│ 22 ┆ 1.36523 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 406 | + "│ 23 ┆ 1.36523 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 407 | + "│ 24 ┆ 1.36523 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 408 | + "│ 25 ┆ 1.36523 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 409 | + "│ 26 ┆ 1.36523 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 410 | + "│ 27 ┆ 1.36523 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 411 | + "│ 28 ┆ 1.36523 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 412 | + "│ 29 ┆ 1.36523 ┆ null ┆ null ┆ 1.0 ┆ 1.36523 │\n", |
| 413 | + "│ 30 ┆ 1.36523 ┆ null ┆ null ┆ 2.44949 ┆ 1.36523 │\n", |
| 414 | + "└─────┴──────────┴──────────┴─────────────┴──────────┴──────────┘\n" |
| 415 | + ] |
| 416 | + } |
| 417 | + ], |
| 418 | + "source": [ |
| 419 | + "def phi1(x): return sqrt(10 - x**3)/2\n", |
| 420 | + "def phi2(x): return (10 - 4*(x**2))**(1/3)\n", |
| 421 | + "def phi3(x): return -x**3 - 4*(x**2) + 10 + x\n", |
| 422 | + "def phi4(x): return sqrt((10 / x) - 4 * x)\n", |
| 423 | + "def phi5(x): return x - (x**3 + 4*(x**2) - 10)/(3*(x**2) + 8 * x)\n", |
| 424 | + "\n", |
| 425 | + "df = pl.DataFrame(\n", |
| 426 | + " {\n", |
| 427 | + " \"it\": [0],\n", |
| 428 | + " \"phi1\": [1.5],\n", |
| 429 | + " \"phi2\": [1.5],\n", |
| 430 | + " \"phi3\": [1.5],\n", |
| 431 | + " \"phi4\": [1.5],\n", |
| 432 | + " \"phi5\": [1.5],\n", |
| 433 | + " }\n", |
| 434 | + ")\n", |
| 435 | + "\n", |
| 436 | + "df_cols = df.columns[1:]\n", |
| 437 | + "\n", |
| 438 | + "for i in range(30):\n", |
| 439 | + " new_df = pl.DataFrame({\n", |
| 440 | + " \"it\": [i+1],\n", |
| 441 | + " \"phi1\": [0.0],\n", |
| 442 | + " \"phi2\": [0.0],\n", |
| 443 | + " \"phi3\": [0.0],\n", |
| 444 | + " \"phi4\": [0.0],\n", |
| 445 | + " \"phi5\": [0.0],\n", |
| 446 | + " })\n", |
| 447 | + "\n", |
| 448 | + " for fn_idx, fn in enumerate([phi1, phi2, phi3, phi4, phi5]):\n", |
| 449 | + " current_x = df[i, df_cols[fn_idx]]\n", |
| 450 | + "\n", |
| 451 | + " if current_x != None:\n", |
| 452 | + " try:\n", |
| 453 | + " new_x = fn(df[i, df_cols[fn_idx]])\n", |
| 454 | + " except (ValueError, ZeroDivisionError):\n", |
| 455 | + " new_x = 1\n", |
| 456 | + " except OverflowError:\n", |
| 457 | + " new_x = None\n", |
| 458 | + "\n", |
| 459 | + " if type(new_x) == complex:\n", |
| 460 | + " new_x = None\n", |
| 461 | + "\n", |
| 462 | + " new_df[0, df_cols[fn_idx]] = new_x\n", |
| 463 | + " else:\n", |
| 464 | + " new_df[0, df_cols[fn_idx]] = None\n", |
| 465 | + " \n", |
| 466 | + " df = pl.concat([df, new_df])\n", |
| 467 | + " \n", |
| 468 | + "print(df)" |
| 469 | + ] |
| 470 | + }, |
| 471 | + { |
| 472 | + "cell_type": "code", |
| 473 | + "execution_count": 96, |
| 474 | + "metadata": {}, |
| 475 | + "outputs": [ |
| 476 | + { |
| 477 | + "name": "stdout", |
| 478 | + "output_type": "stream", |
| 479 | + "text": [ |
| 480 | + "\\hline \n", |
| 481 | + "$1$ & $1.2869537676$ & $1.0000000000$ & $-0.875$ & $0.8164965809$ & $1.3733333333$ \\\\\n", |
| 482 | + "\\hline \n", |
| 483 | + "$2$ & $1.4025408035$ & $1.8171205928$ & $6.732421875$ & $2.9969088058$ & $1.3652620149$ \\\\\n", |
| 484 | + "\\hline \n", |
| 485 | + "$3$ & $1.3454583740$ & $N/A$ & $-469.72001200169325$ & $1.0000000000$ & $1.3652300139$ \\\\\n", |
| 486 | + "\\hline \n", |
| 487 | + "$4$ & $1.3751702528$ & $N/A$ & $102754555.18738511$ & $2.4494897428$ & $1.3652300134$ \\\\\n", |
| 488 | + "\\hline \n", |
| 489 | + "$5$ & $1.3600941928$ & $N/A$ & $-1.0849338705317464e+24$ & $1.0000000000$ & $1.3652300134$ \\\\\n", |
| 490 | + "\\hline \n", |
| 491 | + "$6$ & $1.3678469676$ & $N/A$ & $1.277055591444378e+72$ & $2.4494897428$ & $1.3652300134$ \\\\\n", |
| 492 | + "\\hline \n", |
| 493 | + "$7$ & $1.3638870039$ & $N/A$ & $-2.082712908581025e+216$ & $1.0000000000$ & $1.3652300134$ \\\\\n", |
| 494 | + "\\hline \n", |
| 495 | + "$8$ & $1.3659167334$ & $N/A$ & $1.0$ & $2.4494897428$ & $1.3652300134$ \\\\\n", |
| 496 | + "\\hline \n", |
| 497 | + "$9$ & $1.3648782172$ & $N/A$ & $6.0$ & $1.0000000000$ & $1.3652300134$ \\\\\n", |
| 498 | + "\\hline \n", |
| 499 | + "$10$ & $1.3654100612$ & $N/A$ & $-344.0$ & $2.4494897428$ & $1.3652300134$ \\\\\n", |
| 500 | + "\\hline \n", |
| 501 | + "$11$ & $1.3651378207$ & $N/A$ & $40233906.0$ & $1.0000000000$ & $1.3652300134$ \\\\\n", |
| 502 | + "\\hline \n", |
| 503 | + "$12$ & $1.3652772085$ & $N/A$ & $-6.512933351455806e+22$ & $2.4494897428$ & $1.3652300134$ \\\\\n", |
| 504 | + "\\hline \n", |
| 505 | + "$13$ & $1.3652058503$ & $N/A$ & $2.762675662562132e+68$ & $1.0000000000$ & $1.3652300134$ \\\\\n", |
| 506 | + "\\hline \n", |
| 507 | + "$14$ & $1.3652423837$ & $N/A$ & $-2.108578167848422e+205$ & $2.4494897428$ & $1.3652300134$ \\\\\n", |
| 508 | + "\\hline \n", |
| 509 | + "$15$ & $1.3652236802$ & $N/A$ & $1.0$ & $1.0000000000$ & $1.3652300134$ \\\\\n", |
| 510 | + "\\hline \n", |
| 511 | + "$16$ & $1.3652332557$ & $N/A$ & $6.0$ & $2.4494897428$ & $1.3652300134$ \\\\\n", |
| 512 | + "\\hline \n", |
| 513 | + "$17$ & $1.3652283535$ & $N/A$ & $-344.0$ & $1.0000000000$ & $1.3652300134$ \\\\\n", |
| 514 | + "\\hline \n", |
| 515 | + "$18$ & $1.3652308632$ & $N/A$ & $40233906.0$ & $2.4494897428$ & $1.3652300134$ \\\\\n", |
| 516 | + "\\hline \n", |
| 517 | + "$19$ & $1.3652295783$ & $N/A$ & $-6.512933351455806e+22$ & $1.0000000000$ & $1.3652300134$ \\\\\n", |
| 518 | + "\\hline \n", |
| 519 | + "$20$ & $1.3652302362$ & $N/A$ & $2.762675662562132e+68$ & $2.4494897428$ & $1.3652300134$ \\\\\n" |
| 520 | + ] |
| 521 | + } |
| 522 | + ], |
| 523 | + "source": [ |
| 524 | + "for row in df.rows():\n", |
| 525 | + " if row[0] <= 20 and row[0] > 0:\n", |
| 526 | + " print(f\"\\\\hline \\n${row[0]}$ & ${show10(row[1])}$ & ${show10(row[2])}$ & ${row[3]}$ & ${show10(row[4])}$ & ${show10(row[5])}$ \\\\\\\\\")" |
| 527 | + ] |
355 | 528 | } |
356 | 529 | ], |
357 | 530 | "metadata": { |
|
0 commit comments