matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

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
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenMathe-SoftwareRegula Falsi MATLAB
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Informatik • Physik • Technik • Biologie • Chemie
Forum "Mathe-Software" - Regula Falsi MATLAB
Regula Falsi MATLAB < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Regula Falsi MATLAB: Tipp
Status: (Frage) beantwortet Status 
Datum: 14:31 Fr 11.11.2011
Autor: stffn

Aufgabe
Die Funktion 'regulafalsi(f,a,b,tol)', welche die kleinste positive Nullstelle der Funktion $f(x)=cosh(x)*cos(x)+1$ berechnet soll geschrieben werden.
Die Iteration soll dann abbrechen, wenn die NS x die Bedingung [mm] $abs(f(x))\le [/mm] tol$ erfüllt. Die Nullstelle soll auf zehn Stellen genau berechnet werden.

Hallo zusammen.
Ich muss vorweg sagen, dass ich bei Matlab ins kalte Wasser geworfen wurde, und keinerlei Erfahrung mit dem Programmieren damit habe. Nur ein bisschen c-Kenntnisse.

Es fängt bei mir also schon in der ersten Zeile mit dem ersten Problem an.

Ich möchte zunächst die Funktion f(x) definieren:

function y=cosh(x)*cos(x)+1;
%Funktionsdeklaration


Wenn ich das Ausführe, zeigt er mir immer folgende Meldung an:

"??? Error: File: y.m Line: 1 Column: 19
Unexpected MATLAB operator.

??? Error: File: y.m Line: 1 Column: 12
Unbalanced or unexpected parenthesis or bracket
".

Vorher hatte ich es so probiert:
function y=f(x);
y=cosh(x)*cos(x)+1;
%Funktionsdeklaration
.

Dann hat er mir gesagt, dass x undefiniert ist.

Wie ihr seht, scheitere ich bereits an den Grundlagen.
Ich hoffe das ist kein Grund für euch, mir nicht zu helfen. Auch wenn es bestimmt eine schwere Geburt wird:)

Ich bedanke mich, und wünsche ein schönes Wochenende!


        
Bezug
Regula Falsi MATLAB: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 14:45 Fr 11.11.2011
Autor: Valerie20


>  
> Ich möchte zunächst die Funktion f(x) definieren:

> Vorher hatte ich es so probiert:
>  function y=f(x);
> y=cosh(x)*cos(x)+1;
> %Funktionsdeklaration .

so müsstest du eigentlich ein Ergebnis bekommen.
Hast du die Funkton gespeichert?
Wenn nein Speichere sie mal unter f.m
dann gib in dein Terminal k=f(5) oder sonst irgendwas ein.



Bezug
        
Bezug
Regula Falsi MATLAB: Antwort
Status: (Antwort) fertig Status 
Datum: 14:51 Fr 11.11.2011
Autor: MathePower

Hallo stffn,

> Die Funktion 'regulafalsi(f,a,b,tol)', welche die kleinste
> positive Nullstelle der Funktion [mm]f(x)=cosh(x)*cos(x)+1[/mm]
> berechnet soll geschrieben werden.
>  Die Iteration soll dann abbrechen, wenn die NS x die
> Bedingung [mm]abs(f(x))\le tol[/mm] erfüllt. Die Nullstelle soll
> auf zehn Stellen genau berechnet werden.
>  Hallo zusammen.
>  Ich muss vorweg sagen, dass ich bei Matlab ins kalte
> Wasser geworfen wurde, und keinerlei Erfahrung mit dem
> Programmieren damit habe. Nur ein bisschen c-Kenntnisse.
>  
> Es fängt bei mir also schon in der ersten Zeile mit dem
> ersten Problem an.
>  
> Ich möchte zunächst die Funktion f(x) definieren:
>  
> function y=cosh(x)*cos(x)+1;
> %Funktionsdeklaration
>  
> Wenn ich das Ausführe, zeigt er mir immer folgende Meldung
> an:
>  
> "??? Error: File: y.m Line: 1 Column: 19
> Unexpected MATLAB operator.
>
> ??? Error: File: y.m Line: 1 Column: 12
> Unbalanced or unexpected parenthesis or bracket".
>  
> Vorher hatte ich es so probiert:
>  function y=f(x);
> y=cosh(x)*cos(x)+1;
> %Funktionsdeklaration .
>  
> Dann hat er mir gesagt, dass x undefiniert ist.
>  
> Wie ihr seht, scheitere ich bereits an den Grundlagen.
>  Ich hoffe das ist kein Grund für euch, mir nicht zu
> helfen. Auch wenn es bestimmt eine schwere Geburt wird:)
>  


Die Funktionsdeklaration geht so:

function [y]=f(x)
y=cosh(x)*cos(x)+1;


Siehe auch: []Funktionsdeklaration


> Ich bedanke mich, und wünsche ein schönes Wochenende!

>


Gruss
MathePower  

Bezug
                
Bezug
Regula Falsi MATLAB: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:12 Fr 11.11.2011
Autor: stffn

Ok, danke nochmal für dei schnellen Antworten.

Also wenn ich mir f(2) z.B. ausrechnen lasse macht er das auch.

Der Fehler, dass x undefiniert ist, wird mir trotzdem angezeigt.

Naja, ich gehe mal davon aus, dass ich trotzdem auf dem richtigen Weg bin.
Jetzt muss ich mir ja mein Intervall definieren.
Ich habe mir die Funktion mal plotten lassen und weiß, dass die kleinste positive NS irgendwo zwischen 1 und 2 liegt.
Also möchte ich mir als Intervallgrenzen a=1 und b=2 wählen.

Aber wie muss ich meine Toleranz bestimmen?
Da die genauigkeit 10 Stellen betragen soll (gehe ich mal von 9 nachkommastellen aus), ist meine toleranz 0.000000001?
Ich versuche einfach mal irgendwie weiter zu machne, bin aber für jeden weiteren Tip, der  mir das leben leichter machen würde, sehr dankbar.


Bezug
                        
Bezug
Regula Falsi MATLAB: Antwort
Status: (Antwort) fertig Status 
Datum: 15:35 Fr 11.11.2011
Autor: MathePower

Hallo stffn,

> Ok, danke nochmal für dei schnellen Antworten.
>  
> Also wenn ich mir f(2) z.B. ausrechnen lasse macht er das
> auch.
>  
> Der Fehler, dass x undefiniert ist, wird mir trotzdem
> angezeigt.
>  
> Naja, ich gehe mal davon aus, dass ich trotzdem auf dem
> richtigen Weg bin.
>  Jetzt muss ich mir ja mein Intervall definieren.
>  Ich habe mir die Funktion mal plotten lassen und weiß,
> dass die kleinste positive NS irgendwo zwischen 1 und 2
> liegt.
>  Also möchte ich mir als Intervallgrenzen a=1 und b=2
> wählen.
>  


Ich denke, das Intervall, in dem die
kleinste positivste Nullstelle liegt, soll herausgefunden werden.
Prüfe z.B ob f(n)*f(n+1)<0 ist. Ist so ein n gefunden,
dann sind das Deine Startwerte für die Regula falsi.


> Aber wie muss ich meine Toleranz bestimmen?
>  Da die genauigkeit 10 Stellen betragen soll (gehe ich mal
> von 9 nachkommastellen aus), ist meine toleranz
> 0.000000001?


Die Toleranz ist doch  vorgegeben.


>  Ich versuche einfach mal irgendwie weiter zu machne, bin
> aber für jeden weiteren Tip, der  mir das leben leichter
> machen würde, sehr dankbar.

>


Gruss
MathePower  

Bezug
                                
Bezug
Regula Falsi MATLAB: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 15:44 Fr 11.11.2011
Autor: stffn

Also wir hatten als Hinweis bekommen, dass wir die Funktion einfach plotten sollen, um geeignete Startwerte zu finden.

Also nehme ich als Toleranz 0.01.
Ich habe folgendes zusammengebracht. Bitte sei gnädig mit mir, das ist das erste mal das ich was von der Regula Falsi gehört habe und zudem das erste mal das ich mit Matlab arbeite:):

function [y]=f(x)
y=cosh(x)*cos(x)+1;
%Funktionsdeklaration

a=1;
b=2;
tol=0.01;
%Definition der Intervallgrenzen und der Toleranz
c=abs(f(1))
%Festlegung eines Startwertes

for c=abs(f(1)):(c<=tol)
        regulafalsi(@f,a,b,tol);
        c=abs(f(x))      
end
%Anwendung der Rregula Falsi  


Abgesehen, dass es wahrscheinlich sowieso komplett falsch ist, zeigt er mir folgende Fehlermeldung an:

??? Input argument "x" is undefined.

Error in ==> f at 2
y=cosh(x)*cos(x)+1;
.

Äußerst merkwürdig

Bezug
                                        
Bezug
Regula Falsi MATLAB: Antwort
Status: (Antwort) fertig Status 
Datum: 15:54 Fr 11.11.2011
Autor: MathePower

Hallo stffn,

> Also wir hatten als Hinweis bekommen, dass wir die Funktion
> einfach plotten sollen, um geeignete Startwerte zu finden.
>  


Ok.


> Also nehme ich als Toleranz 0.01.
> Ich habe folgendes zusammengebracht. Bitte sei gnädig mit
> mir, das ist das erste mal das ich was von der Regula Falsi
> gehört habe und zudem das erste mal das ich mit Matlab
> arbeite:):
>  
> function [y]=f(x)
>  y=cosh(x)*cos(x)+1;
>  %Funktionsdeklaration
>  
> a=1;
>  b=2;
>  tol=0.01;
>  %Definition der Intervallgrenzen und der Toleranz
>  c=abs(f(1))
>  %Festlegung eines Startwertes
>  
> for c=abs(f(1)):(c<=tol)
>          regulafalsi(@f,a,b,tol);
>          c=abs(f(x))      
> end


Die Scheife ist hier fehl am Platz.

In der Funkion regulafalsi ist die Toleranzgrenze tol abzufragen.


>  %Anwendung der Rregula Falsi  
>
> Abgesehen, dass es wahrscheinlich sowieso komplett falsch
> ist, zeigt er mir folgende Fehlermeldung an:
>  
> ??? Input argument "x" is undefined.
>
> Error in ==> f at 2
> y=cosh(x)*cos(x)+1;.
>  
> Äußerst merkwürdig


Gruss
MathePower

Bezug
                                                
Bezug
Regula Falsi MATLAB: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:18 Fr 11.11.2011
Autor: stffn

Ok. Aber muss ich die Grenzen nach jedem Iterationsschritt neu definieren oder macht Matlab das mit der Funktion 'regulafalsi(...)' selbst?
In der Hilfe steht irgendwie nichts zu regulafalsi.
Nämlich wenn er das selbst macht, brauch ich ja so wie so überhaupt keine Schleife.

function y=f(x)
y=cosh(x)*cos(x)+1;
%Funktionsdeklaration

a=1;
b=2;
tol=0.01;
%Definition der Intervallgrenzen und der Toleranz

regulafalsi(@f,a,b,tol);


Auch wenn mein neuer Vorschlag bestimmt nicht richtig ist, würde das ja dann ziemlich einfach gehalten werden können.
Ich hab auch immernoch das Problem mit der Definition von x. Er zeigt mir immer diese Meldung an:

??? Input argument "x" is undefined.

Error in ==> f at 2
y=cosh(x)*cos(x)+1


Was kann man dagegen machen?



Bezug
                                                        
Bezug
Regula Falsi MATLAB: Antwort
Status: (Antwort) fertig Status 
Datum: 16:44 Fr 11.11.2011
Autor: MathePower

Hallo stffn,

> Ok. Aber muss ich die Grenzen nach jedem Iterationsschritt
> neu definieren oder macht Matlab das mit der Funktion
> 'regulafalsi(...)' selbst?
>  In der Hilfe steht irgendwie nichts zu regulafalsi.
>  Nämlich wenn er das selbst macht, brauch ich ja so wie so
> überhaupt keine Schleife.
>  
> function y=f(x)
>  y=cosh(x)*cos(x)+1;
>  %Funktionsdeklaration
>  
> a=1;
>  b=2;
>  tol=0.01;
>  %Definition der Intervallgrenzen und der Toleranz
>  
> regulafalsi(@f,a,b,tol);
>  
>
> Auch wenn mein neuer Vorschlag bestimmt nicht richtig ist,
> würde das ja dann ziemlich einfach gehalten werden
> können.
>  Ich hab auch immernoch das Problem mit der Definition von
> x. Er zeigt mir immer diese Meldung an:
>  
> ??? Input argument "x" is undefined.
>
> Error in ==> f at 2
> y=cosh(x)*cos(x)+1
>  
> Was kann man dagegen machen?
>  


Lies Dir dazu diesen []Artikel durch.

Falls die Matlab Version < 7 ist, siehe: []Matlab-Funktionen
Auf Seite 55 und 56 steht alles, was Du dazu wissen musst.


Gruss
MathePower

Bezug
                                                                
Bezug
Regula Falsi MATLAB: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:49 Fr 11.11.2011
Autor: stffn

Ok. Ist Version 7.12.
Ich les mir das mal durch, schaffs aber heute nicht mehr. Falls ich nochmal ne frage habe, meld ich mich.
Danke nochmal an MathePower. Einen sschönen Abend noch!

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Mathe-Software"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]