¿Cuándo debo usar FindRoot en lugar de NSolve?
Al igual que Solve, NSolve ha sido diseñado principalmente para resolver ecuaciones polinomiales.
In[1]:= NSolve[4 - r^2 == r, r]
Out[1]= {{r -> -2.56155}, {r -> 1.56155}}
Los métodos algebraicos disponibles en NSolve no pueden manejar ecuaciones generales con funciones trascendentales, por ejemplo:
In[2]:= NSolve[4 Cos[r] == r, r]
NSolve::nsmet: This system cannot be solved with the methods available to NSolve.
Out[2]= NSolve[4 Cos[r] == r, r]
FindRoot utiliza métodos numéricos para comenzar con un valor inicial para la variable independiente y encontrar una solución:
In[3]:= fr = FindRoot[ 4 Cos[r] == r, {r, 1}]
Out[3]= {r -> 1.25235}
Verifique que el valor devuelto resuelva la ecuación:
In[4]:= (4 Cos[r] - r) /. fr // Chop
Out[4]= 0
FindRoot encuentra una solución por cada evaluación. Para obtener más soluciones mediante FindRoot, los valores iniciales elegidos deben ser suficientemente cercanos a las otras ubicaciones raíz:
In[5]:= Plot[ 4 Cos[r] - r, {r, -2 Pi, 2 Pi}]
In[6]:= FindRoot[ 4 Cos[r] == r, {r, -4}]
Out[6]= {r -> -3.5953}
In[7]:= FindRoot[ 4 Cos[r] == r, {r, -2}]
Out[7]= {r -> -2.13333}
También revise el tutorial sobre cómo resolver ecuaciones numéricas.
[English]
Contacte a soporte técnico
Estamos listos para ayudarlo a resolver sus preguntas sobre facturación, activación o problemas técnicos.
1-800-WOLFRAM (+1-217-398-0700 para usuarios internacionales)
Soporte al cliente
Lunes–viernes
8am–5pm hora estándar del centro
- Registro o activación del producto
- Información y ordenes de preventas
- Ayuda con la instalación y primera ejecución
Soporte técnico avanzado (para clientes admisibles)
Lunes–Jueves
8am–7pm hora estándar del centro
Viernes
8:30–10am y 11am–5pm hora estándar del centro
- Soporte técnico prioritario
- Asistencia sobre el producto por expertos Wolfram
- Ayuda con la programación de Wolfram Language
- Soporte de instalación avanzado