<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Intergralrechnung (Zeit)]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hoffe ich mach mich jetzt nicht lächerlich aber mir fehlt bei meinem Problem der &quot;zündende&quot; Gedanke. Da ich kein Abitur habe (Realschulabschluss) fehlt mir auch ein wenig das Wissen über Integralrechnung.</p>
<p>Wie auch immer, ich habe folgende Formel:</p>
<p>Xn = X(0) + ∫(v/R)t</p>
<p>&quot;X(0)&quot; ist dabei der Initialwert von &quot;X&quot;. Die Werte für &quot;v&quot; und &quot;R&quot; (R ist eine Konstante) habe ich auch. Ebenso die Zeit die seit dem letzten Aufruf der Funktion vergangen ist:</p>
<pre><code class="language-cpp">static double X = 0;
const double R = 1.12345;
double new_val(double velocity, double time_since_last_call) {

    X += (velocity / R); // so einfach ist es aber nicht wegen der Zeit...
    return X;
}
</code></pre>
<p>Bin für jeden Tip dankbar.</p>
<p>Viele Grüsse<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300887/intergralrechnung-zeit</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 12:07:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300887.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Mar 2012 14:20:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Tue, 13 Mar 2012 14:20:35 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich hoffe ich mach mich jetzt nicht lächerlich aber mir fehlt bei meinem Problem der &quot;zündende&quot; Gedanke. Da ich kein Abitur habe (Realschulabschluss) fehlt mir auch ein wenig das Wissen über Integralrechnung.</p>
<p>Wie auch immer, ich habe folgende Formel:</p>
<p>Xn = X(0) + ∫(v/R)t</p>
<p>&quot;X(0)&quot; ist dabei der Initialwert von &quot;X&quot;. Die Werte für &quot;v&quot; und &quot;R&quot; (R ist eine Konstante) habe ich auch. Ebenso die Zeit die seit dem letzten Aufruf der Funktion vergangen ist:</p>
<pre><code class="language-cpp">static double X = 0;
const double R = 1.12345;
double new_val(double velocity, double time_since_last_call) {

    X += (velocity / R); // so einfach ist es aber nicht wegen der Zeit...
    return X;
}
</code></pre>
<p>Bin für jeden Tip dankbar.</p>
<p>Viele Grüsse<br />
Sven</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191225</guid><dc:creator><![CDATA[schwudde]]></dc:creator><pubDate>Tue, 13 Mar 2012 14:20:35 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Tue, 13 Mar 2012 14:40:47 GMT]]></title><description><![CDATA[<p>also wenn man bei deiner formel das integral löst, muss man ja nach t (der zeit) intigrieren. da v = a * t ist, ist das ganze integriert (s = ) 1/2 * a * t² also lautet deine gleichung Xn = X(0) 1/R * 1/2 * v * t² wenn da jetzt ein denkfehler drin sein sollte korrigiert mich bitte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>du scheinst da mit globalen-variablen rum zu hantieren. wenn das so in etwa in deinem programm steht. das ist fast nie gut so als tip <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>vario-500</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191234</guid><dc:creator><![CDATA[vario-500]]></dc:creator><pubDate>Tue, 13 Mar 2012 14:40:47 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Tue, 13 Mar 2012 14:49:25 GMT]]></title><description><![CDATA[<p>vario-500 schrieb:</p>
<blockquote>
<p>also wenn man bei deiner formel das integral löst, muss man ja nach t (der zeit) intigrieren. da v = a * t ist, ist das ganze integriert (s = ) 1/2 * a * t² also lautet deine gleichung Xn = X(0) 1/R * 1/2 * v * t² wenn da jetzt ein denkfehler drin sein sollte korrigiert mich bitte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Korrigiere. Wobei ich überhaupt nicht nachvollziehen kann, wie du überhaupt da drauf kommst. Aber du kannst ja schon daran dass v*t² die Dimension Länge*Zeit hat sehen, dass das nicht passt.</p>
<p>Wenn velocity die aktuelle Geschwindigkeit ist und time_since_last_call eine möglichst kleine Zeit, dann ist in 1. Ordnung:<br />
<code>X(n) = X(n-1) + velocity/R * time_since_last_call</code><br />
Und das macht man dann iterativ von X(n=1) bis zum gesuchten X(n).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191241</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 13 Mar 2012 14:49:25 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Tue, 13 Mar 2012 14:57:22 GMT]]></title><description><![CDATA[<p>wenn man v(t) = a * t integriert, komme ich auf s(t) = 1/2 * a * t²<br />
wobei ich im ersten posting nicht genau verstanden hab, was der initialwert sein soll bzw. was das insgesamt machen soll</p>
<p>sorry, ich dachte das soll im ersten posting (v/R) dt heißen, was aber nicht tut</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191243</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191243</guid><dc:creator><![CDATA[vario-500]]></dc:creator><pubDate>Tue, 13 Mar 2012 14:57:22 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Tue, 13 Mar 2012 15:53:26 GMT]]></title><description><![CDATA[<p>Es geht um numerische Integration. v ist keine Konstante.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191268</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191268</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 13 Mar 2012 15:53:26 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Tue, 13 Mar 2012 16:18:45 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a></a></p>
<p>&quot;Xn&quot; bedeutet quasi das &quot;neue X&quot;, wobei ich dennoch meine das ich Dich richtig verstehe denn bei</p>
<blockquote>
<p>X(n) = X(n-1)..&quot;</p>
</blockquote>
<p>entspricht X(n) beim aktuellen Aufruf der Funktion dem &quot;neuen&quot; X und &quot;X(n-1&quot; quasi dem vorhergehenden Wert von X.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/27159">@vario-500</a></p>
<p>Nein für gewöhnlich benutze ich sehr selten globale Variablen, wollte mir nur den ganzen &quot;class ...&quot; Code sparen. Aber gut:</p>
<pre><code class="language-cpp">class C {
public:
    C();
    void CalculateNewVal(double velocity, double time_since_last_call);
    double GetNewVal() const;
private:
    double m_X;
    const double m_R;
};

C::C() : m_X(0), m_R(1.12345) {}

void C::CalculateNewVal(double velocity, double time_since_last_call) {
    m_X += (velocity/m_R) * time_since_last_call;
}

double C::GetNewVal() const {
    return m_X;
};
</code></pre>
<p>Nochmal <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a></a>;<br />
so würde ich das nach meinem Verständnis jetzt machen und Du hast recht, bei kleinen Abständen ist das Ok, bei grossen Abständen wird es aber immer ungenauer da &quot;velocity&quot; ja nie konstant ist. Allerdings ist das auch beim &quot;realen&quot; Vorbild (es geht um Inertiale Navigation) auch so...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191280</guid><dc:creator><![CDATA[schwudde]]></dc:creator><pubDate>Tue, 13 Mar 2012 16:18:45 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Tue, 13 Mar 2012 16:26:23 GMT]]></title><description><![CDATA[<p>schwudde schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a></a></p>
<p>&quot;Xn&quot; bedeutet quasi das &quot;neue X&quot;, wobei ich dennoch meine das ich Dich richtig verstehe denn bei</p>
<blockquote>
<p>X(n) = X(n-1)..&quot;</p>
</blockquote>
<p>entspricht X(n) beim aktuellen Aufruf der Funktion dem &quot;neuen&quot; X und &quot;X(n-1&quot; quasi dem vorhergehenden Wert von X.</p>
</blockquote>
<p>Da haben wir uns korrekt verstanden. In deinem Programm müsste die Zeile dann</p>
<pre><code class="language-cpp">X += velocity / R * time_since_last_call;
</code></pre>
<p>lauten.</p>
<p>Wobei ich dir wirklich dringend empfehlen würde, das sauberer zu programmieren. Du ärgerst dich hinterher garantiert, wenn du nicht gleich ordentlich arbeitest.</p>
<blockquote>
<p>Nochmal <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375"><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a></a>;<br />
so würde ich das nach meinem Verständnis jetzt machen und Du hast recht, bei kleinen Abständen ist das Ok, bei grossen Abständen wird es aber immer ungenauer da &quot;velocity&quot; ja nie konstant ist. Allerdings ist das auch beim &quot;realen&quot; Vorbild (es geht um Inertiale Navigation) auch so...</p>
</blockquote>
<p>Ich wollte dich bloß warnen, dass du Bescheid weißt. Du könntest, je nach eigenem Anspruch, auch numerisch genauere Verfahren nehmen. In einfachster Ausführung indem du das Verhalten von v glättest (Trapezregel und Co.). Mit mehr Kontext über das Zustandekommen von v kannst du auch gleich bessere Verfahren nutzen. Falls du zum Beispiel physikalische Simulationen machst, entspräche obiger Integrationsschritt der Eulerregel, die ein paar physikalisch unangenehme Eigenschaften hat. Für andere Anwendungen mag dies wiederum egal sein. Aber ich kann dir jetzt keine Vorlesung darüber halten, ich wollte nur sicher gehen, dass du weißt, dass die Welt größer ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191283</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 13 Mar 2012 16:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Tue, 13 Mar 2012 16:41:39 GMT]]></title><description><![CDATA[<p>Hab ja gerade erst angefangen mich mit dem Thema zu beschäftigen. Ist ein Hobbyprojekt und rein theoretisch könnte ich mir das auch sparen da ich ein Plugin für einen Simulator schreibe und der mir die Kopordinaten schon fertig &quot;liefern&quot; kann. Aber wäre ja langweilig wenn man nicht selbst auch ein wenig rechnen lässt, auch um den eigenen Horizont zu erweitern.</p>
<p>Es gibt mehrere Algorithmen um an das Ergebnis von &quot;X&quot; zu kommen, auch welche ohne Integralrechnung (aber mit Matrizen). Dort spielen dann ausser der Geschwindigkeit auch die Beschleunigungen eine Rolle und sind wahrscheinlich auch genauer. Aber möchte mich langsam einarbeiten eben weil mir ein paar mathematische Grundlagen fehlen die ich mir erstmal aneignen muss...</p>
<p>Auf jeden Fall Danke für die Hilfe, das wird nachher gleich erstmal getestet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191287</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191287</guid><dc:creator><![CDATA[schwudde]]></dc:creator><pubDate>Tue, 13 Mar 2012 16:41:39 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Wed, 18 Jul 2012 08:12:41 GMT]]></title><description><![CDATA[<p>X-Plane nutzt intern die Kepler-Faßregel, kann aber öfter integrieren als man als Plugin callbacks bekommt.<br />
Durch Probieren und &quot;geschicktes Raten&quot; habe ich festgestellt, dass man mit Adams-Bashfort 2.Ordnung am nächsten drankommt. Das bleibt über Stunden stabil.</p>
<p>Schau dir mal meinen Blogpost und die verlinkten Wikipedia-Artikel an: <a href="http://philippmuenzel.de/wordpress/analyzing-how-x-plane-propagates-your-position/" rel="nofollow">http://philippmuenzel.de/wordpress/analyzing-how-x-plane-propagates-your-position/</a></p>
<p>Philipp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233666</guid><dc:creator><![CDATA[PhilippM]]></dc:creator><pubDate>Wed, 18 Jul 2012 08:12:41 GMT</pubDate></item><item><title><![CDATA[Reply to Intergralrechnung (Zeit) on Wed, 18 Jul 2012 08:46:35 GMT]]></title><description><![CDATA[<p>Wenn es darum geht, rauszufinden, auf was für einer Kurve sich ein Objekt bewegt, wenn man die Geschwindigkeit in Abhängigkeit der Position und/oder der Zeit gegeben hat, dann ist das ein <a href="http://de.wikipedia.org/wiki/Anfangswertproblem" rel="nofollow">Anfangswertproblem</a> erster Ordnung. Code zum Lösen solcher Probleme findet man auch, wenn man unter &quot;odinary differential equations&quot; googelt. Wenn ich Google danach frage, finde ich gleich auf der ersten Seite einen Link zu <a href="http://headmyshoulder.github.com/odeint-v2/" rel="nofollow">odeint</a>. Vielleicht kannst du das ja einfach nutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2233680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2233680</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 18 Jul 2012 08:46:35 GMT</pubDate></item></channel></rss>