Hola,
puedes intentar romper tu cabeza sobre esto encontrando un enfoque analítico, pero ¿por qué no usar la fuerza bruta y escribir un programa?
Podemos inferir que a , byc deben estar entre [-sqrt (2), + sqrt (2)]
- Cómo calcular [matemáticas] 10 ^ 1 + 9 ^ 2 + 8 ^ 3 + 7 ^ 4 +… + 2 ^ {9} + 1 ^ {10} [/ matemáticas]
- ¿Cómo encontramos la raíz cuadrada de 0.9?
- Hay un edificio con una planta + 6 pisos. Un ascensor comienza desde la planta baja con 6 personas en el mismo. Solo se presionan 3 botones de piso (3, 4 y 5). ¿Cuál es la probabilidad de que 2 o más personas bajen en el 3er piso?
- ¿Me podría recomendar un mapa conceptual de conocimiento en línea?
- ¿Cómo obtener orientación en matemáticas?
Esto se debe a que a ^ 2 + b ^ 2 + c ^ 2 = 2.
Todos los cuadrados son positivos, por lo que si alguno de los términos fuera mayor que 2, los demás nunca pueden compensar eso, ya que no pueden ser negativos.
Puedes resolver c como 1 – a – b;
Ahora, si sustituye esto en a ^ 2 + b ^ 2 + c ^ 2 = 2, obtendrá:
2 * b ^ 2 + (2 * a-2) * b + (2 * a ^ 2 – 2 * a -1) = 0
Esta es una ecuación cuadrática en b.
Deje A = 2
B = (2 * a-2)
C = (2 * a ^ 2 – 2 * a -1)
Encontramos D ^ 2 = -12 * a ^ 2 + 24 * a + 8
Si resolvemos una de ESTA ecuación cuadrática, encontramos a = 1-sqrt (2) o a = 1 + sqrt (2).
Entonces a debe estar ENTRE estos límites para que D ^ 2 sea> = 0.
También conocemos un límite superior mejor (más bajo = más restrictivo) para a : sqrt (2).
En el siguiente programa tengo un bucle for para a . A partir de esto, se calcula b. En realidad, puede ver que el exterior si en la función de verificación siempre es cierto, lo que significa que hice bien las matemáticas para resolver b.
Si coloca un punto de interrupción en printf en la función de verificación, verá que nunca se alcanza. Aunque no hay pruebas, parece ser que al menos no hay soluciones con a , byc en R, tal vez un tipo más inteligente encuentre algunas soluciones complejas.
===
#include
#include
cheque nulo (doble a, doble b)
{
doble c = 1 – a – b;
doble a2 = a * a;
doble b2 = b * b;
doble c2 = c * c;
doble suma2 = a2 + b2 + c2;
if (fabs (sum2 – 2) <0.001)
{
doble suma3 = a2 * a + b2 * b + c2 * c;
if (fabs (suma3 – 3) <0.001)
{
printf (“a =% g, b =% g, c =% g \ n”, a, b, c);
}
}
}
int main (int argc, char * argv [])
{
límite doble = sqrt (2.0);
doble paso = 1e-7;
int i = 0;
para (doble a = 1-sqrt (2.0); a <= límite; a + = paso, ++ i)
{
doble a2 = a * a;
si (i% 100 == 0)
printf (“a =% g \ n”, a);
doble A = 2;
doble B = (2 * a – 2);
doble C = (2 * a * a – 2 * a – 1);
doble D2 = B * B – 4 * A * C;
si (D2> = 0)
{
doble D = sqrt (D2);
doble b1 = (-B – D) / (2 * A);
cheque (a, b1);
doble b2 = (-B + D) / (2 * A);
comprobar (a, b2);
}
}
devuelve 0;
}