{"id":7732,"date":"2021-09-15T17:11:23","date_gmt":"2021-09-15T22:11:23","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/analisisnumerico\/?p=7732"},"modified":"2025-12-22T08:39:55","modified_gmt":"2025-12-22T13:39:55","slug":"s3eva2021paoi_t2-tensiones-minimas-en-cables-por-carga-variable","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-ejemplos\/mn-s3e30\/s3eva2021paoi_t2-tensiones-minimas-en-cables-por-carga-variable\/","title":{"rendered":"s3Eva2021PAOI_T2 Tensiones m\u00ednimas en cables por carga variable"},"content":{"rendered":"\n<p><em><strong>Ejercicio<\/strong><\/em>: <a href=\"https:\/\/blog.espol.edu.ec\/algoritmos101\/mn-evalua\/mn-3e25\/3eva2021paoi_t2-tensiones-minimas-en-cables-por-carga-variable\/\" data-type=\"post\" data-id=\"7704\">3Eva2021PAOI_T2 Tensiones m\u00ednimas en cables por carga variable<\/a><\/p>\n\n\n\n<p>El ejercicio usa el resultado del tema anterior, planteando una funci\u00f3n de Python como la soluci\u00f3n para valores dados. Se requiere una funci\u00f3n, para disponer de los valores soluci\u00f3n en cada llamada para el intervalo de an\u00e1lisis.<\/p>\n\n\n\n<p>Por lo que b\u00e1sicamente lo que se pide es usar alg\u00fan algoritmo de b\u00fasqueda de ra\u00edces. Para simplicidad en la explicaci\u00f3n se toma el algoritmo de la bisecci\u00f3n.<\/p>\n\n\n\n<p>Los resultados se grafican como theta vs Tensiones, y el punto a buscar es cuando las tensiones en los cables son de igual magnitud, es decir:<\/p>\n\n\n\n<p>T<sub>CA<\/sub> = T<sub>CB<\/sub><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"480\" src=\"http:\/\/blog.espol.edu.ec\/algoritmos101\/files\/2021\/09\/tensionescables02.png\" alt=\"tensiones cables 02\" class=\"wp-image-18632\" \/><\/figure>\n\n\n\n<p>Resultando en :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Resultado: &#091;TCA, TCB], diferencia\n&#091;array(&#091;3.46965006e-14, 4.00000000e+02]), -399.99999999999994]\ntetha, TCA, TCB\n&#091;&#091;-2.61799388e-01  3.46965006e-14  4.00000000e+02]\n &#091;-1.74532925e-01  3.70996817e+01  3.85789041e+02]\n &#091;-8.72664626e-02  7.39170124e+01  3.68641994e+02]\n &#091; 8.32667268e-17  1.10171790e+02  3.48689359e+02]\n &#091; 8.72664626e-02  1.45588094e+02  3.26082988e+02]\n &#091; 1.74532925e-01  1.79896384e+02  3.00994928e+02]\n &#091; 2.61799388e-01  2.12835554e+02  2.73616115e+02]\n &#091; 3.49065850e-01  2.44154918e+02  2.44154918e+02]\n &#091; 4.36332313e-01  2.73616115e+02  2.12835554e+02]\n &#091; 5.23598776e-01  3.00994928e+02  1.79896384e+02]\n &#091; 6.10865238e-01  3.26082988e+02  1.45588094e+02]\n &#091; 6.98131701e-01  3.48689359e+02  1.10171790e+02]\n &#091; 7.85398163e-01  3.68641994e+02  7.39170124e+01]\n &#091; 8.72664626e-01  3.85789041e+02  3.70996817e+01]]\n       raiz en:  0.34898062924398343 radianes\n       raiz en:  19.995117187500004 grados\nerror en tramo:  8.522115488257542e-05\n&gt;&gt;&gt; \n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Instrucciones en Python<\/h2>\n\n\n\n<p>se a\u00f1aden las instrucciones de la bisecci\u00f3n al algoritmo del tema anterior, para encontrar el punto de intersecci\u00f3n,<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\nimport numpy as np\nimport matplotlib.pyplot as plt\n\n# Tema 1\ndef funcion(P,theta,alfa,beta):\n    # ecuaciones\n    A = np.array(&#x5B;&#x5B;np.cos(alfa), -np.cos(beta)],\n                  &#x5B;np.sin(alfa),  np.sin(beta)]])\n    B = np.array(&#x5B;P*np.sin(theta), P*np.cos(theta)])\n\n    # usar un algoritmo directo\n    X = np.linalg.solve(A,B)\n    \n    diferencia = X&#x5B;0]-X&#x5B;1]\n    return(&#x5B;X,diferencia])    \n\n# INGRESO\nalfa = np.radians(35)\nbeta = np.radians(75)\nP = 400\n\n# PROCEDIMIENTO\ntheta = beta-np.radians(90)\nresultado = funcion(P,theta,alfa, beta)\n\n# SALIDA\nprint(&quot;Resultado: &#x5B;TCA, TCB], diferencia&quot;)\nprint(resultado)\n\n# Tema 1b --------------\n# PROCEDIMIENTO\ndtheta = np.radians(5)\ntheta1 = beta-np.radians(90)\ntheta2 = np.radians(90)-alfa\n\ntabla = &#x5B;]\ntheta = theta1\nwhile not(theta&gt;=theta2):\n    X = funcion(P,theta,alfa,beta)&#x5B;0] # usa vector X\n    tabla.append(&#x5B;theta,X&#x5B;0],X&#x5B;1]])\n    theta = theta + dtheta\n    \ntabla = np.array(tabla)\nthetai = np.degrees(tabla&#x5B;:,0])\nTca = tabla&#x5B;:,1]\nTcb = tabla&#x5B;:,2]\n\n# SALIDA\nprint('tetha, TCA, TCB')\nprint(tabla)\n\n# Grafica\nplt.plot(thetai,Tca, label='Tca')\nplt.plot(thetai,Tcb, label='Tcb')\n# plt.axvline(np.degrees(c))\nplt.legend()\nplt.xlabel('theta')\nplt.ylabel('Tensi\u00f3n')\nplt.show()\n\n\n# Tema 2 -------------------------\n# busca intersecci\u00f3n con Bisecci\u00f3n\ndiferencia = Tca-Tcb\ndonde_min  = np.argmin(np.abs(diferencia))\na = tabla&#x5B;donde_min-1,0]\nb = tabla&#x5B;donde_min+1,0]\ntolera = 0.0001\n\ntramo = b-a\nwhile not(tramo&lt;tolera):\n    c = (a+b)\/2\n    fa = funcion(P,a,alfa,beta)&#x5B;1] # usa delta\n    fb = funcion(P,b,alfa,beta)&#x5B;1]\n    fc = funcion(P,c,alfa,beta)&#x5B;1]\n    cambia = np.sign(fa)*np.sign(fc)\n    if cambia &lt; 0: \n        a = a\n        b = c\n    if cambia &gt; 0:\n        a = c\n        b = b\n    tramo = b-a\n\n# SALIDA\nprint('       raiz en: ', c,&quot;radianes&quot;)\nprint('       raiz en: ', np.degrees(c),&quot;grados&quot;)\nprint('error en tramo: ', tramo)\n\n# Grafica\nplt.plot(thetai,Tca, label='Tca')\nplt.plot(thetai,Tcb, label='Tcb')\nplt.axvline(np.degrees(c))\nplt.legend()\nplt.xlabel('theta')\nplt.ylabel('Tensi\u00f3n')\nplt.show()\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Ejercicio: 3Eva2021PAOI_T2 Tensiones m\u00ednimas en cables por carga variable El ejercicio usa el resultado del tema anterior, planteando una funci\u00f3n de Python como la soluci\u00f3n para valores dados. Se requiere una funci\u00f3n, para disponer de los valores soluci\u00f3n en cada llamada para el intervalo de an\u00e1lisis. Por lo que b\u00e1sicamente lo que se pide es [&hellip;]<\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"wp-custom-template-entrada-mn-ejemplo","format":"standard","meta":{"footnotes":""},"categories":[52],"tags":[58,54],"class_list":["post-7732","post","type-post","status-publish","format-standard","hentry","category-mn-s3e30","tag-ejemplos-python","tag-mnumericos"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7732","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/comments?post=7732"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7732\/revisions"}],"predecessor-version":[{"id":18636,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/posts\/7732\/revisions\/18636"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/media?parent=7732"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/categories?post=7732"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/algoritmos101\/wp-json\/wp\/v2\/tags?post=7732"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}