Mathematische Funktionen
-
Hallo,
ich versuche in C die Spannung an einem Condensator auszurechnen.
Hierfür wäre die Formel Uc=U(1-e^(-t/T))Ich habe versucht das folgendermaßen umzusetzen...
#include <stdio.h> #include <math.h> int main() { int a = 12*(1-e^(-3/10,1)); printf ("%i",a); }
Allerding scheint C da ein Problem mit der e Funktion zu haben...
Weiß jemand wie man diese Formel in C berechnen könnte?Gruß, Michael
-
math.h ist ja bereits inkludiert, also sollte es reichen, wenn Du e^(..) durch exp(...) ersetzt.
-
garby schrieb:
Hallo,
ich versuche in C die Spannung an einem Condensator auszurechnen.
Hierfür wäre die Formel Uc=U(1-e^(-t/T))Glaube ich nicht. Für t = 0 hätte ich U_0, nicht 0, erwartet.
int a = 12*(1-e^(-3/10,1));
a = 12 * (1 - exp(-3/10.1)); Vielleicht solltest Du aber lieber in double rechnen.
-
Ich glaube du hast recht, double wäre besser!
Aber ich denke nicht das, dass mit dem e^ durch exp funktioniert!e steht nicht für Exponent sondern für e-Funktion. Das ist das Gegenteil von der ln Taste auf dem Taschenrechner...
-
Für Potenzen verwendet man pow (); 1^2 => pow (1,2);
Edit:
Hoppla verlesen.
-
Das ^ steht in C für bitweise-xor - und hat nix mit Potenzen zu tun.
Und exp() steht sowohl in der Mathematik als auch in C für die Exponentialfunktion.
-
Ok, dann kann ich also exp doch für die e-Funktion benutzen, aber wie ersetze ich das hoch ^ zeichen?
-
mit pow, hat SirLant ja schon gesagt.
ich würde zur sicherheit noch keine integerkonstanten, sondern doubles nehmen:
3.0
10.0etc
-
garby schrieb:
Ok, dann kann ich also exp doch für die e-Funktion benutzen, aber wie ersetze ich das hoch ^ zeichen?
Brauchst du nicht. In der Mathematik definiert man:
Und folgendes kann man relativ einfach beweisen:
Solltest du Potenzen zu einer anderen Basis als e brauchen so hilft dir die Funktion pow.
-
Ich habs hinbekommen! Das pow brauchte ich gar nicht!
a = 12*(1.0-(exp((double)25/10.1)));
Danke für eure Hilfe!