# ¿Incógnitas en lenguaje c?



## georgenda (Abr 20, 2011)

¡Hola a todos! 

Estoy aquí para disfrutar al máximo de este maravilloso foro que desde siempre me ha estado resolviendo soluciones, pero ahora hay una pregunta que aún no ha sido cuestionada en el foro (o por lo menos eso creo): ¿Pueden introducirse incógnitas (es decir, variables que representen un valor que no sabemos) en un programa programado en lenguaje c (lenguaje c, no c++)?

Me encantaría saberlo porque quisiera enseñarle a mi profesor de informática este programa que tanto me estoy currando  .

Bueno, no os hago perder más el tiempo. Espero vuestras respuestas, muchísimas gracias a todos y felices pascuas (nunca mejor dicho ).


----------



## MerLiNz (Abr 20, 2011)

Hola, no entiendo muy bien a que te refieres, pero si lo que quieres es poner un codigo con una incognita y que el compilador te las resuelva me temo que no es posible, te puedes currar tu codigo para meter una formula y que este lo resuelva, pero solo hara lo que tu le ordenes. Si tu pones x=2*x seguramente x=0 ya que por defecto x sera 0, 2*0=0.

Lo que puedes hacer por ejemplo, poner una formula para una ecuacion de 2º grado, y cuando metas las variables mediante una formula almacenada esta se resuelva.


----------



## georgenda (Abr 21, 2011)

MerLiNz dijo:


> Hola, no entiendo muy bien a que te refieres, pero si lo que quieres es poner un codigo con una incognita y que el compilador te las resuelva me temo que no es posible, te puedes currar tu codigo para meter una formula y que este lo resuelva, pero solo hara lo que tu le ordenes. Si tu pones x=2*x seguramente x=0 ya que por defecto x sera 0, 2*0=0.
> 
> Lo que puedes hacer por ejemplo, poner una formula para una ecuacion de 2º grado, y cuando metas las variables mediante una formula almacenada esta se resuelva.



¡Hola MerLiNz!
Gracias por tu respuesta, primero de todo. Estoy haciendo un programa para hallar circuncentros y ahora mismo lo único que quiero que me resuelva es un sistema de ecuaciones de dos rectas. Aunque también deseo que realice el producto cruzado de la ecuación continua, pero ahora mismo es eso lo que desconozco, si me dará la solución real expresando el valor de x e y, o si me dirá que ambas variables tienen como resultado 0. Estoy encajado en este problema y me encantaría poder resolverla, ya que hasta ahora he conseguido que me halle puntos medios, vectores y vectores perpendiculares. Si hay que plantear el sistema de ecuaciones, no sé cómo escribirlo en el programa y me ayudaría mucho que me escribieras el código correspondiente para tal, aunque lo veo un poco pesado la verdad, pero es que lo necesito porque no encuentro nada ni en google ni en otros buscadores online. Espero que puedas ayudarme; muchísimas gracias, de verdad


----------



## dukex (Abr 21, 2011)

Hola,
Creo, no estoy seguro.  tal véz  lo que necesitas  es resolver un sitema de ecuaciones lineales, para ello "según lo que quieres" debes reconocer con tu programa los miembros de cada ecuación para formar así una matríz.... 

a esta matriz le aplicarás ahora un método númerico computacional llamado "eliminación de gauss-jordan".... exísten otros algortimos mas eficientes...

*Buscá en google:*
-eliminicacion de gauss-jordan
-solucion de sistemas de ecuaciones lineales
-métodos númericos


----------



## georgenda (Abr 21, 2011)

dukex dijo:


> Hola,
> Creo, no estoy seguro.  tal véz  lo que necesitas  es resolver un sitema de ecuaciones lineales, para ello "según lo que quieres" debes reconocer con tu programa los miembros de cada ecuación para formar así una matríz....
> 
> a esta matriz le aplicarás ahora un método númerico computacional llamado "eliminación de gauss-jordan".... exísten otros algortimos mas eficientes...
> ...


 Eres un crack, eso es lo que eres


----------



## MerLiNz (Abr 21, 2011)

Como dice dukex debes reconocer los miembros de la ecuacion, y luego escribir la formula para hayar el resultado. 

Ejemplo, para resolver una ecuacion de segundo grado, declaras las variables a,b,c y obtienes los numeros de la ecuacion y los almacenas en las variables a, b y c.

int a,b,c, x1, x2;

ahora el procedimiento seria:

x1=(-b+sqrt(b^2-4*a*c))/(a*2)
x2=(-b-sqrt(b^2-4*a*c))/(a*2)


----------



## georgenda (Abr 23, 2011)

¡Buenas de nuevo!
He intentado mil veces resolverlo intentando hacer el método del sistema, pero no me funciona...
¿Alguien sabría el código a introducir en el programa?, es decir, la escritura correspondiente para hacer que te resolviera sistemas de al menos 2 incógnitas.


----------



## Chico3001 (Abr 23, 2011)

Google es tu mejor amigo:

http://www.mygnet.net/codigos/c_plus_plus/analisisnumericos/gauss_jordan.1201
http://html.rincondelvago.com/metodos-numericos_gauss-jordan-y-newton-raphson.html
https://www.underground.org.mx/index.php?topic=18380.0


----------



## asherar (Abr 23, 2011)

¿Por qué no probar métodos iterativos como el de Jacobi (lineal), o el de Gradiente Conjugado, 
que no modifican la matriz de coeficientes del problema [LATEX]A[/LATEX]?

El de Jacobi es un método de aproximación que se aplica a matrices [LATEX]A[/LATEX]:
a) no singulares (det([LATEX]A[/LATEX])=/=0), y
b) "diagonal dominantes" ( [LATEX] a_i_i >  a_i_j [/LATEX] para todo [LATEX]i[/LATEX]=/=[LATEX]j[/LATEX]), 

El de GC es un método exacto (en aritmética exacta) de N pasos (N = nro de incógnitas) que se aplica a matrices: 
a) no singulares, 
b) simétricas  ([LATEX]A=A^T[/LATEX]), y
c) "definidas positivas"  (|x.([LATEX]A[/LATEX] x)|>0 para todo |x|=1). 

Cuando la matriz no cumple con las condiciones apropiadas se pueden aplicar "acondicionadores" que modifican el sistema, para que en el nuevo sí se cumplan.
Ambos son apropiados para sistemas con muuuuchas incógnitas (matrices grandes: N >> 20), donde el acarreo de errores de truncamiento hace estragos con el método de Gauss, pero para pocas variables funcionan igual. 

Más datos ---> Go Google


----------



## georgenda (Abr 27, 2011)

Zanjado el tema, gracias a todos por colaborar! DDDDDDD

Zanjado el tema, solucionado todo! Muchísimas gracias a todos por colaborar!


----------



## dukex (Abr 27, 2011)

Que buena noticia georgenda!!.   

Deberias compartir tu solución con la comunidad,  o algo de información al respecto.

Saludos


----------

