WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Kreiszahl annähern

 

erich

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2011, 14:21     Titel: Kreiszahl annähern
  Antworten mit Zitat      
Hallo ich habe versucht den code von wikipedia in dem man sich der kreiszahl pi annähert zu programmieren.

Kann mir jemand sagen was ich falsch gemacht habe?

Code:
function s=kreiszahl(n)
for z=1:n
    x=i+0,5
    for a=1:n
        y=j+0,5
        if x^2+y^2<=n^2
            k+1
        else
            k=k
        end
    end
end
4*k/n^2


danke für die hilfe


Thomas84
Forum-Meister

Forum-Meister


Beiträge: 546
Anmeldedatum: 10.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.11.2011, 14:51     Titel:
  Antworten mit Zitat      
hm, so ziemlich alles. Du hast Komma statt Punkt verwendet, du hast kein wert zurückgegeben, du erhöhst k innerhalb der schleife nicht. i und j sind nicht initiallisiert....

Ich machs mal wie JanS und empfehle dir das Getting Started Kapitel der Matlab Doku.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.11.2011, 15:15     Titel: Re: Kreiszahl annähern
  Antworten mit Zitat      
Hallo erich,

Ich mache es mal wie Thomas und empfehle Dir, zunächst die Getting Started Kapitel der Dokumentation durchzulesen. Eine so mächtige Sprache wie Matlab kann man nicht ohne ausgiebige Lektüre der Dokumentation meistern.

Code:
function s = kreiszahl(n)
for z=1:n
    x=i+0,5;  % Komma statt Dezimalpunkt. Aber "i" ist sqrt(-1) !
    for a=1:n
        y=j+0,5  % Komma statt Dezimalpunkt. Aber "j" ist auch sqrt(-1) !
        if x^2+y^2<=n^2
            k+1   % Wahrscheinlich k = k + 1, aber k ist noch undefiniert
        else
            k=k   % Sinnfrei
        end
    end
end
4*k/n^2   % Wahrscheinlich: s = 4 * k / n^2;
 

Versuche mal die Vorschläge zu verbessern. Wenn alles läuft, läßt sich das noch in eine einizge Zeile packen - siehe BSXFUN.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2011, 10:53     Titel: Re: Kreiszahl annähern
  Antworten mit Zitat      
Jan S hat Folgendes geschrieben:
Hallo erich,

Ich mache es mal wie Thomas und empfehle Dir, zunächst die Getting Started Kapitel der Dokumentation durchzulesen. Eine so mächtige Sprache wie Matlab kann man nicht ohne ausgiebige Lektüre der Dokumentation meistern.

Code:
function s = kreiszahl(n)
for z=1:n
    x=i+0,5;  % Komma statt Dezimalpunkt. Aber "i" ist sqrt(-1) !
    for a=1:n
        y=j+0,5  % Komma statt Dezimalpunkt. Aber "j" ist auch sqrt(-1) !
        if x^2+y^2<=n^2
            k+1   % Wahrscheinlich k = k + 1, aber k ist noch undefiniert
        else
            k=k   % Sinnfrei
        end
    end
end
4*k/n^2   % Wahrscheinlich: s = 4 * k / n^2;
 

Versuche mal die Vorschläge zu verbessern. Wenn alles läuft, läßt sich das noch in eine einizge Zeile packen - siehe BSXFUN.

Gruß, Jan


ich hätte noch zwei fragen zu deiner antwort.
was bedeutet i=sqrt-1
und wie definiere ich k?

mfg
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.11.2011, 11:20     Titel:
  Antworten mit Zitat      
k=2 dann hast eins definiert und i ist die imaginärzahl also wurzel aus -1
Private Nachricht senden Benutzer-Profile anzeigen
 
erich

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2011, 11:40     Titel: noch immer nicht verstanden
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
k=2 dann hast eins definiert und i ist die imaginärzahl also wurzel aus -1


sry aber i versteh des no immer net Sad(
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 25.11.2011, 12:23     Titel: Re: Kreiszahl annähern
  Antworten mit Zitat      
Hallo,

Zitat:
was bedeutet i=sqrt-1

Du hast "i" nicht als Variable definiert. Dann ist es in Matlab genau wie "j" die imaginäre Einheit, also SQRT(-1). Siehe "help i".

Zitat:
und wie definiere ich k?

Code:

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
erich

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2011, 13:03     Titel: Re: Kreiszahl annähern
  Antworten mit Zitat      
Jan S hat Folgendes geschrieben:
Hallo,

Zitat:
was bedeutet i=sqrt-1

Du hast "i" nicht als Variable definiert. Dann ist es in Matlab genau wie "j" die imaginäre Einheit, also SQRT(-1). Siehe "help i".

Zitat:
und wie definiere ich k?

Code:

Gruß, Jan


danke für die hilfe
das mit i und j wusste ich nicht!

nun habe ich es ausgebessert oder zumindest versucht! jedoch kommt bei mir immer noch nicht die kreiszahl heraus!

Code:
function s=kreiszahl(n)
k=0;
y=0;
z=0;
for z=1:n
    x=y+0.5
    for a=1:n
        y=z+0.5
        if x*x+y*y<=n*n
            k=k+1
        end
    end
end
s=4*k/n^2


was ist nun immer noch falsch?
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.11.2011, 13:22     Titel:
  Antworten mit Zitat      
weil du das programm falsch von wiki abgeschrieben hast ^^ guck dir das original nochmal an.
Private Nachricht senden Benutzer-Profile anzeigen
 
soad
Forum-Century

Forum-Century


Beiträge: 150
Anmeldedatum: 10.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2011, 13:24     Titel:
  Antworten mit Zitat      
Die Variable 'a' wird in deiner Funktion nicht verwendet.
Private Nachricht senden Benutzer-Profile anzeigen
 
erich

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2011, 13:38     Titel:
  Antworten mit Zitat      
Winkow hat Folgendes geschrieben:
weil du das programm falsch von wiki abgeschrieben hast ^^ guck dir das original nochmal an.



was habe ich falsch abgeschrieben???
 
Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 25.11.2011, 13:41     Titel:
  Antworten mit Zitat      
so lang is der quelltext nicht. und soad hat dir schon einen tip gegeben
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.04.2012, 18:44     Titel: kreiszahl
  Antworten mit Zitat      
Code:
function [ pi ] = Kreiszahl( n)
%UNTITLED Summary of this function goes here
%   Detailed explanation goes here


  for n=0:1:n;
 
    a(n+1)=(-1)^n/(2*n+1);
   
end
y=sum(a);
pi=4*y;
end


ich habs so geschrieben !
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.