AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Aufwandsabschätzung: Induktionsbeweis und O-Notation
Thema durchsuchen
Ansicht
Themen-Optionen

Aufwandsabschätzung: Induktionsbeweis und O-Notation

Ein Thema von mirage228 · begonnen am 14. Apr 2008 · letzter Beitrag vom 14. Apr 2008
Antwort Antwort
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#1

Aufwandsabschätzung: Induktionsbeweis und O-Notation

  Alt 14. Apr 2008, 20:38
Hallo,

In meiner Vorlesung an der Uni nehmen wir für die Aufwandsabschätzung die O-Notation und damit Induktionsbeweis zur Hilfe.

Nun haben wir in einer Übung eine Aufgabe einen Induktionsbeweis für eine O-Notations-Formel zu führen, bei der ich nicht so recht weiterkommen.

Man soll zeigen, dass die Funktion
f(n) = 1/1000 * n^4 + 1000 * n^2 * log(n) Element aus ("E")
O(n^4) ist

Induktionsvorraussetzung ist also:
1/1000 * n^4 + 1000 * n^2 * log(n) < n^4

Beim Induktionsbeweis wähle ich nun eine Konstante c0 vor n^4, welche in diesem Fall auf "1" setze, sowieso ein beliebiges n0, der dann den Induktionsbeginn darstellt (n0 = 1)

Daraus erhält man schonmal (für n = 1):
1/1000 <= 1

Für den Induktionsbeweis macht man nun das ganze für (n + 1):

1/1000 * (n + 1)^4 + 1000 * (n + 1)^2 * log(n + 1) <= (n + 1)^4

Nun an dieser Stelle komme ich nicht weiter. Es gilt ja z.B. oben c0 möglichst geschickt zu wählen um hier u.A. auch mittels der Induktionsvorraussetzung beweisen zu können, dass diese Ungleichung zutrifft.

Wir hatten in der Vorlesung ein Beispiel in der auf der rechten Seite (also bei (n + 1)^4) die Induktionssvorraussetzung verwendet worden ist, damit kam ich allerdings nicht weiter.

Weiß wer von euch Rat oder kann mir evtl. bei dem Ansatz helfen?

Im Anhang noch mal die Aufgabenstellung mit den Originalsymbolen als GIF-Screenshoft aus dem PDF.

Viele Grüße
Miniaturansicht angehängter Grafiken
induktion_aufgabe_192.gif  
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Aufwandsabschätzung: Induktionsbeweis und O-Notation

  Alt 14. Apr 2008, 21:17
Da steht jetzt nur "Zeigen Sie", nicht "Zeigen Sie durch vollständige Induktion". Musst du das wirklich mit Induktion machen, also steht das explizit in der Aufgabe drin bzw. wurde es dir so gesagt? Ansonsten würde ich das einfach durch Grenzwertrechnung beweisen.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Aufwandsabschätzung: Induktionsbeweis und O-Notation

  Alt 14. Apr 2008, 21:23
Ich würde nicht zeigen, dass gilt:

1/1000 * (n + 1)^4 + 1000 * (n + 1)^2 * log(n + 1) <= (n + 1)^4

sondern:

1/1000 * (n + 1)^4 + 1000 * (n + 1)^2 * log(n + 1) ELEMENT O(n^4)

[ninja-edit]
Dani H.
At Least I Can Say I Tried
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Aufwandsabschätzung: Induktionsbeweis und O-Notation

  Alt 14. Apr 2008, 21:36
Du musst ja nur ein n0 und ein c wählen - nimm doch einfach n0=10.000 und c=2.

Dann gilt:
Code:
  1/1000 * 10.000^4   +   1000 * 10.000^2 * log(10.000)
< 1/1000 * 10.000^4  + 10.000^4
< 2* 10.000^4
Und für n>10.000 gilt das auch.
The angels have the phone box.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Aufwandsabschätzung: Induktionsbeweis und O-Notation

  Alt 14. Apr 2008, 21:49
Zitat von 3_of_8:
Da steht jetzt nur "Zeigen Sie", nicht "Zeigen Sie durch vollständige Induktion". Musst du das wirklich mit Induktion machen, also steht das explizit in der Aufgabe drin bzw. wurde es dir so gesagt? Ansonsten würde ich das einfach durch Grenzwertrechnung beweisen.
Ah ja, sorry, wir hatten es in der Vorlesung so gemacht (halt mit simpleren Beispielen) und ich denke daher, dass wir das schon so machen sollen.


Zitat von Dani:
Im Induktionsschritt musst du nicht zeigen, dass gilt:

1/1000 * (n + 1)^4 + 1000 * (n + 1)^2 * log(n + 1) <= (n + 1)^4

sondern:

1/1000 * (n + 1)^4 + 1000 * (n + 1)^2 * log(n + 1) ELEMENT O(n^4)

reicht das schon?
Wir hatten auf jeden Fall in den Beispielen eine Termumformung durchgeführt. Ich hatte dabei eher die Vermutung, dass da gewisse Eigenheiten der Terme ausgenutzt wurden. z.B. ein Umformungsschritt im Beispiel (verkürzt):

IV: 42*n <= 42*n^2 + 1
zu zeigen: 42*(n+1) <= 42*(n+1)^2 + 1

42*(n+1) = 42n + 42
42n + 42 <= (IV) 42*n^2 + 1 + 42 <= 42*n^2 + 84*n + 42 +1 = 42*(n+1)^2 + 1

Edit: Äh, das sieht so vielleicht doch etwas kompliziert aus, habs doch mal eingescannt und angehangen
Ist zwar in dem Beispiel nicht mit c0 und n0 sondern mit zwei "c"s, aber die beiden Methoden sind letzlich equivalent...

Also da wird die eine Seite auf die andere umgeformt, ich frage mich nur wie der Ansatz ist und wie man da am besten vorgeht...

Zitat von Gausi:
Du musst ja nur ein n0 und ein c wählen - nimm doch einfach n0=10.000 und c=2.

Dann gilt:
Code:
  1/1000 * 10.000^4   +   1000 * 10.000^2 * log(10.000)
< 1/1000 * 10.000^4  + 10.000^4
&lt; 2* 10.000^4
Und für n>10.000 gilt das auch.
Und das reicht auch für eine vollständige Induktion? Also wir hatten ja ein n gewählt (ich ja oben auch) und dann sollte das halt nochmal für n -> n + 1 bewiesen werden... (in dem "Stil" wie in dem verkürzten Beispiel von mir genannt)

Danke für eure Antworten!

Viele Grüße
Miniaturansicht angehängter Grafiken
induktion_beispiel_117.gif  
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz