www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Mathematica" - Funktion mit While-Schleife
Funktion mit While-Schleife < Mathematica < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Funktion mit While-Schleife: Tipp
Status: (Frage) beantwortet Status 
Datum: 12:47 Fr 27.02.2009
Autor: PaRu

Ich habe eine Funktion, die eine Summe beinhaltet. Leider kenne ich das Ende der Summenlaufvariable nicht, da es von dem Funktionswert abhängt, der an die Abbruchbedingung geknüpft ist. Das ganze soll dann so aussehen:
[mm] f(x)=\sum_{y=1} y + x [/mm] solange [mm]10 > \sum_{y=1} y + x[/mm]

Anbei auch mein bisheriger Quellcode, der aber nicht funktioniert.

Dateianhänge:
Anhang Nr. 1 (Typ: nb) [nicht öffentlich]
        
Bezug
Funktion mit While-Schleife: Antwort
Status: (Antwort) fertig Status 
Datum: 18:13 Fr 27.02.2009
Autor: abakus


> Ich habe eine Funktion, die eine Summe beinhaltet. Leider
> kenne ich das Ende der Summenlaufvariable nicht, da es von
> dem Funktionswert abhängt, der an die Abbruchbedingung
> geknüpft ist. Das ganze soll dann so aussehen:
>  [mm]f(x)=\sum_{y=1} y + x[/mm] solange [mm]10 > \sum_{y=1} y + x[/mm]
>  
> Anbei auch mein bisheriger Quellcode, der aber nicht
> funktioniert.

Hättest du den Anhang als Textdatei genommen, könnten es viele lesen (ich kann es nicht).

Vom Prinzip (kenne Mathematica nicht) müsste es so ablaufen:

...
y=1
S=0
Do
  S=S+x+y
  y=y+1
WHILE S+x+y<10

Gruß Abakus


Bezug
        
Bezug
Funktion mit While-Schleife: Antwort
Status: (Antwort) fertig Status 
Datum: 18:28 Fr 27.02.2009
Autor: halirutan

Moin,

ich hoffe, dass du in deinem Profil mit "Naturwiss.-Student im Hauptstudium" gelogen hast. Mir ist naemlich nicht klar, fuer was du bei diesem Problem eine Funktion brauchst. Vielleicht habe ich aber auch einfach deine Frage nicht verstanden.

Wenn x eine reelle Zahl ist, dann sollte man in der Lage sein die Summe

[mm] \summe_{y=1}^{n} [/mm] y+x

auszurechnen. Das ergibt

[mm] \bruch{1}{2}(n+n^2+2nx) [/mm]

Du moechtest jetzt, dass dieser Ausdruck kleiner 10 ist und willst dafuer das n wissen. Also nimmt man die Ungleichung und stellt sie um.

10 > [mm] \bruch{1}{2}(n+n^2+2nx) [/mm]

Nun sind wir aber einmal im Mathematica Forum:

1: eq = 10 > Sum[x + y, {y, 1, n}]; 
2: sol = Reduce[eq && n > 0, n, Reals]


0 < n < [mm] \bruch{1}{2} \wurzel{4 x^2 + 4 x + 81} [/mm] + [mm] \bruch{1}{2} [/mm] (-2 x - 1)

Setzt man jetzt fuer x zb 0.23 ein, dann erhaelt man n<3.801, also 3. Und tatsaechlich ergibt die Summe bis n=3 s=6.69, wohingegen s=10.92 wenn bis n=4 summiert wird.

Cheers
Patrick


Bezug
                
Bezug
Funktion mit While-Schleife: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 10:15 So 01.03.2009
Autor: PaRu

@ abakus
wie man sowas prinzipiel programiert, weiß ich. in matlab wäre das alles kein problem. die frage zielt speziell auf eigenheiten von mathematica ab. daher auch das notebook-file.

@ halirutan
das mit dem "Naturwiss.-Student im Hauptstudium" ist nicht gelogen. aber evtl. ist das eigentliche problem wesentlich komplexer, bei dem sich die summe nicht so einfach lösen lässt und ich hab nur ein sehr einfaches beispiel gewählt?
das ganze muss unbedingt eine funktion sein, da das ergebnis in abhänigkeit von x für diverse berechnungen herhalten muss. desweiteren ist die abbruchbedingung etwas anders. im quelltext hab ich es richtig gemacht, aber im thread falsch beschrieben: wenn der summand des aktuellen laufwerts größer als 10 ist, sollen keine weiteren summanden auf die summe addiert werden und die summe soll bis zu dem entsprechendem laufindex als funktionswert zurück gegeben werden.

Bezug
                        
Bezug
Funktion mit While-Schleife: Tipp
Status: (Antwort) fertig Status 
Datum: 03:51 Di 03.03.2009
Autor: halirutan

Moin,

ohne Genaueres ueber das dahinterliegende Problem zu wissen ist es schwierig eine gute Loesung vorzuschlagen. Die absolut dumme Variante ist

1: summe[x_, n_] := Sum[k + x, {k, 1, n}]; 
2: f[x_] := summe[x, NestWhile[#1 + 1 & , 1, 
3:        summe[x, #1] < 10 & ]]


das summiert einfach erst bis 1, dann bis 2, dann bis 3 etc. und schaut immer, ob die Summer groesser 10 ist. Falls nicht macht es weiter, falls doch, dann gibt es die *aktuelle* Summe zurueck.

Das ist natuerlich eine sehr schlechte Variante, wenn es sich bei deiner Summe wirklich um etwas Komplexeres handelt.

Cheers
Patrick

Bezug
                                
Bezug
Funktion mit While-Schleife: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:21 Di 03.03.2009
Autor: PaRu

@ halirutan
danke erst einmal. das ist was ich brauchte und die lösung ist auch recht optimal, da in zeile 3 nicht "summe[x, #1] < 10" sondern "x + #1 < 10" stehen muss und somit die summe nur einmal ausgeführt wird.
und um es ganz korrekt zu machen, muss da "NestWhile[ ... ] - 1" stehen.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathematica"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.vorhilfe.de