Horner-Schema mit PHP
Hier ein Script, dass den Horner-Algorithmus beinhaltet. Das Script erstellt euch eine Funktion eines bestimmten Polynomgrades mit zufälligen Coeffizienten und rechnet den Funktionswert mit dem Horner-Schema für den von euch eingetragenen X-Wert aus.
horner_schema.php
[code:1]<?php
$polynomgrad = $_POST['polynomgrad']; // polynomgrad einlesen
$xwert = $_POST['xwert']; // x-wert einlesen
$coeffizienten_summe = $polynomgrad+1;
function horner( $zwischenwert, $coeffizient, $xwert ) // Horner-Schema
{
$zwischenwert = ( $zwischenwert * $xwert ) + $coeffizient;
return $zwischenwert;
}
function ausklammerung( $polynomgrad, $coeffizient, $xwert ) //Ausklammerung
{
for ( $x = 0; $x < $polynomgrad; $x++ )
{
if ( $x == 0 )
{
$zwischenwert[0] = $coeffizient[0];
}
$zwischenwert[$x+1] = horner( $zwischenwert[$x], $coeffizient[$x+1], $xwert );
}
return $zwischenwert[$polynomgrad];
}
function go( $polynomgrad, $coeffizienten_summe, $xwert, $polynomgrad )
{
for ( $co = 0; $co < $coeffizienten_summe; $co++ ) //Ausgabe der Funktion und Generierung der Coeffizienten
{
$coeffizient[$co] = rand( 1, 9 ); // Zufällige Generierung der Coeffizienten
if( $co == $polynomgrad )
{
$funktion .= $coeffizient[$co];
}
else if( $co == $polynomgrad-1 )
{
$funktion .= $coeffizient[$co].'x+';
}
else
{
$funktion .= $coeffizient[$co].'x^'.( $polynomgrad - $co ).'+';
}
}
$funktionswert = ausklammerung( $polynomgrad, $coeffizient, $xwert );
$str = 'f(x) = '.$funktion.'<br><br>f('.$xwert.') = '.$funktionswert;
return $str;
}
if( $_POST['go'] && isset( $_POST['polynomgrad'] ) && isset( $_POST['xwert'] ) ) //Aufruf der Funktion
{
$ausgabe = go( $polynomgrad, $coeffizienten_summe, $xwert, $polynomgrad );
}
?>
<h3>Horner-Schema</h3>
<form action="<?=$_SERVER[PHP_SELF]?>" method="post">
Polynomgrad: <input type="text" name="polynomgrad" value="5" size="2"/><br><br>
X-Wert: <input type="text" name="xwert" value="3" size="2"/><br><br>
<input type="submit" value="go" name="go"/>
</form>
<br><br>
<?php echo $ausgabe; ?>[/code:1]
Bei Fragen einfach posten
Hier ein Script, dass den Horner-Algorithmus beinhaltet. Das Script erstellt euch eine Funktion eines bestimmten Polynomgrades mit zufälligen Coeffizienten und rechnet den Funktionswert mit dem Horner-Schema für den von euch eingetragenen X-Wert aus.
horner_schema.php
[code:1]<?php
$polynomgrad = $_POST['polynomgrad']; // polynomgrad einlesen
$xwert = $_POST['xwert']; // x-wert einlesen
$coeffizienten_summe = $polynomgrad+1;
function horner( $zwischenwert, $coeffizient, $xwert ) // Horner-Schema
{
$zwischenwert = ( $zwischenwert * $xwert ) + $coeffizient;
return $zwischenwert;
}
function ausklammerung( $polynomgrad, $coeffizient, $xwert ) //Ausklammerung
{
for ( $x = 0; $x < $polynomgrad; $x++ )
{
if ( $x == 0 )
{
$zwischenwert[0] = $coeffizient[0];
}
$zwischenwert[$x+1] = horner( $zwischenwert[$x], $coeffizient[$x+1], $xwert );
}
return $zwischenwert[$polynomgrad];
}
function go( $polynomgrad, $coeffizienten_summe, $xwert, $polynomgrad )
{
for ( $co = 0; $co < $coeffizienten_summe; $co++ ) //Ausgabe der Funktion und Generierung der Coeffizienten
{
$coeffizient[$co] = rand( 1, 9 ); // Zufällige Generierung der Coeffizienten
if( $co == $polynomgrad )
{
$funktion .= $coeffizient[$co];
}
else if( $co == $polynomgrad-1 )
{
$funktion .= $coeffizient[$co].'x+';
}
else
{
$funktion .= $coeffizient[$co].'x^'.( $polynomgrad - $co ).'+';
}
}
$funktionswert = ausklammerung( $polynomgrad, $coeffizient, $xwert );
$str = 'f(x) = '.$funktion.'<br><br>f('.$xwert.') = '.$funktionswert;
return $str;
}
if( $_POST['go'] && isset( $_POST['polynomgrad'] ) && isset( $_POST['xwert'] ) ) //Aufruf der Funktion
{
$ausgabe = go( $polynomgrad, $coeffizienten_summe, $xwert, $polynomgrad );
}
?>
<h3>Horner-Schema</h3>
<form action="<?=$_SERVER[PHP_SELF]?>" method="post">
Polynomgrad: <input type="text" name="polynomgrad" value="5" size="2"/><br><br>
X-Wert: <input type="text" name="xwert" value="3" size="2"/><br><br>
<input type="submit" value="go" name="go"/>
</form>
<br><br>
<?php echo $ausgabe; ?>[/code:1]
Bei Fragen einfach posten