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

Hilfe bei Erstellung einer Funktion

 

eyedas
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.11.2019, 23:15     Titel: Hilfe bei Erstellung einer Funktion
  Antworten mit Zitat      
Hey, es ist leider schon etwas länger her seit ich zuletzt matlab verwendet habe und ich brauche folgende Funktionen, an deren Eingabe ich leider scheitere.
Ich würde mich sehr freuen wenn mir jemand den code sagen könnte. Dankeschön!!
j ist 0 oder eine natürliche Zahl.



Die erste Funktion habe ich eigentlich eh geschafft, aber mehr schlecht als recht Sad

Danke im Voraus!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.11.2019, 13:53     Titel:
  Antworten mit Zitat      
Hallo,

bitte immer das posten, was du schon geschafft hast, und was jetzt das konkrete Problem ist.
Für die zweite Formel sollten die Befehle factorial und sum hilfreich sein.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
eyedas
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2019, 15:14     Titel:
  Antworten mit Zitat      
Hätte die erste Funktion so gemacht, aber das funktioniert schon mal nicht für j==0

Code:
syms t;
phi1=@(j,x) (j~=0).*1/factorial(j-1)*int(exp((1-t)*x)*t^(j-1),t,0,1)+(j==0).*exp(x);
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.11.2019, 15:18     Titel:
  Antworten mit Zitat      
Hallo,

ich würde eine Funktionsdatei schreiben und mit einer if-Abfrage arbeiten. Für eine anonyme Funktion ist das zu komplex.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
eyedas
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2019, 15:49     Titel:
  Antworten mit Zitat      
Habe jetzt für die erste Funktion
Code:
function [ergebnis] = phi_1(j,x)
%UNTITLED2 Summary of this function goes here
%   Detailed explanation goes here
syms t
if j~=0
    ergebnis = 1/factorial(j-1)*int(exp((1-t)*x)*t^(j-1),t,0,1);
else
    ergebnis = exp(x);
end
end

 

Das funktioniert soweit.

Wie machte ich das mit der Summe bei der zweiten Funktion hier
Code:
function [ergebnis] = phi_2(j,x)
%UNTITLED3 Summary of this function goes here
%   Detailed explanation goes here
ergebnis=1/x^j*(phi_1(0,x)-SUMME);
end


Danke!
Und damit das aufeinander zugreifen kann, müssen die Dateien im selben Verzeichnis sein und der Name der Funktion muss gleich dem Dateinamen sein, richtig?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.11.2019, 15:54     Titel:
  Antworten mit Zitat      
Hallo,

wie gesagt: sum

Code:
sum( x.^(0:j-1) ./ factorial(0:j-1) )


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
eyedas
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 28.11.19
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 29.11.2019, 16:15     Titel:
  Antworten mit Zitat      
Angenommen ich möchte in der Summe statt i! phi_1(i,0) stehen haben, muss ich dann für die Summe
Code:
sum( x.^(0:j-1) ./ phi_1(0:j-1,0) )


schreiben?
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 29.11.2019, 16:24     Titel:
  Antworten mit Zitat      
Hallo,

prinzipiell ja. Dann muss deine Funktion aber mit Vektorargumenten umgehen können, was auf den ersten Blick nicht der Fall ist. Da kommst du wohl um irgendeine Art von for-Schleife nicht herum.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.