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 "Matlab" - Newton-Verfahren
Newton-Verfahren < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Newton-Verfahren: Übung
Status: (Frage) beantwortet Status 
Datum: 08:50 Do 30.10.2014
Autor: Striker_03

Aufgabe
(a) Berechnen Sie die Nullstellen von $ p= [mm] f_1,f_7 [/mm] $ mit dem Newtonschen Verfahren.
$ [mm] x_t_+_1 [/mm] = [mm] x_t-\bruch{f(x_t)}{f'(x_t)}, [/mm] $ $ t=0,1,..., $
für die folgenden Startwerte [mm] x_0: [/mm]
$ [mm] x_0 [/mm] = -3 $, $ [mm] x_0 [/mm] = -1,5 $ , $ [mm] x_0 [/mm] = 0 $, $ [mm] x_0 [/mm] = 1,5 $, $ [mm] x_0=3 [/mm] $

in (a) und (b) gewinnen Sie die für die Iterationsformel bzw. für [mm] s_t [/mm]  benötigten Werte [mm] p(x_t),p'(x_t) [/mm] und $ [mm] \bruch{(p(x_t)-p(x_t_-_1))}{x_t-x_t_-_1} [/mm] $ jeweils mit dem Hornerschema. Hierzu beachten Sie: Mit dem P [mm] \in P_n [/mm] aus der erstem Zeile des Hornerschemas erhaltenen [mm] q_t \in P_n_1 [/mm] mit $ p = [mm] p(x_t)+(x-x_t)q_t [/mm] $ gilt $ [mm] p'(x_t) [/mm] = [mm] q(x_t) [/mm] $ und $ [mm] \bruch{p(x_t)-p(x_t_-_1)}{x_t-x_t_-_1} [/mm] $

$ [mm] f_1(x) [/mm] = [mm] x^5-0.4x^4-5x^3+2x^2+4x-1.5, [/mm] $ $ x [mm] \in \IR [/mm] $

Hallo,
ich habe einige Verständnisprobleme bei der Aufgabe.
Erstmal allgemein ich habe  jetzt nur (a) aufgeschrieben und [mm] f_1. f_2-f_7 [/mm] kann ich ja wenn alles so weit ist mal aufschreiben.


x = -3 % Startwert
j = 5 % Anzahl der Durchläufe

for i = 1:j % Beginn der Schleife

    fx = [mm] x^5-0.4*x^4-5*x^3+2*x^2+4*x-1.5; [/mm]   % Funktion
    dx = [mm] 5*x^4-1.6*x^3-15*x^2+4*x+4; [/mm]        % Ableitung der Funktion

    x = x - fx/dx   % Berechnung
end

( ich wollte es per code schreiben mit den befehl [code] aber irgendwie hat es nicht hingehauen, sorry.)

Ist mein Code für das Newton-Verfahren richtig?

Und meine Probleme ich verstehe nicht was der Prof. mit dem Hornerschema meint. Ich weiß, was der Hornerschema ist, aber ich wende den doch gar nicht an im Programm, also ich brauche es doch gar nicht? :S

ich finde die Aufgabenstellung bisschen kompliziert hingeschrieben.
Ich soll doch nur die Nullstellen mit dem Newton-Verfahren berechnen oder nicht?

LG

        
Bezug
Newton-Verfahren: Horner auch programmieren
Status: (Antwort) fertig Status 
Datum: 09:20 Do 30.10.2014
Autor: Al-Chwarizmi


> (a) Berechnen Sie die Nullstellen von [mm]p= f_1,f_7[/mm] mit dem
> Newtonschen Verfahren.
>  [mm]x_t_+_1 = x_t-\bruch{f(x_t)}{f'(x_t)},[/mm] [mm]t=0,1,...,[/mm]
>  für die folgenden Startwerte [mm]x_0:[/mm]
>  [mm]x_0 = -3 [/mm], [mm]x_0 = -1,5[/mm] , [mm]x_0 = 0 [/mm], [mm]x_0 = 1,5 [/mm], [mm]x_0=3[/mm]
>  
> in (a) und (b) gewinnen Sie die für die Iterationsformel
> bzw. für [mm]s_t[/mm]  benötigten Werte [mm]p(x_t),p'(x_t)[/mm] und
> [mm]\bruch{(p(x_t)-p(x_t_-_1))}{x_t-x_t_-_1}[/mm] jeweils mit dem
> Hornerschema. Hierzu beachten Sie: Mit dem P [mm]\in P_n[/mm] aus
> der erstem Zeile des Hornerschemas erhaltenen [mm]q_t \in P_n_1[/mm]
> mit [mm]p = p(x_t)+(x-x_t)q_t[/mm] gilt [mm]p'(x_t) = q(x_t)[/mm] und
> [mm]\bruch{p(x_t)-p(x_t_-_1)}{x_t-x_t_-_1}[/mm]
>  
> [mm]f_1(x) = x^5-0.4x^4-5x^3+2x^2+4x-1.5,[/mm] [mm]x \in \IR[/mm]
>  Hallo,
>  ich habe einige Verständnisprobleme bei der Aufgabe.
>  Erstmal allgemein ich habe  jetzt nur (a) aufgeschrieben
> und [mm]f_1. f_2-f_7[/mm] kann ich ja wenn alles so weit ist mal
> aufschreiben.
>  
>
> x = -3 % Startwert
>  j = 5 % Anzahl der Durchläufe
>  
> for i = 1:j % Beginn der Schleife
>  
> fx = [mm]x^5-0.4*x^4-5*x^3+2*x^2+4*x-1.5;[/mm]   % Funktion
>      dx = [mm]5*x^4-1.6*x^3-15*x^2+4*x+4;[/mm]        % Ableitung
> der Funktion
>  
> x = x - fx/dx   % Berechnung
> end
>  
> ( ich wollte es per code schreiben mit den befehl [code]
> aber irgendwie hat es nicht hingehauen, sorry.)
>  
> Ist mein Code für das Newton-Verfahren richtig?
>  
> Und meine Probleme ich verstehe nicht was der Prof. mit dem
> Hornerschema meint. Ich weiß, was der Hornerschema ist,
> aber ich wende den doch gar nicht an im Programm, also ich
> brauche es doch gar nicht? :S
>  
> ich finde die Aufgabenstellung bisschen kompliziert
> hingeschrieben.
> Ich soll doch nur die Nullstellen mit dem Newton-Verfahren
> berechnen oder nicht?
>  
> LG


Hallo Striker

Zuerst dachte ich: 7 Funktionen, jeweils für 5 verschiedene
Startwerte Newton- und Hornerverfahren durchführen:
ganz schön nahrhafte Aufgabe, an der man aber mit der
Zeit auch den Appetit verlieren könnte.
Doch es scheint, dass das nicht etwa von Hand gerechnet,
sondern programmiert werden soll. Dann ist die Menge
der Beispiele nicht mehr so abschreckend.
Der Code für die Newton-Berechnung ist korrekt.
Warum wählst du aber z.B. gerade j=5 ? Oft genügt dies
zwar - aber besser wäre eine Methode, bei der bei
jedem Schritt auf die erreichte Genauigkeit geprüft wird
und z.B. dann abgebrochen wird, wenn [mm] |x_{n+1}-x_n| [/mm] < [mm] \varepsilon [/mm]
mit z.B.  [mm] $\varepsilon=10^{-8}$ [/mm] .

Nun soll aber offenbar für die ersten beiden Teilaufgaben (a),(b)
(wo die Funktionen Polynomfunktionen sind) das Hornerschema
eingesetzt werden. Für das Programmieren heißt dies,
dass du zu diesem Zweck am besten eine kleine
Prozedur schreibst, die dann diese Berechnung als
Nebenjob übernimmt. Das ist bestimmt eine gute
Programmierübung, aber wenn du dies zum ersten Mal
machst, halt schon ein bisschen aufwendig ... (sorry, aufwändig
natürlich, weil es einige vielleicht die Wände rauf treibt ...)

LG ,   Al-Chwarizmi



Bezug
                
Bezug
Newton-Verfahren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:07 Do 30.10.2014
Autor: Striker_03

ok danke,
ich habe nun versucht das Horner-Schema zu Programmieren.


% y Koeffizienten des Polynoms [mm] p_n-1(x) [/mm]
% rn Wert des Polynoms [mm] p_0(x) [/mm] an der Stelle x0
% xi Koeffizienten des Polynoms [mm] p_n(x) [/mm]
% x0 Stelle an der gerechnet wird (x=x0)

y(1)=xi(1);
for i=2:(length(xi)-1)
    y(i)=y(i-1)*x0+xi(i);
end

rn=y(end)*x0+xi(end);

nur falls das jetzt richtig ist verstehe ich nicht wo ich das bei meinem Newton einsetzen könnte den code?

ja das mit der Länge j beim Newton-Verfahren schaue ich mir denn auch nochmal an.

LG

Bezug
                        
Bezug
Newton-Verfahren: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 12:08 Do 30.10.2014
Autor: Striker_03

So habe es geändert der vorherige code war ja falsch.

function [w,q] = poly_horner(p,x0)
q=[p(1)];
for k=2:length(p)-1
    q=[q,q(length(q))*x0+p(k)];
end
w=q(length(q))*x0+p(length(p));

nun läuft es zwar bei mir, aber es scheint trotzdem noch falsch zu sein.
wenn ich ein p und ein [mm] x_0 [/mm] eingebe dann kommt der Funktionswert an der Stelle [mm] x_0 [/mm] raus :S

Bezug
                                
Bezug
Newton-Verfahren: Antwort
Status: (Antwort) fertig Status 
Datum: 17:10 Do 30.10.2014
Autor: leduart

Hallo
ich denke das Hornerschema brauchst du, weil dein Programm sobald es ein allgemeines f kriegt, die Ableitung nicht kennt.  die sollst du also wohl nicht einfach als dx in dein Ptogramm schreiben sonder numerisch bestimmen.
(das ist aber nur eine Vermutung=
Gruß leduart

Bezug
                                
Bezug
Newton-Verfahren: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:20 Sa 01.11.2014
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                                
Bezug
Newton-Verfahren: Programm in TI-Basic
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:56 Sa 01.11.2014
Autor: Al-Chwarizmi

Hallo Striker

endlich bin ich jetzt dazu gekommen, mir das Ganze
nochmals anzuschauen und selber ein passendes
kleines Programm zu schreiben, allerdings nicht
in MatLab, sondern in dem TI-Basic des CAS-Rechners
Voyage 200 , den ich für solche kleinen Programme
gerne einsetze.

Deine MatLab - Funktion

> function [w,q] = poly_horner(p,x0)
>  q=[p(1)];
>  for k=2:length(p)-1
>      q=[q,q(length(q))*x0+p(k)];
>  end
>  w=q(length(q))*x0+p(length(p));

liefert offenbar zu einem eingegebenen Polynom (als
Liste seiner Koeffizienten) und einem Startwert x0 den
Funktionswert w und ein neues Polynom q , nämlich
genau jenes, das man bei der Polynomdivision

    $\ p(x)\ :\ (x-x0)\ =\ (Polynom\ q(x))\ +\ (Restbruch)$

erhalten würde und das beim Hornerverfahren
"unter dem Strich" entsteht. Dieses Polynom
ist zwar nicht etwa die Ableitungsfunktion p'(x) ,
hat aber die besondere Eigenschaft, dass es für
den vorher eingesetzten Wert x wirklich auch
denselben Wert liefert wie die Ableitungsfunktion.
Es gilt also

    $\ q(x0)\ =\ p'(x0)$

Das ist einer der guten Gründe für das "erweiterte
Horner-Schema". Und wir können es hier prima brauchen.
Eigentlich könnte man nun die Hornerfunktion aus
einer Newtonfunktion heraus zweimal abrufen,
einmal für den Funktionswert und dann für den
Ableitungswert.
Für meine kleine Funktion "polynull" in TI-Basic
habe ich das aber mit "copy, paste and modify"
gemacht. Hier das Ergebnis:




polynull(p,x0,epsilon)
Func
Local k,q,r,wert,abl
x0 [mm] \to [/mm] x
1000 [mm] \to [/mm] wert
While abs(wert) ≥ epsilon

{p [1]}  [mm] \to [/mm] q
For k,2,dim(p)-1
augment(q,{q [dim(q)]*x + p [k]})  [mm] \to [/mm] q
EndFor
q [dim(q)]*x + p [dim(p)] [mm] \to [/mm] wert

{q [1]}  [mm] \to [/mm] r
For k,2,dim(q)-1
augment(r,{r [dim(r)]*x + q [k]}) [mm] \to [/mm] r
EndFor
r [dim(r)]*x + q [dim(q)] [mm] \to [/mm] abl

x - wert / abl [mm] \to [/mm] x

EndWhile
Return x
EndFunc




Ich hoffe, dass du diesen Basic-Code im Wesentlichen
verstehst und in MatLab-Code "übersetzen" kannst.
Sonst stell einfach Rückfragen dazu !
Du erkennst ja sicher, dass ich deine Funktion
"poly_horner" mit verwendet habe.


Ich füge ein Beispiel an. Nehmen wir zum Beispiel
die Polynomfunktion  

    $\ p:\ [mm] x\,\mapsto\ x^3\ -\,4\,x^2\,-\,5\,x\,+3$ [/mm]

Die Koeffizientenliste für p ist

   p = { 1 , -4 , -5 , 3 }

Nehmen wir z.B. den Startwert x0 = 2 und die
Toleranzgrenze  epsilon = 0.0001 , so wäre der
Funktionsaufruf

polynull ( { 1 , -4 , -5 , 3 } , 2 , 0.0001 )

und darauf wird der (approximative) Wert einer
ersten Nullstelle angegeben:   0.45389

Für die Teilaufgaben, bei welchen gar nicht Polynom-
funktionen vorliegen, muss jeweils der Funktions-
term vorliegen, beispielsweise  

     $\ f(x)\ =\ [mm] \sqrt{4-x}-\,e^{\,-\,x}$ [/mm]

(oder auch kompliziertere Terme). Um dann nicht
die Ableitung von Hand berechnen zu müssen,
würde ich (da ja ohnehin schon der Computer
eingesetzt wird) vorschlagen, anstelle des "wahren"
Ableitungswertes jeweils einen Differenzenquotienten
zu nehmen, zum Beispiel

anstatt  f'(x) :     $\ [mm] \frac{f(x+\varepsilon)-f(x+\varepsilon)}{2\,\varepsilon}$ [/mm]

mit einem geeigneten (genügend kleinen) [mm] \varepsilon [/mm] .

LG ,   Al-Chwarizmi


Noch eine kleine Übersetzungshilfe:

  TI Basic                                         MatLab

{p [1]} [mm] \to [/mm] q                                    q = [p(1)];
For k,2,dim(p)-1                               for k = 2 : length(p)-1
augment(q,{q [dim(q)]*x + p [k]}) [mm] \to [/mm] q          q = [q,q(length(q))*x0+p(k)];
EndFor                                         end
q [dim(q)]*x + p [dim(p)] [mm] \to [/mm] wert               w = q(length(q))*x0+p(length(p));  



Bezug
                
Bezug
Newton-Verfahren: deutsche Sprache...
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:11 Do 30.10.2014
Autor: Marcel

Hi,

die deutsche Sprache ist halt *modernisiert*:

> ...
>  Programmierübung, aber wenn du dies zum ersten Mal
>  machst, halt schon ein bisschen aufwendig ... (sorry,
> aufwändig
>  natürlich, weil es einige vielleicht die Wände rauf
> treibt ...)

    []http://www.duden.de/rechtschreibung/aufwendig

Beide Versionen sind okay, ich kenne *aufwendig* so aus meiner Schulzeit.
Als mein kleiner Bruder in der Schule war, und dann die Rechtschreibereform
kam (die dann wieder reformiert wurde oder wie auch immer), lernte ich das
*aufwändig* kennen, was man tatsächlich schreiben darf. Da ist zwar nix
auf der Wand, aber Deine Begründung, warum man das schreiben darf, also
warum es nun doch schreiben darf, finde ich besser, als die "weil es ja von
Aufwand kommt". ;-)

Ich warte nun noch auf die neue Reform, dass wir demnächst die ganzen
Kürzel wie *lol*, *rofl* etc. mal in die deutsche Sprache integrieren. Das
wäre doch mal ein tolles Experiment, wenn irgendein Sender derartiges
in seine Nachrichten integrieren würde. ;-)

Gruß,
  Marcel

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


^ Seitenanfang ^
www.vorhilfe.de