using System;
using System.Collections.Generic;
namespace Rekursion
{
public static class Program
{
public static List<double> a { get; set; } = new List<double>();
public static void Main(string[] args)
{
a.Add(-1);
a.Add(Math.Sqrt(3) / 2);
for (int i = 2; i < 20; i++)
{
a.Add(function(i));
}
for (int i = 0; i < 20; i++)
{
Console.WriteLine(a[i]);
}
Console.ReadKey();
}
public static double function(int n)
{
double a1 = a[n-1];
double a2 = a[n-2];
double an = Math.Sqrt(n.high(2) - 1).high(n-1);
an /= n.high(n);
an *= Math.Sqrt((n - 1).high(2) - 1).high(n - 2);
an /= (n - 1).high(n - 2);
an *= a2;
an -= Math.Sqrt(n.high(2) - 1).high(n - 1) / n.high(n) * a1;
return an;
}
public static double high<T>(this T a, int n)
where T: struct
{
double d = Convert.ToDouble(a);
double e = d;
for (int i = 1; i < n; i++)
{
e *= d;
}
return e;
}
}
}
Also wer da eine Regelmäßigkeit feststellt, hat ein wirklich scharfes Auge. Also numerisch sehe ich da nichts. Da muss man wohl analytisch rangehen und das ist dann wohl eher unter der Kategorie Zahlenrätsel zu sehen...
Da ist wieder der Vorteil der Praxis, da ist alles begrenzt :D Man legt einen Spline durch das vorher definierte Intervall und fertig. Okay Splines sind mehrere Funktionen, damit man der Aufgabe gerecht wird, wird eine stark oszillierende Polynom Interpolation genutzt :-P Nähert man den Grad an unendlich mit den unendlichen Stützstellen hat, man eine explizite Darstellung :D Und da eh nur an den Stützstellen ausgewertet wird interessiert ja niemanden was dazwischen passiert.
Aber jetzt mal ernsthaft was ist der Trick? Weißt du es mittlerweile?