//public static Termino operator+(Termino t1,Termino t2){ // Termino t = new Termino(t1._multiplicando + t2._multiplicando, t1._exponente); // return t; //} #region ICloneable Members object ICloneable.Clone() { Termino clon = new Termino(); clon._exponente = _exponente; clon._multiplicando = _multiplicando; return(clon); }
object ICloneable.Clone() { Termino clon = new Termino(); clon._exponente = _exponente; clon._multiplicando = _multiplicando; return clon; }
public void TestingIntegral() { Termino t1 = new Termino(3, 3); Termino t2 = new Termino(9, 2); t2.Integrar(); Assert.IsTrue(t1.Equals(t2)); }
public void TestingDerivada() { Termino t1 = new Termino(3, 3); Termino t2 = new Termino(9, 2); t1.Derivar(); Assert.IsTrue(t1.Equals(t2)); }
public override bool Equals(object obj) { if (obj != null & obj is Termino) { Termino t = (Termino)obj; return(_exponente == t._exponente && _multiplicando == t._multiplicando); } else { return(false); } }
void IPolinomio.Insertar(Termino t) { double exponente = t.Exponente; if (_listaTerminos.ContainsKey(exponente)) { Termino t2 = _listaTerminos[exponente]; t2.Multiplicando = t2.Multiplicando + t.Multiplicando; } else { _listaTerminos.Add(exponente, t); } }
public void TestEquals2() { Termino t1 = new Termino(2, 2); Termino t2 = new Termino(3, 3); Termino t3 = new Termino(3, 0); IPolinomio p1 = new EcuacionesLib.Polinomio(); IPolinomio p2 = new EcuacionesLib.Polinomio(); p1.Insertar(t1); p1.Insertar(t2); p1.Insertar(t3); p2.Insertar(t1); p2.Insertar(t2); //p2.Insertar(t3); Assert.IsFalse(p1.Equals(p2)); }
public void Newton() { Termino t1 = new Termino(1, 4); Termino t2 = new Termino(-1, 3); Termino t3 = new Termino(-3, 2); Termino t4 = new Termino(-4, 1); Termino t5 = new Termino(-2, 0); IPolinomio p1 = new EcuacionesLib.Polinomio(); IPolinomio p2; p1.Insertar(t1); p1.Insertar(t2); p1.Insertar(t3); p1.Insertar(t4); p1.Insertar(t5); //p2.Insertar(t3); p2 = (IPolinomio)p1.Clone(); p2.Derivar(); Assert.IsTrue((int)p1.Resolver(EcuacionesLib.Polinomio.Newton(2, 3, p1)) == 0); }
double IPolinomio.Resolver(double x) { double v, ultimoExp; IList <Termino> lista = _listaTerminos.Values; int size = lista.Count; Termino[] terminos = new Termino[size]; lista.CopyTo(terminos, 0); Termino t1 = terminos[size - 1]; v = t1.Multiplicando; ultimoExp = t1.Exponente; for (int i = size - 2; i > -1 && ultimoExp > 0; i--) { Termino t2 = terminos[i]; double grado = t1.Exponente - t2.Exponente; double pot = Math.Pow(x, grado); v = v * pot; v += t2.Multiplicando; ultimoExp = t2.Exponente; if (ultimoExp < 0) { v += t1.Multiplicando; break; } t1 = t2; } if (ultimoExp > -1) { v = v * Math.Pow(x, ultimoExp); } return(v); }
double IPolinomio.Resolver(double x) { double v, ultimoExp; IList<Termino> lista = _listaTerminos.Values; int size = lista.Count; Termino[] terminos = new Termino[size]; lista.CopyTo(terminos, 0); Termino t1 = terminos[size - 1]; v = t1.Multiplicando; ultimoExp = t1.Exponente; for (int i = size - 2; i > -1&&ultimoExp>0; i--) { Termino t2 = terminos[i]; double grado = t1.Exponente - t2.Exponente; double pot = Math.Pow(x, grado); v = v * pot; v+=t2.Multiplicando; ultimoExp = t2.Exponente; if (ultimoExp < 0) { v += t1.Multiplicando; break; } t1 = t2; } if (ultimoExp > -1) v = v * Math.Pow(x, ultimoExp); return v; }