• ベストアンサー

Mathematica:警告の表示を消去する関数など

数学ソフトのMathematicaで、関数を実行した際に出力される警告などの表示を出力させない、あるいは消去する関数(あるいは何らかの設定)をご存知のかたいらっしゃいませんでしょうか??たとえばGeneral::stopやInverse::lucといった警告です。 具体的には、NonlinearFitのような出来合の関数をForループの中で使っているのですが、この手の警告がループの数だけ表示されるので、ループの中に警告表示を消去するような関数を埋め込めればと考えています。なにか解決策をお教えいただければ助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

例えばブロック関数をいれると積分の際のエラーメッセージは出ません。 Block[{$Messages = {}}, NIntegrate[ (E^(-x^2)) Cos[x]/Sin[x], {x, 0, Infinity}]] しかし警告は重要なメッセージなのでブロックすることは進めません。メッセージが出ないような方法を探すことの方が大事です。何故ならメッセージはmathematicaの内部プログラムで何らかの問題があることを知らせてくれているわけなので、極端な話結果が意味あるものかどうかは全く保障されないということです。 例えば積分などでは、根本的な問題を解決してエラーがでないようにすることが大抵の場合できます。 それは分っているけどメッセージをブロックしたいなら上記のBlockを使ってください。

rei1701
質問者

お礼

情報ありがとうございました。助かりました。

関連するQ&A

  • mathematicaの特殊関数productlogについて

    mathematicaに登場する特殊関数でproductlogのことで質問があります。 mathematicaの中でproductlogのことを「重積対数関数」と説明して合ったのですが,これを数学の専門書(複素関数論や関数論)で調べてみても載っていません。 mathematicaだけで使われている言葉なんでしょうか? できたら,productlogの計算法(z=w・e^wでwを求める方法)を知りたいのですが,わかる方教えてください。

  • Mathematica の作図をGIFで保存する方法

    Mathematica 4.2を使っています。平面での関数グラフィクスのアニメーションをGIF形式で出力して保存し、 他の一般的な画像ソフトでアニメーションとして表示できるようにしたいのですが、上手くいきません。 どのようにすれば可能でしょうか。教えてください。

  • mathematicaでグラフの名前の付け方

    mathematicaで、ある関数f(x,a)をプロットするとします。 f(x,1)とf(x,2)のグラフを同時に描画することはできるのですが、 それぞれの関数に名前を付け、グラフ中に表示させることはできますか? 例えば、f(x,1)はa=1,f(x,2)はa=2と表示させたいです。 出来れば、それぞれの曲線は異なる色で出力されるので、赤の曲線:a=1、青の曲線:a=2 とグラフの右上あたりに表示させたいです。 よろしくお願いします。

  • スクリプトを実行すると警告が表示されるのですが、通常警告は止まりません

    スクリプトを実行すると警告が表示されるのですが、通常警告は止まりません。 これを独自にトラップして、関数を走らせてその中で止めることはできるのでしょうか? 警告段階の変数を見ようと考えています。 PHPはバージョン5.2以降を使っています。 リフレクションという考え方だと思うのですが、PHPではどのような関数群がありますか。 もっとスマートな方法や考え方があるのでしたらご指南ください。

    • ベストアンサー
    • PHP
  • 拡張された逆正接関数の表記方法?

    Mathematica や Maple,Excel などでは,逆正接関数を用いて全象限について偏角が出力できるよう,拡張された逆正接関数が用意されております。例えば Mathematica の ArcTan[x,y],Maple の arctan(y,x),Excel の atan2(x,y) 関数などです。 さて,このような拡張された逆正接関数は実際の数学にも存在するのでしょうか? もし存在する場合,どのように表記するのでしょうか? もし数式が複雑な場合,TeX で教えていただければ幸いです。 どうか宜しくお願いいたします。

  • mathematicaでリストの格納

    mathematicaでTable関数で作成したリスト {{x1, y1, z1, f(x1,y1,z1)}, {x2, y2, z2, f(x2,y2,z2)}, ... , {xn, yn, zn, f(xn,yn,zn)}} 中のx1~xnまでの各成分とy1~ynまで(、z1~znまで、 f(x1,y1,z1)~f(xn, yn, zn)までの各成分)をそれぞれ配列に格納するにはどうすればいいのでしょうか?(C言語のようにループ文で配列に格納することはできないのでしょうか?) もしくは、行列中で列の成分を取り出すことはできますか? どなたか解法を示していただければ幸いです。

  • onLoad関数

    どうかお願いします、ご教授ください。 BODYタグの中で onLoad()でまずonLoadを呼び出しています。 <body onLoad = "onLoad()"> まだ、このonLoadについて認識不足のために起こる問題だと思うのですが・・・。 フォームからの入力で未入力があればアラームを警告メッセージを表示するようにしました。 しかし、onLoadの中に警告メッセージを出す関数を入れていると動きません。 onLoadに外に置いたら動きます。 どうしてなのでしょうか??? 多分関数の中にある関数だから呼び出す事ができないという事でしょうか。 もしやと思い onLoad.tamesi(); のようにしても駄目でした。 関数の中にある関数うを呼び出すにはどうしたらよいのでしょうか

  • 関数の数式入力を音源ファイル出力するフリーウェア

    mathematica や Matlab などの高額なソフトを使わないで 子供が三角関数の学習のために 数式を入力して、その波形がどのような音に聞こえるかを 家の中で自分で遊びながら学べるようにすることができる フリーウェアを探しています。 Windows 7 で作動するソフトをご紹介下さい。 もし、ソフトがない場合には、自作で波形関数の数式を音声出力させるための コードあるいはライブラリーをどのように見つけたらよろしか お教え下さい。 よろしくお願いいたします。

  • phpでheader関数を用いた画像表示について

    $image = imageCreateFromJPEG($_FILES["upfile"]["tmp_name"][$i]); header(content-type: image/jpeg); imageJPEG($image); で画像を表示させたいんですが Wanning : cannot modify header information - headers already sent by~~ と警告が出て文字化けしてしまします 色々調べてみるとこのheader関数の前にはいかなる出力もダメというのがわかったんですが テンプレートを使用していて、どうしても途中で出力せざるをえないんですが何かいい方法はありませんか?

    • ベストアンサー
    • PHP
  • 既に定義されている関数のプロトタイプがない警告

    現在、Cで作られたプログラムの単体テストをしています。 これを、以下のように、 ・testBase.h → テストのための表示とかを作成するためのもの ・progForCheck.c → これがチェックすべきもので、この中の関数をそれぞれチェック ・add.c など → main() を含んだ、チェックを実行するためのファイル として、以下のような感じで関数分のテストプログラムを作成してテストしようとしています。 テスト自体は問題ないのですが、この構成でコンパイルをすると、 警告 W8065 test.c 13: プロトタイプ宣言のない関数 'writeFotter' の呼び出し(関数 main ) 警告 W8057 test.c 15: パラメータ 'argc' は一度も使用されない(関数 main ) という警告が出ます。後者はその通りで問題ないのですが、前者の警告は、よくわかりません。 実体は3つのファイルですが、コンパイル時にはひとつのファイルになって、既に定義されている writeFotter() を呼んでいるだけなのに、「プロトタイプがない」という警告が出るのは、なぜなのでしょう。 それに、writeHeader() や、doCheck() は警告も無しです。 とりあえず、リンクも正常でちゃんと動作しているようなのですが、ちょっと気持ち悪いので質問しました。 // --------------- testBase.h ---------- #include <stdio.h> int OK = 0; int NG = 0; void doCheck(int isOK) { if (isOK) OK++; else NG++; } void writeHeader(char *title) { printf(" ------------ %s ------------\n", title); } void writeFotter() { printf(" OK = %d, NG = %d", OK, NG); if (NG == 0) printf(" ○○○○○○○○○○○○○○○○○○○\n"); else printf(" ×××××××××××××××××××\n"); } // ------------ progForCheck.c int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } // ------------ test_add.c #include "testBase.h" #include "progForCheck.c" int main(int argc, char *argv[]) { writeHeader(argv[0]); doCheck(add(1, 2) == 3); doCheck(add(2, 4) == 6); doCheck(add(8, 1) == 9); writeFotter(); return 0; }