<?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[legendrepolynome]]></title><description><![CDATA[<p>Hey. Ich brauche dringend Hilfe!</p>
<p>Laut meiner Angabe können die Legendrepolynome folgendermaßen definiert werden:</p>
<p>L<sub>0</sub>(x):=1<br />
L<sub>1</sub>(x):=x<br />
L<sub>i</sub>(x):= 1/i((2i-1)xL<sub>i-1</sub>(x)-(i-1)L<sub>i-2</sub>(x)), wobei i ≥ 2</p>
<p>Ich sollte eine Funktion mit Prototyp<br />
&quot;double compLegendreRec(double x, unsigned i);&quot;<br />
erstellen und anhand der Definition berechnen.</p>
<p>Mein Anfangsversuche sehen so aus:</p>
<pre><code class="language-cli">//legendre.h definiert Funktion fuer Legendrepolynome
#include&lt;iostream&gt;

using namespace std;

double compLegendreRec(double x,unsigned i)
{
  if(i&lt;=1)
  {
      if (i=1)
      {
          return x;            
      }
      else 
      { 
          return 1;  
      }    
  }
  else
  {  
  return double (2*i-1)*x*compLegendreRec(x,i-1)/i-(i-1)*compLegendreRec(x,i-2)/i;
  }
}
//------------------------------------------------------------------------------

int main()
{
    unsigned i;
    cout &lt;&lt; &quot;i= &quot;;
    cin &gt;&gt; i;

    double x;
    cout &lt;&lt; &quot;x= &quot;;
    cin &gt;&gt; x;

    cout &lt;&lt; &quot;Der Wert der Legendrefunktion mit L&quot; &lt;&lt; i &lt;&lt; &quot;(&quot; &lt;&lt; x &lt;&lt; &quot;) = &quot; &lt;&lt; compLegendreRec(x,i)&lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Mein Problem dabei ist, dass bei der Berechnung der Zeile</p>
<pre><code class="language-cli">return double (2*i-1)*x*compLegendreRec(x,i-1)/i-(i-1)*compLegendreRec(x,i-2)/i;
</code></pre>
<p>auch wieder mitenfließen soll, dass für i=1 und i≤1 die Bedingungen laut obiger Definition(Angabe) gelten.</p>
<p>Denn wenn ich mir händisch für die Wert i=2 und x=3. das Ergebnis berechne, müsste ich 13 erhalten, was aber leider nicht der Fall ist.</p>
<p>Kann mir bitte jemand zeigen, wie ich mein Problem am besten lösen kann?<br />
lg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/296519/legendrepolynome</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 22:35:13 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296519.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Dec 2011 12:18:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to legendrepolynome on Tue, 06 Dec 2011 12:18:35 GMT]]></title><description><![CDATA[<p>Hey. Ich brauche dringend Hilfe!</p>
<p>Laut meiner Angabe können die Legendrepolynome folgendermaßen definiert werden:</p>
<p>L<sub>0</sub>(x):=1<br />
L<sub>1</sub>(x):=x<br />
L<sub>i</sub>(x):= 1/i((2i-1)xL<sub>i-1</sub>(x)-(i-1)L<sub>i-2</sub>(x)), wobei i ≥ 2</p>
<p>Ich sollte eine Funktion mit Prototyp<br />
&quot;double compLegendreRec(double x, unsigned i);&quot;<br />
erstellen und anhand der Definition berechnen.</p>
<p>Mein Anfangsversuche sehen so aus:</p>
<pre><code class="language-cli">//legendre.h definiert Funktion fuer Legendrepolynome
#include&lt;iostream&gt;

using namespace std;

double compLegendreRec(double x,unsigned i)
{
  if(i&lt;=1)
  {
      if (i=1)
      {
          return x;            
      }
      else 
      { 
          return 1;  
      }    
  }
  else
  {  
  return double (2*i-1)*x*compLegendreRec(x,i-1)/i-(i-1)*compLegendreRec(x,i-2)/i;
  }
}
//------------------------------------------------------------------------------

int main()
{
    unsigned i;
    cout &lt;&lt; &quot;i= &quot;;
    cin &gt;&gt; i;

    double x;
    cout &lt;&lt; &quot;x= &quot;;
    cin &gt;&gt; x;

    cout &lt;&lt; &quot;Der Wert der Legendrefunktion mit L&quot; &lt;&lt; i &lt;&lt; &quot;(&quot; &lt;&lt; x &lt;&lt; &quot;) = &quot; &lt;&lt; compLegendreRec(x,i)&lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Mein Problem dabei ist, dass bei der Berechnung der Zeile</p>
<pre><code class="language-cli">return double (2*i-1)*x*compLegendreRec(x,i-1)/i-(i-1)*compLegendreRec(x,i-2)/i;
</code></pre>
<p>auch wieder mitenfließen soll, dass für i=1 und i≤1 die Bedingungen laut obiger Definition(Angabe) gelten.</p>
<p>Denn wenn ich mir händisch für die Wert i=2 und x=3. das Ergebnis berechne, müsste ich 13 erhalten, was aber leider nicht der Fall ist.</p>
<p>Kann mir bitte jemand zeigen, wie ich mein Problem am besten lösen kann?<br />
lg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153814</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153814</guid><dc:creator><![CDATA[e.kerstin91]]></dc:creator><pubDate>Tue, 06 Dec 2011 12:18:35 GMT</pubDate></item><item><title><![CDATA[Reply to legendrepolynome on Tue, 06 Dec 2011 12:32:04 GMT]]></title><description><![CDATA[<p>Ich seh dein Problem eher in der Bedingung in Zeile 10:</p>
<pre><code class="language-cpp">if (i=1)
</code></pre>
<p>Das ist eine Zuweisung, einen Vergleich schreibt man in C++ mit ==</p>
<pre><code class="language-cpp">if (i == 1)
</code></pre>
<p>Und das <code>double</code> beim return scheint mir auch ziemlich sinnlos zu sein. Ich weiß nicht, was du damit bezweckst, es bewirkt an der Stelle eine Typumwandlung des Ausdrucks <code>(2*i-1)</code> nach double, was nicht viel bringt, da der sowieso schon vom Typ double ist. <strong>Edit:</strong> Falsch, er ist vom Typ unsigned, ich hatte irgendwie i und x verwechselt. Der Cast bringt trotzdem nichts <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>
<p>Das was du als &quot;dein Problem&quot; bezeichnest, ist, wenn ich das richtig verstehe, keins, das erledigt sich durch die Rekursion von selbst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153818</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153818</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Tue, 06 Dec 2011 12:32:04 GMT</pubDate></item><item><title><![CDATA[Reply to legendrepolynome on Tue, 06 Dec 2011 12:24:06 GMT]]></title><description><![CDATA[<p>nur kurz rübergeschaut... hier ein fehler:</p>
<p>if (i=1) -&gt; if (i==1) <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2153819</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153819</guid><dc:creator><![CDATA[elise]]></dc:creator><pubDate>Tue, 06 Dec 2011 12:24:06 GMT</pubDate></item><item><title><![CDATA[Reply to legendrepolynome on Tue, 06 Dec 2011 12:25:12 GMT]]></title><description><![CDATA[<p>i=1 ist eine Zuweisung, kein Vergleich.</p>
<p>edit: Mal wieder dar langsamste. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153820</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 06 Dec 2011 12:25:12 GMT</pubDate></item><item><title><![CDATA[Reply to legendrepolynome on Tue, 06 Dec 2011 12:30:20 GMT]]></title><description><![CDATA[<p>DANKE!!!!! Ihr habt mir echt geholfen. Hätte ich eigentlich wissen müssen, dass ich (i==1) schreibe.<br />
Ich hätte wahrscheinlich noch stundenlang nach einem anderen Fehler gesucht.<br />
VIELEN DANK</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153826</guid><dc:creator><![CDATA[e.kerstin91]]></dc:creator><pubDate>Tue, 06 Dec 2011 12:30:20 GMT</pubDate></item><item><title><![CDATA[Reply to legendrepolynome on Tue, 06 Dec 2011 12:31:08 GMT]]></title><description><![CDATA[<p>Tip: dreh bei deinem Compiler mal die Warnungen voll auf. Der müsste das eigentlich ankreiden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153829</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 06 Dec 2011 12:31:08 GMT</pubDate></item><item><title><![CDATA[Reply to legendrepolynome on Tue, 06 Dec 2011 12:33:54 GMT]]></title><description><![CDATA[<p>Okay! Danke für den Tipp, werd ich mal versuchen! Auf jeden Fall es funktioniert jetzt alles einwandfrei!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2153830</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2153830</guid><dc:creator><![CDATA[e.kerstin91]]></dc:creator><pubDate>Tue, 06 Dec 2011 12:33:54 GMT</pubDate></item></channel></rss>