1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
| using System;
using System.Collections.Generic; // Est obligatoir pour utiliser List
namespace Interpolation_Lagrange
{
public class Coordinate
{
public float x = 0;
public float y = 0;
}
public class Program
{
static void Main(string[] args)
{
int i = 0;
int j = 0;
int n = 0;
// Variable enter
List<Coordinate> points = new List<Coordinate>();
Console.Write("Enter number of data : ");
n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Enter data : ");
for (i = 0; i <= n - 1; i++)
{
Coordinate data = new Coordinate();
Console.Write($"x[{i}] = ");
data.x = Convert.ToSingle(Console.ReadLine());
Console.Write($"y[{i}] = ");
data.y = Convert.ToSingle(Console.ReadLine());
points.Add(data);
}
Console.Write("\n\n");
// Calculus method
for (i = 0; i <= n - 1; i++)
{
// Equation form
Console.Write($"l[{i}] = ");
for (j = 0; j <= n - 1; j++)
{
if (i != j)
{
Console.Write($"((x - x[{j}]) / (x[{i}] - x[{j}]))");
}
}
Console.Write("\n");
// Equation values
Console.Write($"l[{i}] = ");
for (j = 0; j <= n - 1; j++)
{
if (i != j && x[j] > 0 && x[i] > 0)
{
Console.Write($"((x - {x[j]}) / ({x[i]} - {x[j]}))");
}
if (i != j && x[j] < 0 && x[i] > 0)
{
Console.Write($"((x + {-x[j]}) / ({x[i]} + {-x[j]}))");
}
if (i != j && x[j] > 0 && x[i] < 0)
{
Console.Write($"((x - {x[j]}) / (- {-x[i]} - {x[j]}))");
}
if (i != j && x[j] < 0 && x[i] < 0)
{
Console.Write($"((x + {-x[j]}) / (- {-x[i]} + {-x[j]}))");
}
}
Console.Write("\n");
// Factored equation
Console.Write($"l[{i}] = ");
float eq = 1;
for (j = 0; j <= n - 1; j++)
{
if (i != j)
{
eq *= (1 / (x[i] - x[j]));
}
}
Console.Write(eq);
for (j = 0; j <= n - 1; j++)
{
if (i != j && x[j] > 0)
{
Console.Write($"(x - {x[j]})");
}
if (i != j && x[j] < 0)
{
Console.Write($"(x + {-x[j]})");
}
}
Console.Write("\n\n");
}
}
}
} |
Partager