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言語のようにループ文で配列に格納することはできないのでしょうか?)
もしくは、行列中で列の成分を取り出すことはできますか?

どなたか解法を示していただければ幸いです。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

a= {{x1, y1, z1, f(x1,y1,z1)}, {x2, y2, z2, f(x2,y2,z2)}}



Do[ Print[ a[[i]], {i,1,2} ]
Do[ Do [ Print[ a[[i]][[j]], {j,1,2}], {i,1,2}]

b[2]
Do[ b[[i]]=a[[i]], {i,1,2} ]
Do[ Print[ b[[i]], {i,1,2} ]

2重の大かっこに挟んだ添え字をつけることでリスト(配列)の要素を取り出せます。

この回答への補足

回答ありがとうございます。ただ、これを実行しても"パート指定iは整数でも整数のリストでもありません."と出ます。
実行文:
a= {{x1, y1)}, {x2, y2)}}
Do [ Print[ a[[i]][[j]], {i,1,2},{j,1,2}]]]です。

補足日時:2011/04/20 16:56
    • good
    • 0
この回答へのお礼

最初に御回答いただきありがとうございました。参考にはなっております。

お礼日時:2011/04/20 17:15

このQ&Aに関連する人気のQ&A

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

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

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

QMathematicaで解かせた連立方程式の解にある i

Mathematicaで、例えば
A + f/((404.7*10^-9)^2 - r^2) == 0.53
A + f/((546.1*10^-9)^2 - r^2) == 0.518
A + f/((491.6*10^-9)^2 - r^2) == 0.522
という連立方程式のAfrについて解かせたところ、
r -> 0.+ 3.65417*10^-7 \[ImaginaryI]
という解が出ました。この0.+とかiとか、この解はどういう意味なんでしょうか?

Aベストアンサー

> この0.+とかiとか、この解はどういう意味なんでしょうか?
rの解が複素数
a+bi (iは虚数単位√(-1)の事)
として得られ
実数部が a=0.
虚数部が b=3.65417*10^(-7)
ということです。

Qコマンドプロンプトで{ENTRE]キーの入力を求められる箇所で、自動で{ENTER}を入力されるようにしたい。

お世話になります。

コマンドプロンプトである行で、{ENTRE]キーの入力を求められる箇所がありまして、キーボードから[ENTER]ボタンを押さないと次にすすまないのです。

そのコマンドプロンプトを編集して、自動で{ENTER}を入力されるようにしたいのです。

お手数ですがなにとぞよろしくお願いします。

Aベストアンサー

c:\enterという改行キーがはいったファイルを用意しておいて

hoge.bat < c:\enter
としてみては?

QMathematica で2元4次連立方程式を解くには・・・

教えて下さい!
2元4次連立方程式{f(x,y)=0, g(x,y)=0}
(関数fとgはxとyの4次方程式です。)について、
例えば、[x,-10,10]のような限定された範囲で
実数解(x,y)を
Mathematicaを使って、30桁精度で数値的に求め、
それをx,yの2次元プロットしたいと思っております。

Mathematica のどのような関数を組み合わせれば
これができるか、ご教示下さいませんでしょうか?

よろしくお願いいたします。

(自分でC言語でプログラムした場合、解けるには解け
るのですが、有効数字の桁数が十分でなく、部分的に
数値が丸まってしまい、プロットがとぎれてしまう問題
があったので、有効数字を自在に調節できるMathematica
でやってみようと思ったのですが、例えば、安直に
Plot[N[Solve[{f == 0, g == 0}], 30], {x, -10, 10, 0.01}]
としてもダメでした。NRootなども検討しましたがうまく
行きません。)

Aベストアンサー

何か勘違いされていると思います。
二元四次方程式には最大で16個の解があります。
NSolve[{f==0,g==0},{x,y},30]
で解を求めてその中から条件に合うものを選び出して
その値をx,yとすると
ListPlot[{x,y}]
で点を表示すればよいものと思われます。
プログラムをうまく作れば方程式を代入するだけで表示できるようになりますが、そのためにはMathematica
をよく理解しないといけません。

どうもf(x,y)=0とg(x,y)=0のグラフを描こうとされているようにも思えますが、それならば
ImplicitPlot[{f==0,g==0},{x,-10,10}]
で描くことができます。ただ標準のPackageには組み込まれていないので、使用するには下準備が必要です。
Mathematicaのヘルプをよく見て行ってください。

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での連立方程式

MathmaticaでNSolveを用いて,連立方程式を解こうとしています.

得られた解が実数の場合,虚数の場合の2つでIf文による条件分岐を行いたいです.

例えば,
 解が実数の時,値をファイルに出力する
 解が虚数の時,値をファイルに出力しない

このとき,解が実数であるか,虚数であるかをプログラムで判断するにはどうすれば良いでしょうか?
目視の場合は,iがあるか,ないかで判断できるのですが,プログラムとして実施する方法を教えて頂きたいです.

よろしくお願い致します.

Aベストアンサー

いくつか書き方はありますが、aが実数かどうかを調べる場合は
MatchQ[a, _Real]かElement[a, Reals]あたりが適当かと思います。

例)
ans = x /. NSolve[x^3 == 1]
→ {-0.5 - 0.866025 I, -0.5 + 0.866025 I, 1.}
MatchQ[#, _Real] & /@ ans
→ {False, False, True}
Element[#, Reals] & /@ ans
→ {False, False, True}

虚部が0に非常に近いときに虚数と判定されたくない場合は、
Chopなどを用いてから判定してください。

なお、NSolveの第3引数にRealsを指定することで、
最初から解を実数領域に限定できます。

例)
NSolve[x^3 == 1, x, Reals]
→ {{x -> 1.}}

参考URL:http://reference.wolfram.com/language/tutorial/TypesOfNumbers.html

QMathematicaをつかって任意のリストに、ある操作を施して得られ

Mathematicaをつかって任意のリストに、ある操作を施して得られたリストにさらに同じ操作を繰り返して、その得られたリストに同じ操作をしたいのですがどのようなコマンドを使えばよいでしょうか?

ちなみにある操作とはフーリエ変換して、あるリストを掛けて、それをさらにフーリエ逆変換、そこにさらにリストを書けフーリエ変換、リストをかけてフーリエ逆変換するというちょっと複雑なものなのであらわには書きませんでした。

Aベストアンサー


 i
  i
  j

Q連立方程式

aを実数の定数として、x,yの連立方程式(a+2)x+3y=a , (2a-1)x+ay=3を考える。連立方程式がただ一つの解をもつとき、x,yをそれぞれ求めよ。(aを用いて)


このような問題なのですが、そもそも連立方程式がただ一つの解をもつ条件とは何なのですか?教えて下さい!!!

Aベストアンサー

>そもそも連立方程式がただ一つの解をもつ条件とは何なのですか?

x、yの値が定まるということです。[ax+by=c,dx+ey=f](a~fは定数)で、x、yがただ一つの解をもつ条件というのはtを定数として、(a=td,b=te,c=tf)が成り立つことです。もっと簡単にいえば、片方の式の両辺にある数をかけるともう片方の式になるということです。こうなると、2つの式があっても結局1つの式があるのと同じこととなり、連立方程式を解くことができなくなります。

グラフで考えてみましょう。
連立方程式を解くということは、条件式であらわされるグラフ同士の交点の座標を求めるということです。与えられた条件で表わされるグラフが直線の場合、交点は1つになり、x、yの値はただ一つに定まります。しかし、例外もあります。与えられた条件であらわされたグラフが完全に重なってしまった場合です。こうなると、交点はグラフ上のすべての点となり、x、yはただ一つの値を取ることにはなりません。そして、グラフが重なるということは先ほど述べたことと一致します。

質問と直接関係ありませんが、数学などでわからない問題があった時、回答を見てこうやって解くのだと、無理やり納得して進むことも一つの手です。似た問題を解いてく内に、それらはちゃんと納得できるようになります。

>そもそも連立方程式がただ一つの解をもつ条件とは何なのですか?

x、yの値が定まるということです。[ax+by=c,dx+ey=f](a~fは定数)で、x、yがただ一つの解をもつ条件というのはtを定数として、(a=td,b=te,c=tf)が成り立つことです。もっと簡単にいえば、片方の式の両辺にある数をかけるともう片方の式になるということです。こうなると、2つの式があっても結局1つの式があるのと同じこととなり、連立方程式を解くことができなくなります。

グラフで考えてみましょう。
連立方程式を解くということ...続きを読む

Q{ }でくくった複雑な関数は?

もらったエクセルのデータで{ }でくくった複雑な関数{=SUM(IF(全体!$CO$3:CO$999=11,1,0))}のセルがあるのですが、一度触ると{ }が消えて、うまく計算をしなくなりました。これは何なのでしょう

Aベストアンサー

{=SUM(IF(全体!$CO$3:CO$999=11,1,0))}となっているのはセルに=SUM(IF(全体!$CO$3:CO$999=11,1,0))と入力したうえでこの式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押し式を確定することで表示のような式になります。
これは配列数式といって表示の式では次のようなことを意味しています。
もしもCO3セルが11の数値であれば1、無ければ0、次にCO4セルが11の数値であれば1、無ければ0、…・CO999セルが11の数値であれば1、無ければ0と計算して、全体を足し合わせるというものです。

Q連立方程式って何?

中学生です。

今まで連立方程式をなんとなく感覚で使ってきました。

そこで質問です。
連立方程式って何ですか?
どういうときに使えるのですか?
詳しく基礎から教えていただけるとありがたいです。

Aベストアンサー

>なんとなく感覚で使ってきました
から計算の仕方自体で詰まっているわけではないとして話します。

>連立方程式って何ですか?
これは教科書に正確に書いてると思いますし、それ以上は説明できません。
ただ見方を変えた説明は無いでしょうから、その先の1次関数と合わせると
「2つの1次関数の交点の座標を出せる計算」ともいえます。

>どういうときに使えるのですか?
結論としては『どういうときにも使えます』です。
これは数学をやりたくない子どもが発する質問です。
これを質問してくる生徒は数学の本質を理解できずにいます。
おそらく「商品AとBの一番利益が出る売り方は・・・」といっても
「そんなの計算するまでも無く出る」とか「コンピューターが勝手に出してくれる」
と反論してくるかもしれません。
数学というのはほとんどの人にとって、計算それ自体が役に立つのではなく
『正しい計算をするために自分で論理立てて判断する能力を養うための学問』です。
子どもたちを教えていますが数学を勉強すること自体に疑問を持っている子は
例外なく物事の順序や秩序を守らず・・・良くいえば感覚的に生きる子たちです。
「どういうときに使えるのですか?」と質問するのではなく
「ここでああいう考え方の応用ができる」と自分で発見してください。

なおこれは数学、いや学問だけの話ではないです。
自分のやっていることの意味を他人求めたとき、大抵成長は止まります。

>なんとなく感覚で使ってきました
から計算の仕方自体で詰まっているわけではないとして話します。

>連立方程式って何ですか?
これは教科書に正確に書いてると思いますし、それ以上は説明できません。
ただ見方を変えた説明は無いでしょうから、その先の1次関数と合わせると
「2つの1次関数の交点の座標を出せる計算」ともいえます。

>どういうときに使えるのですか?
結論としては『どういうときにも使えます』です。
これは数学をやりたくない子どもが発する質問です。
これを質問してくる生徒は数学の本...続きを読む

Q【緊急】{ww: w∈{a, b}*}はRegular language?

{ww: w∈{a, b}*}はRegular languageですよね?
{ww^R: w∈{a, b}*}はNon-regular languageというのは知っています。

さっき試験が終わったばっかりで気になって仕方がありません。

Aベストアンサー

> という場合がありえますが
----------** 最後のa..ab、
を忘れていました。どっちにしても結論はかわりませんが、訂正します。

あと、ついでなので1つアドバイス的なことを。
正規表現の能力の限界は、直観的には、DFAが有限の状態しか持たないということに起因します。
例えば、(^i )^i(=同じ数の対応する括弧)が正規表現で表せないことはご存知ですよね。
これは、「(^i が入力された時点で、今までに何個の( が入力されたかを覚えておく必要があるが、それは有限の状態では不可能だから」と理解することができます。

こう理解しておくと、証明するまでもなく、{ww: w∈{a, b}*} は正規言語ではないということが予想できるかと思います。


人気Q&Aランキング

おすすめ情報