hola, ante todo presentarme pues soi nuevoSi tenés el código, publicalo acá a ver en que podemos ayudarte.
tengo un examen de metodos numericos y no me entero muy bien.
Un ejercicio es de resolucion de intregales por dos metodos, trapecio y simpson y otro ejercicio para hacer por los metodos de biseccion, secante o newton.
La cosa es que no entiendo nada, ni porque hay tanto static void e static int o doubl, para que sirve cada uno.......
Si me podeis ayudar a encontar alguna pagina o algo que explique cada metodo o ejemlos de dichos ejercicios porque no encuentro nada por internet.
Sludos y gracias
el problema es que no tengo los codigos de dichos metodos, y los estoy buscando, en internet solo encuentro la forma matematica de cada metodo y su explicacion pero esque no encuentro como es el codigo para visual studio c#En ese caso no. En solocodigo no hacemos tareas. Solamente atendemos dudas puntuales.
si alguien lo encuentra o puede pasrmelo se lo agradezco.
using System;
class trapecios
{
static double Fx1(double x)
{
return Math.Sin(x);
}
static double trapecio (double A, double B, int N)
{
double Integral = 0;
double h = (B - A) / N;
for (double x = A; x < B; x += h)
{
double xdch = x + h;
double Fx = Fx1(x);
double Fxdch = Fx1(xdch);
Integral += (Fx + Fxdch) / 2 * h;
}
return Integral;
}
static void Main()
{
double Menor = 0.0, Mayor = Math.PI / 2.0;
int Intervalos = 1000;
double Ancho = (Mayor - Menor) / Intervalos;
double Integral = (Fx1(Menor) + Fx1(Mayor)) / 2.0;
for (int I = 1; I < Intervalos; I++)
{
Integral += Fx1(Menor + I * Ancho);
}
Integral *= Ancho;
Console.WriteLine(Integral);
Console.ReadLine();
}
}
Nunca invocas la funcion trapecio(la que esta en rojo), por eso no importa si la escribes o noCitarusing System;
class trapecios
{
static double Fx1(double x)
{
return Math.Sin(x);
}
static double trapecio (double A, double B, int N)
{
double Integral = 0;
double h = (B - A) / N;
for (double x = A; x < B; x += h)
{
double xdch = x + h;
double Fx = Fx1(x);
double Fxdch = Fx1(xdch);
Integral += (Fx + Fxdch) / 2 * h;
}
return Integral;
}
static void Main()
{
double Menor = 0.0, Mayor = Math.PI / 2.0;
int Intervalos = 1000;
double Ancho = (Mayor - Menor) / Intervalos;
double Integral = (Fx1(Menor) + Fx1(Mayor)) / 2.0;
for (int I = 1; I < Intervalos; I++)
{
Integral += Fx1(Menor + I * Ancho);
}
Integral *= Ancho;
Console.WriteLine(Integral);
Console.ReadLine();
}
}
hola de nuevo, probando en casa e hecho este progrmama para resolver la funcion seno de x entre 0 y pi/2, pero tengo una duda y es que con el codigo que os dejo me sale el programa pero si quito lo que pongo en rojo tambien salle, y queria saber porque
///desarrollar un programa que calcule la integral definida de la funcion 1/X ENTRE 1 y 2 por el metodo del trapecio , utilizando 1000 intervalos
using System;
class trapecio
{
static double F(double x)
{
return 1/x;
}
static void Main()
{
double Menor = 1.0, Mayor = 2.0;
int Intervalos = 1000;
double Ancho = (Mayor - Menor) / Intervalos;
double Integral = (F(Menor) + F(Mayor)) / 2.0;
for (int I = 1; I < Intervalos; I++)
Integral += F(Menor + I * Ancho);
Integral *= Ancho;
Console.WriteLine(Integral);
Console.ReadLine();
}
}
///desarrollar un programa que calcule la integrales definida de la funcion seno entre 0 y pi/2 por el metodo de simpson , utilizando 1000 intervalos
using System;
class simpson
{
static double F(double x)
{
return Math.Sin(x);
}
static void Main()
{
double Menor = 0.0, Mayor = Math.PI / 2.0; int Intervalos = 1000; double Ancho = (Mayor - Menor) / Intervalos,
Integral = F(Menor) + 4.0 * F(Mayor - Ancho) + F(Mayor);
for (int I = 2; I < Intervalos; I += 2)
Integral += 4.0 * F(Menor + I * Ancho);
Integral *= Ancho / 3.0; Console.WriteLine(Integral); Console.ReadLine();
}
}
using System;
class metodo
{
static double F(double x)
{
return x * x - 100;
}
static double BISECCION(double A, double B, int N)
{
double FA = F(x), Fpm, pm;
do
{
pm = (A + B) / 2;
Fpm = F(pm);
if (Fpm != 0 && FA * Fpm > 0)
{
A = pm;
}
if (Fpm != 0 && FA * Fpm < 0)
{
B = pm;
}
N--;
} while (N > 0 && Fpm != 0);
return pm;
}
static void Main()
{
Console.WriteLine("Dame A: ");
double A = double.Parse(Console.ReadLine());
Console.WriteLine("Dame B: ");
double B = double.Parse(Console.ReadLine());
Console.WriteLine("Dame N: ");
int N = int.Parse(Console.ReadLine());
....................................
}
}
hola de nuevo, ya consegui arreglar el problema, ahora me viene otra duda a ver si em ayudaisEscribes el nombre del metodo, seguido de los parametros entre parentesis. En este caso, como regresas un valor double, necesitas una variable double en el Main para ahi almacenar el valor que regresa la funcion.
tengo este codigo, pero dentro del static void Main como hago para invocar el metodo de biseccion???saluddosCitarusing System;
class metodo
{
static double F(double x)
{
return x * x - 100;
}
static double BISECCION(double A, double B, int N)
{
double FA = F(x), Fpm, pm;
do
{
pm = (A + B) / 2;
Fpm = F(pm);
if (Fpm != 0 && FA * Fpm > 0)
{
A = pm;
}
if (Fpm != 0 && FA * Fpm < 0)
{
B = pm;
}
N--;
} while (N > 0 && Fpm != 0);
return pm;
}
static void Main()
{
Console.WriteLine("Dame A: ");
double A = double.Parse(Console.ReadLine());
Console.WriteLine("Dame B: ");
double B = double.Parse(Console.ReadLine());
Console.WriteLine("Dame N: ");
int N = int.Parse(Console.ReadLine());
....................................
}
}
ok, muchas gracias daniel :DEso es por que al declarar la variable FA, le das el valor de F(x), es decir, que haga la funcion F con el parametro x.
dime si lo que e puesto esta bien, lo de resultado
ahora despuesde hacer lo que dices, lo compilo todo pero me aparece un eror que no se arreglar que dice exactamente "El nombre 'x' no existe en el contexto actual"
y no se como arreglarloCódigo: Text
using System; class metodo { static double F(double x) { return x * x - 100; } static double BISECCION(double A, double B, int N) { double FA = F(x), Fpm, pm; do { pm = (A + B) / 2; Fpm = F(pm); if (Fpm != 0 && FA * Fpm > 0) { A = pm; } if (Fpm != 0 && FA * Fpm < 0) { B = pm; } N--; } while (N > 0 && Fpm != 0); return pm; } static void Main() { Console.WriteLine("Dame A: "); double A = double.Parse(Console.ReadLine()); Console.WriteLine("Dame B: "); double B = double.Parse(Console.ReadLine()); Console.WriteLine("Dame N: "); int N = int.Parse(Console.ReadLine()); double resultado = BISECCION(A, B, N); } }
hola de nuevoPues.. la x la declaras solo con un
como hago entonces para declarar la variable x, y que valor le doi