出産前後の痔にはご注意!

Mathematicaでプロットする時に整数点のみプロットする方法があれば教えて頂きけないでしょうか。
ヘルプをみるにしてもどう検索すればいいのかわからずここで質問させていただきました。

A 回答 (3件)

#1,#2です。


補足です。
プロットする整数点の点のサイズを大きさを大きくしたい場合はサイズの指定が出来ます。

ListPlot[%]
の%の後に点のサイズを指定するPrologオプションをつけます。

ListPlot[%, Prolog -> AbsolutePointSize[5]]
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ListPlotとは思いつきませんでした!
オプションまで教えて頂き助かりました。

お礼日時:2005/12/20 19:04

#1です。



以下のよう入力すれば出来ます。

Table[{x, x^2 + 3x}, {x, 0, 10, 1}];
ListPlot[%]
    • good
    • 1

抽象的で質問の具体的な内容が良く分かりません。



もう少し、具体的に詳しく書いてください。

XY座標平面上に、複数の整数値をXY座標にもつ点をプロットしたいのですか?

この回答への補足

言葉足らずで申し訳ないです。
例えば、
Plot[x^2+3x,{x,0,10}]
の時にx={0,1,2,...,10}
の点だけをプロットしたいという意味です。

補足日時:2005/12/20 02:19
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qmathematica, グラフ, 軸設定

mathematicaのグラフの描き方について質問させていただきます.

x=yの3次式
を縦軸y, 横軸xでPlotしたいと考えていますが,
Plot[yの3次式, {yの範囲}]
を実行すれば、横軸yでPlotされるかと思います.

yを変化させ(yをxについて解かずに), 横軸にx, 縦軸にyでPlotしたいのですが、
軸を設定するオプションコマンドなどはありますでしょうか。

よろしくお願い申し上げます。

Aベストアンサー

ParametricPlotを使ったらどうでしょうか.

たとえば,通常のPlot
Plot[y^3 - 2 y^2 - 3 y + 4, {y, 0, 3}, AspectRatio -> 1]
に対し,
ParametricPlot[{y^3 - 2 y^2 - 3 y + 4, y}, {y, 0, 3}, AspectRatio -> 1]
とすればx軸とy軸を反転させたグラフを描けます.

参考URL:http://reference.wolfram.com/mathematica/ref/ParametricPlot.ja.html

QMathematicaで漸化式を解く方法

Mathematicaで3変数の漸化式を解く方法を知りたいと思っています。

解きたい漸化式は、「 (j-k)*a(i,j,k) + k*a(i,j,k+1) + (i-j)*a(i,j-1,k)=0 」で与えられており、この漸化式を j を変数として解き、一般項 a(i,j,k) を i と k の式で表したいと考えています。
また、その初期値として、j=i-1のときの値、「 a(i,i-1,k)=(-1)^(k-1)*binomial(i,k)/i 」が与えられています。
(ただし、a(i,j,k)は3変数i,j,kの数列とし、*はかけ算を表し、binomial(i,k)は二項係数iCkを表すとします。)

Mathematicaで、このような式を解くときに、どのように入力すればよいのかよくわかっておりません。
もしもご存じの方がおられれば、お教え頂けないでしょうか?

Aベストアンサー

>変数が複数になった漸化式の解き方がわからない

順番に解けばいいだけでは?
iの漸化式だと思ってRSolve → jの漸化式だと思ってRSolve → kの漸化式だと思ってRSolve

おそらく、これ以外の方法(まとめて一気に解く)といった方法はMathematica標準にはないと思います。

もしこの方法でRSolveで解けなければ、各変数について、z変換して、代数方程式を解いて逆z変換、という流れで計算してみれば、もしかしたら解けるかも。
ただ、RSolve自体、おそらく内部で、z変換を使う方法も試していると思われるので、RSolveで解けない問題が解けるかは微妙ですが。

QMathematicaで関数の最大値を求める

Mathematicaで複素数の関数S(t)があったとします。
このS(t)の絶対値の最大値が知りたい時、どのように入力すればよいでしょうか?

Aベストアンサー

 S[t]は複素数関数ということですが、絶対値を取ってAbs[S[t]]とすれば結局は実数関数となるので、あとはこの実数関数を最大化すれば良いわけですね。

 ところが、Mathematicaには関数の最大化を行う関数はありません。まあこの点については最小化を行うFindMinimum関数があるため、正負を反転させた関数-Abs[S[t]]の最小化を行えば目的を達成することはできます。

 しかし、問題はFindMinimumで求められるのは局所的最小解であって、大域的最小解ではないということです(そもそも任意の関数の最小値を求める手法は未だ発見されていない)。これについては、幸い目的関数-Abs[S[t]]が1変数関数であるため、Plot関数で最小解がありそうな範囲の見当をつけてからFindMinimumで適切な初期値を与えてやれば、S[t]の絶対値の最大値を求めることができると思います。

Plot[-Abs[S[t]],{t,0,10}]←範囲は適当に変えて下さい
FindMinimum[-Abs[S[t]],{t,t0}]←t0(局所的最適解を求めるための初期点)は適切なものを与えて下さい

 S[t]は複素数関数ということですが、絶対値を取ってAbs[S[t]]とすれば結局は実数関数となるので、あとはこの実数関数を最大化すれば良いわけですね。

 ところが、Mathematicaには関数の最大化を行う関数はありません。まあこの点については最小化を行うFindMinimum関数があるため、正負を反転させた関数-Abs[S[t]]の最小化を行えば目的を達成することはできます。

 しかし、問題はFindMinimumで求められるのは局所的最小解であって、大域的最小解ではないということです(そもそも任意の関数の最小値を...続きを読む

QMathematicaでの3D散布図

Mathematicaで3D散布図を描画しようとしています.

Show内で,Graphics3D[Point[{x1,y1,z1}]],Graphics3D[Point[{x2,y2,z2}]],・・・というように,1プロットずつ記述しています.

このとき,データごとにプロットの形状を”●”,”▲”,”■”などのように変更することは出来ますか?

PlotMarkesrを使用することで,出来そうなのですが,Graphics3D内でPlotMarkersを記述するとエラーではじかれてしまいます.

PlotMarkersはListPlotなどの関数じゃないと,使用出来ないのでしょうか?
公式サイトのヘルプは充実しているのですが,イマイチ分かりません.

よろしくお願いします.

Aベストアンサー

GraphicsやGraphics3Dで、指定した座標に文字列を表示させたい場合は、PointではなくTextを使います。

例)
data1 = RandomReal[1, {10, 3}];
data2 = RandomReal[1, {10, 3}];
Graphics3D[{Text["●", #] & /@ data1, Text["■", #] & /@ data2}]


なお、PlotやPlot3Dなどの関数は最終的にGraphicsやGraphics3Dを生成します。
PlotMarkersオプションを指定した時に、これらの関数が何をやっているのか調べたければ、
ListPlot[{{1, 2, 3, 5, 8}, {2, 3, 6, 9, 10}},
PlotMarkers -> Automatic] // FullForm
というように、FullFormを使うと何をやっているのかわかります。
私のMathematica 8ではInsetでマーカーを生成していました。
なので、上の例の場合においてもTextをInsetに変えても動作すると思います。

GraphicsやGraphics3Dで、指定した座標に文字列を表示させたい場合は、PointではなくTextを使います。

例)
data1 = RandomReal[1, {10, 3}];
data2 = RandomReal[1, {10, 3}];
Graphics3D[{Text["●", #] & /@ data1, Text["■", #] & /@ data2}]


なお、PlotやPlot3Dなどの関数は最終的にGraphicsやGraphics3Dを生成します。
PlotMarkersオプションを指定した時に、これらの関数が何をやっているのか調べたければ、
ListPlot[{{1, 2, 3, 5, 8}, {2, 3, 6, 9, 10}},
PlotMarkers -> Automatic] // FullForm
と...続きを読む

Q(mathematica)Tableで配列された変数の一括定義

例えば、手打ちで

{a[1],a[2],a[3]}={1,2,3} ------(1)

とした場合はa[1],a[2],a[3]それぞれに1,2,3が割り当てられますが、これをTableコマンドを使って

Table[a[i],{i,3}]={1,2,3}

としてもa[1],a[2],a[3]には何も割り当てられません。Tableコマンドを使って、(1)と同じように配列内の変数を一括に定義できる操作がわからなくて困っています。mathematicaに詳しい方ご存知でしたらぜひ教えてください!
ちなみに私はmathematicaのver6を使っています。

Aベストアンサー

"="(Set)はHoldFirst属性がありますので,第1引数("="の左辺)は評価されません.なので,先にEvaluateを使って左辺を評価すればできます.

Evaluate[Table[a[i],{i,3}]]={1,2,3}

このときa[1],a[2],a[3]が既に定義されているとエラーになりますので,そのときはClear[a]などとしてから実行する必要があります.


とはいっても,Mathematicaで配列を扱う方法としては,リストを使う方法が一般的です.

a = {1,2,3}

として定義しておいて,各要素にはa[[1]],a[[2]],a[[3]]としてアクセスします.リストにしておけばMapやApply,Selectなどの豊富なMathematica標準の関数が使えます.
もちろん添数付きオブジェクト(a[1],a[2],...)として定義する方法には,添数が飛び飛びの場合やシンボルを引数にするときなどに便利ですが.

QMathematicaの計算時間について

Mathematicaで時間のかかる計算をしたいんですが、
長く走らせていると青いエラーメッセージのようなものがでます。
プログラムに間違いは無いのですが、
このまま走らせて置いた場合結果はいずれ出力されるのでしょうか?

このような場合何か設定をいじったほうがいいのでしょうか?
もしそうならどこをどういじればよいか教えていただけると助かります。

Mathematica4.1、Windows2000です。

Aベストアンサー

ヘルプでTimeConstraint を調べるとわかります。
Simplifyにかかる時間が標準では300秒を超えるとabortします。
TimeConstraintの数値を変えるか、SimplifyをFullSimplify に変えると大丈夫だと思います。

QTeXで画像が表示されない

TeXでPDFを作成していますが、画像(EPS)がうまく表示されません。
\usepackage[dvipdfm]{fraphicx}
とし、画像を入れる場所で
\includegraphics[width=6xw]{test.eps}
としたのですが、画像の入るべき場所が真っ白で、何も表示されません。Winshellではエラーメッセージは出てこなかったのですが、画像が表示されていません。
コマンドプロンプトで、
C:\work> dvipdfm test.dvi
と入力すると、
pdf: image inclusion failed for (test.eps).
等のメッセージが表示されます。(このエラーメッセージの前にも数行の文章が表示されます。)どうすれば画像が表示されるのでしょうか。よろしくお願いします。

Aベストアンサー

こんにちは.

もしかしたら dviout などの dvi viewer でも画像が表示されていないのでは
ないかと感じます.(これは大丈夫なのでしょうか?)
だとすると以下の作業をやり直したほうが早いと思います.

ghostscript の version が少し古いようですので,最新版に入れ替えましょう.
このサイトに従って,最新版の ghostscript と ghostview に入れ替えてください.
http://auemath.aichi-edu.ac.jp/~khotta/ghost/index.html
その際は section 2 に述べられている,インストール時の注意点に留意してください.

・前の version の完全削除(ソフトの uninstaller で OK,念のためにコントロールパネル
のプログラムの追加と削除でまだ見えているようなら,そちらかも削除)
・インストールする順番を指示通りに行うこと.
・特に,ユーザ名が日本語の場合は gs に限らず,Unix 由来のソフトではことごとく
インストールに失敗しますので,ascii 文字のみで構成された新たなユーザアカウント名を
設定し,それに_superuser/root 権限_(管理者権限を与えてください).

NG: 【ユーザ名】太郎,【権限】一般ユーザ
OK: 【ユーザ名】taro,【権限】管理者

また同様にインストールに使用するフォルダ(ディレクトリ)に日本語が含まれてもだめです.
> Creating temporary file c:\documents and settings\ユーザー\local settings\temp

この「ユーザー」が日本語の場合失敗するということです.
アカウントを上に従って作り直せばOK.


これで,gs と gsview がインストールされたはずです.
次に,gs の Path を追加します.XP なら「マイコンピュータ」のプロパティを
開き,「詳細設定」タブ下の環境変数を開き,システム環境変数の Path に gs のパスを
追加してください.上のインストール時の注意点(install.txt)に詳細があります.

ここまでやれば コマンドプロンプトから dvipdfm(x) で pdf 変換できるはずですが,
その前に dviout ツールバー (options → graphicタブの ghostscript [gsx:] を押して
自動サーチで gs を見つけられるか確認してください.
正しくインストールされていれば以下のように,自動で設定されるはずです.

[gsx:] C:\gs8.50\bin\gswin32c.exe

問題なければ save, OK を押して,設定を保存します.
最後にテストファイルで dvi 作成(dviout で図が見えるはず),
dvipdfm(x) で pdf を作成してみてください.

こんにちは.

もしかしたら dviout などの dvi viewer でも画像が表示されていないのでは
ないかと感じます.(これは大丈夫なのでしょうか?)
だとすると以下の作業をやり直したほうが早いと思います.

ghostscript の version が少し古いようですので,最新版に入れ替えましょう.
このサイトに従って,最新版の ghostscript と ghostview に入れ替えてください.
http://auemath.aichi-edu.ac.jp/~khotta/ghost/index.html
その際は section 2 に述べられている,インストール時の注意点に留意して...続きを読む

Qmathematicaのグラフの軸

mathematicaで3次元プロット(x、y、z)をしたのですが、z軸だけメモリの間隔が狭くなってしまいます。
範囲はx、y、z軸どれも-500~500なんですが、z軸だけつぶれて表示されてしまい、たとえば球が楕円球のように見えてしまいます。
とても見にくいです。
メモリの間隔を何とかx、yと同じようにはできないでしょうか?
どなたか詳しい方がいらっしゃいましたらお教えください。

Aベストアンサー

BoxRatios -> Automaticで3Dグラフィックスの範囲が座標値の範囲の比に対応しますので,まずはこれを試してみてください.

例:
Plot3D[Sqrt[1 - x^2 - y^2], {x, -1, 1}, {y, -1, 1}, BoxRatios -> Automatic]

これでうまくいかなかったら,PlotRange -> {{-500,500},{-500,500},{-500,500}}とBoxRatios -> {1,1,1}を同時に指定してみてください.

参考URL:http://reference.wolfram.com/mathematica/ref/BoxRatios.html


人気Q&Aランキング