Mathematica 9 is now available
3.5 タイプセットの画像:Integrate.jsp

ドキュメント3. 基本的な例題

 

3.5 タイプセットの画像:Integrate.jsp

前述のようにwebMathematica をインストールするとhttp://localhost:8080/webMathematica/Examples/Plot.jspでこのJSPに接続することができます(ご自分のサーバに接続するURLはこれとは多少異なる場合もあります).

この例題では関数を入力し,これを積分することができます.結果はタイプセットシステムでフォーマットされ,画像として保存されます.このページのソースはwebMathematica/Examples/Integrate.jspにあります.以下はformタグを含む部分です.

<%@ page language="java" %>
<%@ taglib uri="/webMathematica-taglib" prefix="msp" %>

<html>
<head>
<title>Integration</title>
</head>
<body>
<h1>Integrate a function</h1>
<form action="Integrate.jsp" method="post">Input:
<br>
<msp:allocateKernel>
<msp:evaluate>
   integrand = Null;            被積分関数を保存するページ変数
   If[ MSPValueQ[ $$expr],             
      integrand =             安全な変換で入力を解釈
         MSPToExpression[ $$expr]] ;
</msp:evaluate>

<input type="text" name="expr" size="24"
value="<msp:evaluate> MSPValue[ $$expr, "Sin[x]^2"]</msp:evaluate>" />
<br/>
<br/>
<msp:evaluate>                  被積分関数を実行
   If[ integrand =!= Null,
      MSPFormat[
         Integrate[integrand, x], StandardForm]]    
</msp:evaluate>

</msp:allocateKernel>
<br/>
<input type="submit" name="btnSubmit" value="Evaluate">
</form>
</body>
</html>

この例ではmsp:evaluateタグが式を積分し,MSPFormatを使って結果をStandardFormでフォーマットします.これが画像を生成し,画像への参照を返します.これがうまくいくためには,Mathematica のフロントエンドを使わなければなりません.

この例はMSPToExpressionを使ったページ変数の使い方も示しています.これは,例えば入力がたくさんの計算に使われるとき等に,特定の構造に適したMSPBlockの使用に代る選択肢です.ページ変数のintegrandNullに初期化され,後に,変数の値が変更されると積分が行われます.この入力変数に実際の値がある場合にのみ$$exprの解釈された値が割り当てられます.$$exprを解釈しているときにセキュリティエラーのようなエラーがあると例外が投げられ,integrandNullのままになります.

MSPToExpressionは入力変数にセキュリティチェックを適用します.サイトの危険の原因となるのは入力変数が多いので,安全な変換関数のMSPBlockMSPToExpressionを常に使うようにすべきでしょう.特に,入力変数には決してToExpressionを使うべきではありません.セキュリティのシステムに関しては「セキュリティ」のセクションで詳しく説明します.

MathMLを用いて結果を返すこともできます.これについては「MathML」のセクションで詳述します.数式やグラフィックスのフォーマットについての詳細は「数式やグラフィックスの表示」をご覧ください.

最初のmsp:evaluateタグで興味深い点は,このタグに2つのMathematica コマンドが含まれていることです.セミコロン(;)で区切ると,2つのコマンドをひとつのタグで使うことができます.これに加え,最後のコマンドにもセミコロンが付いています.こうすることでタグからの出力が出力ページに挿入されないようにしているのです. webMathematica のページにへのコードの挿入方法については「ページのコード」で詳しく説明します.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT. CURRENT WEBMATHEMATICA DOCUMENTATION IS NOW AVAILABLE.