Rekursion mit C++ < Mathe-Software < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 14:21 Sa 01.11.2008 | Autor: | arne83 |
Aufgabe | Gegeben seien
(a) die Vorwärtsrekursion: [mm] $a_0 [/mm] = [mm] \frac{e-1}{e}, a_{i} [/mm] = 1 - i [mm] \cdot y_i$
[/mm]
(b) die Rückwärtsrekursion: [mm] $a_k [/mm] = [mm] \frac{1}{2}\left( {\frac{1}{{e\left( {k + 1} \right)}} + \frac{1}{{k + 1}}} \right)$, &a_{i - 1} [/mm] = [mm] \frac{{1 - a_i }}{i}& [/mm] |
Wie schreibt man ein C++-Programm, dass die Werte [mm] $a_0,...,a_k$ [/mm] für $k=30$ mittels Vorwärts- und Rückwärtsrekursion berechnet?
Leider habe ich noch nie programmiert, und wäre für jede Hilfe dankbar.
Diese Aufgabe wurde auch in einem anderen Forum gepostet, aber nicht von mir.
Deshalb...
Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt:
www.matheboard.de
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 10:13 So 02.11.2008 | Autor: | uliweil |
Hallo arne83,
kannst Du mal in der Aufgabe (a) erklären, was [mm] y_{i} [/mm] sein soll.
Gruß
Uli
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 11:07 So 02.11.2008 | Autor: | arne83 |
Da hab ich mich verschrieben.
Das sollte ein [mm] a_{i-1} [/mm] sein.
Also [mm] $a_i [/mm] = 1- i [mm] \cdot a_{i-1}$[/mm]
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:37 So 02.11.2008 | Autor: | uliweil |
Hallo arne83,
ich hab die beiden Aufgaben mal in der Programmiersprache Pascal geschrieben (C++ ist nicht gerade meine Stärke). Ich hoffe es hilft Dir weiter zumindest den algorithmischen Aufbau zu verstehen und Du kannst einen Transfer zu C++ machen.
Die Programme findets Du hier, die Ergebnisse in den Anhängen.
Aufgabe a)
program arne83;
const e = exp(1);
var a0, a1: real;
i:integer;
begin
a0 := (e-1.0)/e;
writeln(' 0 ',a0);
for i := 1 to 30 do
begin
a1 := 1.0 - i * a0;
writeln(i:3, ' ', a1);
a0 := a1
end
end.
Datei-Anhang
Aufgabe b)
program [mm] arne83_2;
[/mm]
const e = exp(1);
var a30, a29: real;
i:integer;
begin
a30 := 0.5*(1/(31*e) + 1/31);
writeln(' 30 ',a30);
for i := 1 to 30 do
begin
a29 := (1.0 - a30)/i;
writeln(30-i:3, ' ', a29);
a30 := a29
end
end.
Datei-Anhang
Gruß
Uli
Dateianhänge: Anhang Nr. 1 (Typ: JPG) [nicht öffentlich] Anhang Nr. 2 (Typ: JPG) [nicht öffentlich]
|
|
|
|