You are on page 1of 14

TAREFA 1. CÁLCULO DE RAÍCES.

Hugo Carreira Rial

Cálculo e Análise Numérica

hugo.carreira@rai.usc.gal

7 de marzo de 2022

Tarefa 1
Persoa anterior Pablo Lobato Rey
Autor do presente Hugo Carreira Rial
Persoa posterior Tom Willemse Ríos

1
Índice

I. Introducción 3

II. Presentación 3
A. Nome da persoa que realiza o traballo . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
B. Título do traballo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
C. Definición matemática da función en «Sage» . . . . . . . . . . . . . . . . . . . . . . . 3
D. Comandos para definir a función e gráfica . . . . . . . . . . . . . . . . . . . . . . . . 4
E. Gráfica e puntos de corte co eixo X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
F. Xustificación da existencia de solución no intervalo proposto . . . . . . . . . . . . . 5
G. Xustificación da Unicidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

III.Dicotomía 6
A. Número de iterantes de «Dicotomía» e expresión para o seu cálculo . . . . . . . . . 6
B. Comandos para Dicotomía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
C. Comandos para debuxa_dicotomía . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
D. Gráfica dos iterantes de «debuxa_dicotomía» . . . . . . . . . . . . . . . . . . . . . . . 8

IV. Newton-Raphson 9
A. Comandos de Newton en «Sage» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
B. Gráfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
C. Gráfica dos iterantes de «Newton». . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
D. Coeficientes de «debuxa_newton» . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

V. Ventaxes e desvantaxes de Newton e Dicotomía 11

VI.Anexo I. 13

2
I. Introducción

O traballo «Obtención de raíces de funcións dunha variable», que se vai expor a continuación,
consiste na resolución mediante ferramentas de cálculo numérico de raíces de funcións coa axuda
de «SageMath».

O traballo consta de tres apartados diferentes nos que primeiro se vai realizar a proposta de
resolución da función deseñada por min, a resoución da proposta da persoa posterior a min a a
correción da miña proposta realizada pola persoa anterior.

II. Presentación

A. Nome da persoa que realiza o traballo

Nome do alumno que realizou o traballo Tom Willemse Ríos

B. Título do traballo

Título do traballo «Predecir el crecimiento de un árbol»

C. Definición matemática da función en «Sage»


30
A función proposta para a resolución é a seguinte: f (t) = 1+25·e−0,4·t
que describe a curva de
crecemento (prevista) para unha árbore, en función da idade (o tempo "t").
O obxectivo principal da función é coñecer canto tempo ten que pasar para que a función teña o
valor f ( x ) = 15, para así poder alongar o máximo posible os gastos de mantemento sen danar o
edificio. Polo tanto, existe unha única variable independente t que vai indicar o tempo (en anos)
da árbore.

3
D. Comandos para definir a función e gráfica

Para o debuxar e definir a función de crecemento da árbore debemos insertar os seguintes


comandos:

g(x) = 30/(1+25*e^(-0.4*x))
plot(g,0.0000,40) #función de cremento dunha árbore

A gráfica de crecemento atópase no Anexo I (páxina 13).

Porén, para obter a o punto no que a función ten o valor f ( x ) = 15 debemos diminuír 15 unidades
30
a función definida anterioremente, obtendo como resultado a seguinte: f (t) = 1+25·e−0,4·t
− 15
cuxos comandos gráficos en sage son os que se indican a continuación:

f(x) = (30/(1+25*e^(-0.4*x)))-15. #función cuxa raíz é propsta a estudo

c = plot(f,0,40)
c.save("arbol.eps") #o formato .eps é de mellor calidade que .jpg.
g = plot(f,7,9)
g.save("arbol1.eps")
sage: #gráfica que aporta Sage

E. Gráfica e puntos de corte co eixo X

A continuación apórtanse as gráficas obtidas mediante os comandos mencionados anterior-


mente.

15

2
10

1
5

0
7.0 7.5 8.0 8.5 9.0
5 10 15 20 25 30 35 40
−1
−5

−2

−10

−3

Figura 1: f (t) = 1+2530


·e−0,4·t
− 15 no intervalo [0,40] e no intervalo [7,9] respectivamente

4
F. Xustificación da existencia de solución no intervalo proposto

Para poder aplicar os métodos de Newton e Dicotomía é necesario demostrar que a función é
contínua no intervalo proposto a estudo, no caso desta funcion o intrvalo [7,9]. A función está
formada pola composición de funcións contínuas como son:

1. A constante 30 non proporciona problemas de continuidade.

2. A función 1 + 25 · e−0,4·t é contínua en todo o dominio xa que obtendo logaritmos é imposible


obter un f ( x ) = 0.

3. A constante 15 é soamente despraza a función se afectar en ningún caso a súa continuidade.

Para determinar que existencia de, alomenos unha raíz, aplicamos o «Teorema de Bolzano» e
se ∃ x ∈ [7, 9] \ f (7) · f (9) < 0 7−→ ∃c ∈ [7, 9] \ f (c) = 0. Como f (7) · f (9) < 0, entón existe polo
menos unha raíz no intervalo proposto.

G. Xustificación da Unicidade

Outra condición para poder empregar os métodos numéricos de «Newton-Dicotomía» é


demostrar que no intervalo soamente existe unha raíz, é dicir, demostrar a unicidade.
Empregando o teorema de Rolle, se f ( x ) é derivable no intervalo proposto entón a raíz non é
única. Entón, debemos achar f ′ (t) da función f (t) = 30
1+25·e−0,4·t
− 15. Aplicando a derivación de
300 e−0,4·t
racionais e a regra da cadea, obtemos que a derivada de f (t) é f ′ (t) 7→ 2.
(25·e−0,4·t +1)

Igualamos f ′ ( x ) = 0 e comprobamos se ten unha raíz no intervalo [7,9]. Os cálculos realiza-


dos son os seguintes:
300 · e−0,4· x = 0

e−0,4· x = 0

ln(e−0,4· x ) = ln(0)

Porén, como non se cumpre nunca que ln(0) entón a igualdade nunca se vai producir.
Aínda que non se ínclue, isto podémolo comprobar gráficamente mediante os seguintes comandos
de «Sage».

5
f(x) = (30/(1+25*e^(-0.4*x)))-15
unicidade = plot(diff(f),7,9)
unicidade.save(’unicidade.eps’)

3.00

2.98

2.96

2.94

2.92

2.90

2.88

7.0 7.5 8.0 8.5 9.0

Figura 2: Gráfica da derivada de f ( x )

Entón, podemos concluír que ímos atopar unha soa raíz nese intervalo xa que está demostrada
a existencia e tamén a unicidade.

III. Dicotomía

A. Número de iterantes de «Dicotomía» e expresión para o seu cálculo

Para o cálculo do número de iteracións no método de dicotomía debemos empregar a seguinte


expresión:
1
|α − xk | = ( )k · |b − a|
2
1. |α − xk | representa o erro máximo xa que α é a raíz exacta e xk é a aproximación da raíz.
Neste caso, |α − xk | é 10−12 .

2. ( 12 )k representa a presición coa que aumenta en cada ciclo de k.

3. |b − a| representa o intervalo inicial na 1ª iteración, neste caso [7,9], xa que, avaliadas as


condicións iniciais, existe unicidade da raíz.

O cálculo do número de iteracións débese realizar aplicando rigurosamente logaritmos na expre-


sión anterior:
1
10−12 = ( )k · (9 − 7)
2

6
10−12 1
ln( ) = ln( )k
2 2

−28,32
k= = ⌈40,8631 . . . ⌉ = 41
−0,69
O número de iteración necesarias para achar a raíz polo método de dicotomía é 41 cunha
tolerancia de xtol = 10−12 .

B. Comandos para Dicotomía

Para obter mediante o método de Dicotomía a raíz da función debemos introducir os seguintes
comandos en ’Sage’ ou ’Jupyter’:

dicotomia(f,7,9)[0:2] #so devolve a raíz e o numero de iterantes


sage: (8.04718956217130, 41)

dicotomia(f,7,9) #podemos consultar todas as iteracións


sage: #resultados das ’raíces’ nas diferentes iteracións
[8.00000000000000,
8.50000000000000,
8.25000000000000,
8.12500000000000,
...
8.04718956217221,
8.04718956217130]

C. Comandos para debuxa_dicotomía

O método numérico de «Dicotomía» atopa a raíz en 41 iteracións cuxo resultado é: x =


8,04718956217130 . . . . As iteracións podemos observalas empregando «debuxa_dicotomía» intro-
ducindo o seguinte código «sage» que se atopa no arquivo dos docentes «resolve.sage».

debuxa_dicotomia(f,7,9)
sage:

sage:

7
Iterante 0: 8.00000000000000; lonxitude do intervalo: 2.00000000000000
Iterante 1: 8.50000000000000; lonxitude do intervalo: 1.00000000000000
Iterante 2: 8.25000000000000; lonxitude do intervalo: 0.500000000000000
Iterante 3: 8.12500000000000; lonxitude do intervalo: 0.250000000000000
Iterante 4: 8.06250000000000; lonxitude do intervalo: 0.125000000000000
Iterante 5: 8.03125000000000; lonxitude do intervalo: 0.0625000000000000
...
Iterante 39: 8.04718956217221; lonxitude do intervalo: 3.63797880709171e-12
Iterante 40: 8.04718956217130; lonxitude do intervalo: 1.81898940354586e-12

D. Gráfica dos iterantes de «debuxa_dicotomía»

Figura 3: Debuxa dicotomía da función proposta

Coa gráfica e a lonxitude dos intervalos podemos observar que os intervalos en dicotomía se
reducen sempre a metade dependendo se é na 1ª metade ou na 2ª metade onde se cumpren as
condicións anteriormente indicadas.

8
IV. Newton-Raphson

A. Comandos de Newton en «Sage»

O método de Newton é un método de converxencia veloz, aínda que non está garantida xa
que non asegura que se atope unha raíz no intervalo, malia que no noso caso sí posto que xa se
razoaron as hipóteses iniciais na seccion I.
Os comandos para programar en ’Sage’ o método de Newton son os seguintes:

newton(f,diff(f),7)[0:2]
sage: (8.04718956217050, 4) #so indica os número de iterantes e a raíz

newton(f,diff(f),7) #opcionalmente, podemos aportar máis información


sage:
(8.04718956217050,
4,
[7.00000000000000, 8.07808211848321, 8.04718877596951, 8.04718956217050])

B. Gráfica

Para obter a gráfica de «debuxa_newton» introducimos en «cocalc» os seguintes comandos:

debuxa_newton(f,diff(f),7,7,9) # 1 esquerda arriba


debuxa_newton(f,diff(f),7,7.5,8.2) # 1 dereita arriba
debuxa_newton(f,diff(f),8,8.03,8.05) # 1 abaixo centro

En Newton podemos ir facendo diferentes aproximacións ó visualizar os datos do comando


anterior, como se indica nos nas invocación anteriores.
A aproximación obtida da raíz polo método de Newton é x = 8,04718956217050.

C. Gráfica dos iterantes de «Newton».

Como se indica nos comandos, as diferentes gráficas que se obteñen son as seguintes:

9
Figura 4: Gráficas en diferentes intervalos do método de «Newton»

D. Coeficientes de «debuxa_newton»

Para estudar a orde de converxencia do método de Newton debemos observar os iterantes que
se producen na invocación do «debuxa_newton».

Iterante 1: 8.07808211848321; coeficiente da orde de conv.: 0.0281710631721404


Iterante 2: 8.04718877596951; coeficiente da orde de conv.: 0.000823807792307450
Iterante 3: 8.04718956217050; coeficiente da orde de conv.: 0.00287384296448393

Nas tres iteracións necesarias para obter a raíz por Newton, a orde de converxencia é cuadrática xa
que en cada iteración aumentan as cifras decimais no dobre que na anterior, aínda que no iterante
«3» esta orde de converxencia non é tan «boa» como no orde de converxencia do iterante «2».
A estimación cuadrática réxese pola fórmula que indica que en cada iteración elévanse cuadra-
ticamente o número de decimais respecto da raíz exacta.

| x k +1 − α | = C | x k − α | 2

Podemos realizar unha gráfica cos coeficientes obtidos por «debuxa_newton» e comprobar que
se produce aproximadamente un estancamento canto máis se aproxima á raíz, malia que ó ter

10
moi poucos iterantes é máis complexo visualizar este fenómeno. Os comandos e gráfica son os
seguintes:

debuxa_newton(f,diff(f),7,7,9,return_coef=True)
coef = [0.0281710631721404, 0.000823807792307450, 0.00287384296448393]
c = line(zip(range(len(coef)),coef))
c.save(’lineal.eps’)
c

A seguinte gráfica permite recoñecer que se produce certa estabilización dos coeficientes de
Newton aínda que o número de iterantes para buscar a raíz converxe moi rápido, complicando a
visualización deste fenómeno.

0.025

0.020

0.015

0.010

0.005

0.0 0.5 1.0 1.5 2.0

Figura 5: Converxencia Newton

Unha aportación moi boa para comprender ben o proceso analítico de «Newton» pódese atopar
no «Newton Methods for Nonlinear Problems», na seguinte cita [2].

V. Ventaxes e desvantaxes de Newton e Dicotomía

Atopar a raíz dunha función xunto con atopar máximos e mínimos é unha tarefa o sufuciente-
mente complexa en matemáticas se estamos a traballar con múltiples variables. Por iso, é esencial
apoiarse de ferramentas como poden ser os métodos de Newton, Dicotomía, Secante, Regula
Falsi...
Os dous máis empregados son os tratados ó longo desta «Tarefa 1». Ningún dos dous é
infinitamente mellor ca o outro xa que ambos teñen múltiples vantaxes e inconvintes. As vantaxa-
s/desventaxes máis salientables son as seguintes:

11
Figura 6: Ventaxes e Desvantaxes dos dous métodos principais

Para finalizar, é destacable indicar que o método de «Newton» para a función proposta nesta
tarefa posibilita unha resposta máis rápida en tempo de execución no computador, pese a que na
súa algoritmia realiza, en cada iteración, un pouco máis de operacións que «Dicotomía».

12
VI. Anexo I.

Función de crecemento sen ter que atopar a raíz en f(x) = 15.

Figura 7: Crecemento árbore

Función de crecemento e raíz no intervalo proposto (figura ampliada).

Figura 8: Raíz cando a función se reduce 15 unidades

13
Referencias

[1] https://bit.ly/3IstoJq Escuela Politécnica Superior del Litoral - Instituto de ciencias Matemá-
ticas [online] fecha de última consulta 28 de Febrero 2022

[2] https://bit.ly/3pv99TP Deflhard, Peter. Newton Methods for Nonlinear problems. Ed. Sprin-
ger, 2000. [online] pág. 23, última consulta 1 marzo 2022.

14

You might also like