<?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[Problem mit Rechenfunktion --&amp;gt; wo ist die Genauigkeit geblieben?]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich habe eine Funktion erstellt, mit der ein Taschenrechner Sinuswerte sehr genau im Intervall -pi bis +pi errechnen kann. Zwar kann man die noch verbessern, doch dieses Polynom liefert Werte bis auf einer Genauigkeit von 5 Stellen. Aber darum gehts eigentlich gar nicht <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>Ich habe mir vor einiger Zeit eine Graphikkomponente programmiert, die einen Graphen ausgibt. Nun wundere ich mich, warum bei dieser Funktion eine Gerade ausgegeben wird:</p>
<p>f(x) = -1 / 5040 x⁷ + 1 / 120 x⁵ - 1 / 6 x³ + x</p>
<p>Ich habe mir also mal die Werte einzeln ausgeben lassen. Der Stil ist nicht so schön, aber das ist jetzt egal:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cmath&gt;
using namespace std;

int main()
{
	double x[100], y[100];
	int i = 0;
	double k = -6;

	while(k &lt; 7-0.13)
	{
		x[i] = k;
		y[i] = (-1/5040)*pow(k,7) + (1/120)*pow(k,5) - (1/6)*pow(k,3) + k;
		cout &lt;&lt; x[i] &lt;&lt; &quot;             &quot; &lt;&lt; y[i] &lt;&lt; endl;
		i++;
		k+=0.13;
	}

	return 0;
}
</code></pre>
<p>Warum werden in das x-Array und in das y-Array gleiche Werte reingeschrieben. Stehe ich einfach nur auf dem Schlauch oder warum wird meine Funktion ignoriert? Was mache ich falsch? Was passiert beim Beschreiben des Arrays y?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/259127/problem-mit-rechenfunktion-gt-wo-ist-die-genauigkeit-geblieben</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 23:08:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/259127.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Jan 2010 13:53:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Rechenfunktion --&amp;gt; wo ist die Genauigkeit geblieben? on Tue, 19 Jan 2010 13:53:17 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich habe eine Funktion erstellt, mit der ein Taschenrechner Sinuswerte sehr genau im Intervall -pi bis +pi errechnen kann. Zwar kann man die noch verbessern, doch dieses Polynom liefert Werte bis auf einer Genauigkeit von 5 Stellen. Aber darum gehts eigentlich gar nicht <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>Ich habe mir vor einiger Zeit eine Graphikkomponente programmiert, die einen Graphen ausgibt. Nun wundere ich mich, warum bei dieser Funktion eine Gerade ausgegeben wird:</p>
<p>f(x) = -1 / 5040 x⁷ + 1 / 120 x⁵ - 1 / 6 x³ + x</p>
<p>Ich habe mir also mal die Werte einzeln ausgeben lassen. Der Stil ist nicht so schön, aber das ist jetzt egal:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cmath&gt;
using namespace std;

int main()
{
	double x[100], y[100];
	int i = 0;
	double k = -6;

	while(k &lt; 7-0.13)
	{
		x[i] = k;
		y[i] = (-1/5040)*pow(k,7) + (1/120)*pow(k,5) - (1/6)*pow(k,3) + k;
		cout &lt;&lt; x[i] &lt;&lt; &quot;             &quot; &lt;&lt; y[i] &lt;&lt; endl;
		i++;
		k+=0.13;
	}

	return 0;
}
</code></pre>
<p>Warum werden in das x-Array und in das y-Array gleiche Werte reingeschrieben. Stehe ich einfach nur auf dem Schlauch oder warum wird meine Funktion ignoriert? Was mache ich falsch? Was passiert beim Beschreiben des Arrays y?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841394</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841394</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Tue, 19 Jan 2010 13:53:17 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Rechenfunktion --&amp;gt; wo ist die Genauigkeit geblieben? on Tue, 19 Jan 2010 13:58:22 GMT]]></title><description><![CDATA[<p>Weil du Integer durch Integer teilst. Da kommt ein (gerundeter) Integer bei raus.</p>
<p>Mach daraus: y[i] = (-1/5040)*pow(k,7) + (1/120)*pow(k,5) - (1/6)*pow(k,3) + k;<br />
einfach: y[i] = (-1./5040.)*pow(k,7) + (1./120.)*pow(k,5) - (1./6.)*pow(k,3) + k;</p>
<p>dann sollte es gehen. Den Rest habe ich mir nicht angeschaut, hab es eilig. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841398</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 19 Jan 2010 13:58:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Rechenfunktion --&amp;gt; wo ist die Genauigkeit geblieben? on Tue, 19 Jan 2010 14:03:10 GMT]]></title><description><![CDATA[<p>Jap, daran hats gelegen. Vielen Dank. Da habe ich aber was beim Casting verpasst. Da ich doch mit double Werten arbeite, dachte ich, dass automatisch &quot;hochkonvertiert&quot; wird. Ist das nicht so? Warum?</p>
<p>edit: Ahh...oder machen die Divisionen Schwierigkeiten und da die Funktion pow nur doubles nimmt...ahh <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>Warum wird dann aber nicht &quot;hochkonvertiert&quot;, sondern anscheinend runter?</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841401</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Tue, 19 Jan 2010 14:03:10 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Rechenfunktion --&amp;gt; wo ist die Genauigkeit geblieben? on Tue, 19 Jan 2010 14:07:39 GMT]]></title><description><![CDATA[<p>Bei 1/5400*pow(...) wird erst 1/5400 berechnet, das ist ein int, weil beide Operanden int sind. Das Ergebnis von pow ist double, also wird auch der linke Operand, das Ergebnis von 1/5400, zu double konvertiert und die Multiplikation in double durchgeführt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841407</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841407</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 19 Jan 2010 14:07:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Rechenfunktion --&amp;gt; wo ist die Genauigkeit geblieben? on Tue, 19 Jan 2010 14:32:58 GMT]]></title><description><![CDATA[<p>Ok, super! Hab' ich verstanden!</p>
<p>Vielen Dank<br />
lg, freakC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1841428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1841428</guid><dc:creator><![CDATA[freakC++]]></dc:creator><pubDate>Tue, 19 Jan 2010 14:32:58 GMT</pubDate></item></channel></rss>