Ich würde diese Ergebnisse ( x, y ) in einem Graph darstellen.
-
Danke SeppJ,
Es geht um e^ipi +1=0;
360
365
366
Da sind einige Geheimnisse, es ist eine Spielerei, komplexe Zahlen sind ein mächtiges Werkzeug für diferentiale Gleichungen. Danke.
-
@SeppJ ich wollte diesen Graph selber erzeugen:
https://mediathek.htw-berlin.de/cache/b278a39889f16fddbfd985578b69b1bb.png
-
//: eIPi.cpp
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include "Header.h"
#include <cmath>
#include <complex>using namespace std;
int main() {
Time start;
const complex<double> pi{ 3.14159265, 0 };
const complex<double> e{ 2.718282, 0 };complex<double> ePowerIfI; complex<double> i {0, 1}; // Imaginary unit int j = 1; /* ASCII 65 ASCII 66 KIrilisch */ for (complex<double> fI = 0.1; j < 62; j++) { // 36 0 degree Celsius ePowerIfI = pow(e,i * fI); fI += 0.1; cout << fI << "radian " << ePowerIfI << endl; } Time end; cout << "start " << start.ascii() << endl; cout << "end " << end.ascii() << endl; cout << " time " << end.delta(&start);
}
-
Es macht zwar keinen echten Unterschied, aber dank den Wundern von Überladung und Umwandlungen kann man problemlos
complex
mit nicht-complex
Typen mischen. Das heißt, du könnteste
,pi
, undfI
auch alsdouble
definieren und der Rest des Programms würde unangetastet weiter exakt das gleiche tun. Sähe vielleicht ein bisschen schöner aus. Außerdem könnte man dann die Konstanten auch in anderem Kontext benutzen, und beispielsweise feststellen, dasse < pi
. Oder obfI < 6.2
. Was ja mit komplexen Zahlen beides nicht geht.
-
@SeppJ danke, es sind gute Ideen, überladene Funktionen zu üben....Du bist gute Hilfe, danke Dir...
-
@odalv sagte in Ich würde diese Ergebnisse ( x, y ) in einem Graph darstellen.:
@SeppJ danke, es sind gute Ideen, überladene Funktionen zu üben....Du bist gute Hilfe, danke Dir...
Immer eine gute Übung, aber in diesem Fall war gemeint, dass die Macher von
std::complex
das schon für dich gemacht haben: https://ideone.com/hv2Sna
-
@odalv sagte in Ich würde diese Ergebnisse ( x, y ) in einem Graph darstellen.:
for (complex<double> fI = 0.1; j < 62; j++) { // 36 0 degree Celsius
Sechsunddreißig Null Grad Celsius? Was hat nun die Temperatur wieder mit Winkeln zu tun? Und was sollen die beiden Zahlen bedeuten?
Ich würde die Loop wahrscheinlich in Grad (Winkel, nicht Temperatur) machen, damit ich da ganzzahlige Grad-Winkel habe und in der Berechnung einfach mit einer Konstanten
deg_to_rad
multiplizieren:const double PI = std::acos(-1.0); const double deg_to_rad = PI / 180.0; // hier kannst du deinen Beginn/Ende/Step einstellen for (double angle_deg = 0.0; angle_deg < 600; angle_deg += 10) { const auto angle_rad = angle_deg * deg_to_rad; ... // rechne mit angle_rad }
-
@odalv sagte in Ich würde diese Ergebnisse ( x, y ) in einem Graph darstellen.:
const complex<double> pi{ 3.14159265, 0 }; const complex<double> e{ 2.718282, 0 };
Noch ein (für Übungscode) nicht ganz so wichtiges Detail am Rande - Ab C++20 gibt es diese Konstanten (endlich) auch im Standard:
#include <numbers> using std::numbers::e; using std::numbers::pi;
Hat den Vorteil, das diese dann maxmiale Genauigkeit für den Datentypen (hier
double
) haben und es eine einzige Stelle gibt, wo sie definiert sind (statt zig Stellen überall im Code verteilt mit unterschiedlich vielen Nachkommastellen und man sich irgendwann wundert, weshalb zwei Programmteile bei der selben Berechnung zu verschiedenen Ergebnissen kommen).
Alternativ kann man sich die Konstanten sogar aus mathematischen Funktionen herausziehen und erreicht damit quasi implizit eine für den Fliesskomma-Datentyp und die Maschine gute Genauigkeit:
#include <cmath> const double pi = 2.0 * std::asin(1.0); const double e = std::exp(1.0);
-
@Finnegan danke, das freut mich
-
@wob danke, ich werde später über 36 erklären.
6x6 Menschliche Temperatur usw
-
@SeppJ danke dir, schönes Wochenende