Problemas resueltos, métodos numericos
Encontrar todos los máximos relativos de la función:
(
)
(
)
(
)
(
)
(
)
(
)
(
)
Por lo que sabemos de estas funciones; las exponenciales siempre van a devolver un valor positivo,
y en este caso a medida que se alejan del origen, sus exponentes van a ser cada vez números más
pequeños, por lo tanto; sin importar la dirección en que sealejen del origen su valor cada vez será
más próximo a cero. El cociente presente en la ecuación, siempre va a devolver un número
positivo, tiene un coeficiente constante que impiden que se indetermine en el origen del plano xy,
además la suma de cuadrados en el cociente siempre devuelve un número positivo; en cualquier
trayectoria que se aleje del origen va a arrojar un número cada vez más cercanoa cero, y en
general; la combinación lineal de estas 3 funciones presentara este comportamiento. Entonces
nuestra “zona de análisis” será una región del plano xy cercana al origen del mismo.
Para efectos prácticos escogí un intervalo amplio de graficación para determinar esta zona:
Haciendo zoom a:
Líneas de nivel en:
Observando las líneas de nivel, la función tiene tres máximosrelativos localizados en k=0.923
(líneas amarillas), usando el método de ascenso al gradiente escogiendo a
, en los
)( )(
puntos: (
)
function r=g(p0, n)
for i=1:n
p0=p0+0.01*grad(p0);
end
r=p0
endfunction
Para: (
)
-->g([-0.3,-0.8],100)
ans =
- 0.2729981 - 0.8189937
Para: (
)
-->g([0,0],100)
ans =
- 0.0060829 - 0.0182477
Para: (
)
-->g([0.7,-0.8],100)
ans =0.7136811 - 0.8547819
Puntos encontrados graficados en las curvas de nivel (asteriscos azules)
Problema 2:
Estimar la temperatura de una placa en ciertos puntos a partir de datos de temperatura en otros
puntos:
Para empezar a abordar este problema, no se trabajara directamente a ajustar una ecuación con
múltiples variables, dado que es muy difícil visualizar que función podría ajustar.Se iniciará
visualizando funciones en R1 como si fueran curvas de nivel.
Grafica de puntos x contra puntos y (plano xy)
(
Lo más simple seria ajustar una función de estilo:
ajustar otra grafica pero ahora para el plano zx:
)
, luego hay que
Grafica de puntos z contra puntos x (plano zx)
(
)
Para estos puntos también lo más fácil sería ajustar una función:
Como
yatenemos una expresión para la posición de z (temperatura) en el plano xz, solo nos faltaría darle
una “profundidad a ese punto” en el plano xy y esto se logra sumando una combinación lineal de
estos puntos que mejor se ajusten al total de muestras:
(
)
(
)
Donde el vector “a” son los coeficientes lineales a ajustar por regresión múltiple.
function e=res(a)
for i=1:length(dx)e(i)=dz(i)-(a(1)*sin(a(2)*dx(i))+a(3)*cos(a(4)*dy(i))+a(5));
end
endfunction
-->[fo,xo,go]=leastsq(res,[1;1;1;1;1])
go =
0.0000548
0.0007239
0.0000179
- 0.0002057
0.0000786
xo =
34.453752
- 37.848804
22.906797
- 12.214433
64.79372
fo =
1890.0832
-->sr=fo;
-->st=(dz-mean(dz))'*(dz-mean(dz))
st =
18593.056
-->R2=(st-sr)/st
R2 =
0.8983447
Función ajustada:
(
)
(
)
()
Gráfica:
Curvas de nivel en el mismo intervalo (sólo con k=64.8)
Curvas de nivel en el intervalo:
Ajuste a un plano:
Se ajustara la función a un plano de la forma:
function e=res(a)
for i=1:36
e(i)=dz(i)-(a(1)*dx(i)+a(2)*dy(i)+a(3)*dx(i)*dy(i)+a(4));
end
endfunction
-->[fo,xo,go]=leastsq(res,[1;1;1;1])
go =
0.0000535
0.0000623
0.0000155
0.0000198
xo =
- 5.0594287- 6.8299048
0.3111286
94.184286
fo =
1279.1028
-->st=(dz-mean(dz))'*(dz-mean(dz))
st =
18593.056
-->R2=(st-sr)/st
R2 =
0.9312053
Ecuación obtenida:
Gráfica:
Curvas de nivel en el mismo intervalo
Usando para las aproximaciones pedidas la ecuación del plano, ya que tiene un r cuadrado más
próximo a 1:
-->f(6,4.3)
ans =
42.486241
-->f(6.4,5.7)
ans = 34.223456
Problema...
Regístrate para leer el documento completo.