Rekursion mit C

Hallo!

ich will aus einem 4x4 array der mit Temperaturwerten(float) belegt ist, an einen 8x8 Array annähern! Also ich denke das wäre sowas wie Antialiasing nur in klein. Ich habe auch schon viel darüber gegooget aber eine Lösung habe ich bis jetzt leider nicht gefunden. Ich hoffe da muss man nicht mit einer Finite Differenzen Methode ran…
Ich habe sowas ähnliches in Excel gefunden:

http://www.akademie.de/wissen/excel-zirkelbezuege-re…

Will eigentlich das gleiche mit C hinkriegen…

Weiss da einer den Ansatz?

Hallo,

du suchst vermutlich nach „Interpolation“. Bilinear würde sich in diesem Fall anbieten. Der einfachste Fall wäre, dass du die bekannten Werte (o) jeweils auf die ungeraden Zeilen / Spalten verteilst du die dazwischen-liegenden interpolierst (x):

o x o x o x o x
x x x x x x x x
o x o x o x o x
x x x x x x x x
...

Die x, die zwischen den o liegen, kannst du einfach mit dem Mittelwert berechnen. Entweder mit den beiden Nachbarn oder mit den vier umliegenden.
In der letzten Spalte / Zeile tritt dann aber das Problem auf, dass es keinen nächsten Wert gibt. Hier könntest du dir z.B. durch Extrapolation helfen, wenn das sinnvoll ist. Und die kannst du bspw. mit den schon angesprochenen finiten Differenzen lösen (warum auch immer du diese nicht magst).
Du kannst natürlich auch die Werte fest in die erste und letzte Spalte / Zeile eintragen und dann interpolieren. Da musst du allerdings die Interpolationsparameter noch berechnen, weil die Spalten und Zeilen dazwischen nicht exakt auf den Werten liegen, die du bereits hast. Wikipedia hilft dir da sicher weiter.
Eine Rekursion ist hier übrigens nicht nötig.

Nico