Skip to content

Instantly share code, notes, and snippets.

@aki-lua87
Created July 13, 2014 15:15
Show Gist options
  • Save aki-lua87/b74769f49671c199bf23 to your computer and use it in GitHub Desktop.
Save aki-lua87/b74769f49671c199bf23 to your computer and use it in GitHub Desktop.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>ラグランジュ</title>
</head>
<BODY>
<form action="Lagrange.php" method="post" target="new">
 y=e^(abs(-x))を13点で補間  13点を入力<br>
x1=<input type="text" name="x1"/> <br>
x2=<input type="text" name="x2"/>,<br>
x3=<input type="text" name="x3">, <br>
x4=<input type="text" name="x4">,<br>
x5=<input type="text" name="x5">,<br>
x6=<input type="text" name="x6">,<br>
x7=<input type="text" name="x7">,<br>
x8=<input type="text" name="x8">,<br>
x9=<input type="text" name="x9">,<br>
x10=<input type="text" name="x10">,<br>
x11=<input type="text" name="x11">,<br>
x12=<input type="text" name="x12">,<br>
x13=<input type="text" name="x13">,<br>
<input type="submit" name="calc"value="計算実行"><br><br>
<!-- グラフ未実装 外部ファイル必須なため
<input type="submit" name="gla" value="グラフ表示"> -->
</form>
<?php
if($_POST['calc'])
{
/*x代入*/
$x[0] = $_POST['x1'];
$x[1] = $_POST['x2'];
$x[2] = $_POST['x3'];
$x[3] = $_POST['x4'];
$x[4] = $_POST['x5'];
$x[5] = $_POST['x6'];
$x[6] = $_POST['x7'];
$x[7] = $_POST['x8'];
$x[8] = $_POST['x9'];
$x[9] = $_POST['x10'];
$x[10] = $_POST['x11'];
$x[11] = $_POST['x12'];
$x[12] = $_POST['x13'];
$j = 0; /* エラー回避 */
/* 計算式入力 y代入 */
for($i = 0; $i < 13; $i = $i + 1)
{
$x[$i] = number_format($x[$i],2);
$y[$i] = exp(-(abs($x[$i])));
$y[$i] = round($y[$i],3);
$y[$i] = number_format($y[$i],3);
echo 'x='.$x[$i].'の時 y='.$y[$i].'<br>';
}
echo '<br>';
/* ************ */
echo "標本点7<br>";
for($i = $x[0]; $i <= $x[12]; $i = $i + 0.05)
{
$n = 12;
$e = 0;
for ($k = 0; $k <= $n; $k = $k +2)
{
$d = 1;
for($m = 0; $m < $n; $m = $m + 2)
{
if ($m != $k)
{
$d = $d * ($i - $x[$m]) / ($x[$k] - $x[$m]);
}
}
$temp = $d;
$e = $e + $y[$k]*$temp;
}
$j = $j + 1;
$fx7[$j] = round($e,7);
$fx7[$j] = number_format($e,7);
$i = number_format($i,2);
echo '(x,P(x))=('.$i.'-----'.$fx7[$j].')<br>';
}
echo "<br>標本点13<br>";
for($i = $x[0]; $i <= $x[12]; $i = $i + 0.05)
{
$n = 12;
$e = 0;
for ($k = 0; $k <= $n; $k = $k +1)
{
$d = 1;
for($m = 0; $m < $n; $m = $m + 1)
{
if ($m != $k)
{
$d = $d * ($i - $x[$m]) / ($x[$k] - $x[$m]);
}
}
$temp = $d;
$e = $e + $y[$k]*$temp;
}
$j = $j + 1;
$fx13[$j] = round($e,7);
$fx13[$j] = number_format($e,7);
$i = number_format($i,2);
echo '(x,P(x))=('.$i.'-------'.$fx13[$j].')<br>';
}
/* ****************************** */
}
?>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment