マンガでよめる痔のこと・薬のこと

添付した図を見ながらご教示いただければ幸いです。

連立方程式
3X+4y=44
2X-y=11  を

添付ファイルのように行列の積算
にしてC7セルに=MINVERSE(C4:D5)
を入力したところ、C7セルのみ計算されて
残りの3つのセルには答えが表示されません。

どうすれば残りの3つが表示されるのでしょうか?

「配列の逆行列が求められない(MINVER」の質問画像

A 回答 (1件)

1. C7セルに入力する前に、C7,D7,C8,D7を選択状態にしておく


2. C7に入力したらCtrl + Shift+ Enter

これはセットで値が入るので、どこか1マスだけ消すということはできない。
俺は数式バーの式にどの位置かわからないことも含めてあまり好きではないので
INDEX関数に魅力を感じている。

http://oshiete.goo.ne.jp/qa/4179626.html
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。

1. C7セルに入力する前に、C7,D7,C8,D7を選択状態にしておく
2. C7に入力したらCtrl + Shift+ Enter

の通りにしたら4つまとめて答えが出ました。
=INDEX(MMULT(行列,行列),ROW(A1),COLUMN(A1))も
参考にさせていただきます。

お礼日時:2011/05/10 08:18

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Q表計算で行列の積を計算する方法(OpenOffice、Excel等)

よろしくお願いします。

表計算ソフトで、行列の積を計算する方法を教えてください。

MMULT関数を使って、
=MMULT(1つ目の行列のありか, 2つ目の行列のありか)
とすることはHELPを読んだので知っているのですが、
積の計算結果を出す複数のセルに、具体的にどう記述してよいかがわかりません。

私はオープンオフィス(Microsoft Office と大体同じ機能)を使っていますが、
Microsoft Excel でも、たぶん同じやり方ではないかと思いますので、
エクセルでのやり方を知っている方からの回答もお待ちしております。

Aベストアンサー

sanoriさんなので詳細は略。

http://www.quantunet.com/excel2003/skills/sample/the_mmult_function.html

http://wiki.services.openoffice.org/wiki/Documentation/How_Tos/Calc:_MMULT_function

【Excelと違い,OpenOffice.org Calc 3.0 m21 Build 9319の検証では
F2を押した後のCtrl + Shift + Enterでは配列数式にならなかった】

【OpenOffice.org CalcではExcelと違い,引数の区切りはカンマでなくセミコロンであることにも注意】

#行列中の位置が式上に表現できないので,一見して判るものではないため,個人的にはあまり好きではないが,代替案探すのも面倒なので断念。

QExcel-VBAで内臓のMINVERSE,MMLUT関数を使って53行以上の連立一次方程式の解法

ExcelでMINVERSE,MMLUT関数を使って連立一次方程式を解く場合,52元が制限です。53元以上の連立一次方程式は解けないのです。ExcelのMINVERSE,MMLUT関数をそのまま使って,53行以上の連立一次方程式を解くにはどうしたらいいでしょうか。制限以内の行列数に分割して解く方法がありそうな気がしますけど,お分かりの方,教えて下さい。

Aベストアンサー

こんばんは。

>>52元が制限です
>これはへルプ、実際経験、書籍・WEBの記述のどれに拠ったものでしょうか。

「52」というのは、
http://support.microsoft.com/default.aspx?scid=kb;ja;416526
[XL2000]配列のサイズの制限について

さらに、
http://support.microsoft.com/default.aspx?scid=kb;ja;166342
操作で Excel 2000 のと Excel 2002 のと Excel 2003 での配列で使用する制限の説明

に出てくることで、正確には、52×52のマトリックスです。

ただ、逆行列は、有名なアルゴリズムですから、
http://www.keep-on.com/excelyou/2000lng2/200010/00100213.txt

ここを参考にしてみてください。
英語でも、検索すれば出てくるはずです。本来は、VBのコードです。

ただし、計算は、一方通行ですから、お間違えないように。検算しようと思って、MINVERSE と MMULT を行っても、元には戻りません。

VBAでうまくいかない場合、そのデータ型を工夫してみると良いです。

こんばんは。

>>52元が制限です
>これはへルプ、実際経験、書籍・WEBの記述のどれに拠ったものでしょうか。

「52」というのは、
http://support.microsoft.com/default.aspx?scid=kb;ja;416526
[XL2000]配列のサイズの制限について

さらに、
http://support.microsoft.com/default.aspx?scid=kb;ja;166342
操作で Excel 2000 のと Excel 2002 のと Excel 2003 での配列で使用する制限の説明

に出てくることで、正確には、52×52のマトリックスです。

ただ、逆行列は、有名なアルゴリズム...続きを読む

QエクセルでのMINVERSE関数について

今36×36の正方行列の逆行列を求めようとしています。 そこで、MINVERSE関数を使用しようと思ったのですが、使い方がよくわかりません。どなたか教えていただけますでしょうか?

Aベストアンサー

1)逆行列を出力したい36×36のセルを範囲選択する。
2)数式バーに =MINVERSE(参照元のセル範囲)と入力する。
3)Shift + Ctrl + Enterキーを押す。
という手順になります。

下記ページを参考にして下さい。
http://gucchi24.hp.infoseek.co.jp/MATRIX.htm

参考URL:http://gucchi24.hp.infoseek.co.jp/MATRIX.htm

Qエクセルで計算すると2.43E-19などと表示される。Eとは何ですか?

よろしくお願いします。
エクセルの回帰分析をすると有意水準で2.43E-19などと表示されますが
Eとは何でしょうか?

また、回帰分析の数字の意味が良く分からないのですが、
皆さんは独学されましたか?それとも講座などをうけたのでしょうか?

回帰分析でR2(決定係数)しかみていないのですが
どうすれば回帰分析が分かるようになるのでしょうか?
本を読んだのですがいまいち難しくて分かりません。
教えてください。
よろしくお願いします。

Aベストアンサー

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるための指数表記のことですよ。
・よって、『2.43E-19』とは?
 2.43×1/(10の19乗)で、
 2.43×1/10000000000000000000となり、
 2.43×0.0000000000000000001だから、
 0.000000000000000000243という数値を意味します。

補足:
・E+数値は 10、100、1000 という大きい数を表します。
・E-数値は 0.1、0.01、0.001 という小さい数を表します。
・数学では『2.43×10』の次に、小さい数字で上に『19』と表示します。→http://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
・最後に『回帰分析』とは何?下の『参考URL』をどうぞ。→『数学』カテゴリで質問してみては?

参考URL:http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

★回答
・最初に『回帰分析』をここで説明するのは少し大変なので『E』のみ説明します。
・回答者 No.1 ~ No.3 さんと同じく『指数表記』の『Exponent』ですよ。
・『指数』って分かりますか?
・10→1.0E+1(1.0×10の1乗)→×10倍
・100→1.0E+2(1.0×10の2乗)→×100倍
・1000→1.0E+3(1.0×10の3乗)→×1000倍
・0.1→1.0E-1(1.0×1/10の1乗)→×1/10倍→÷10
・0.01→1.0E-2(1.0×1/10の2乗)→×1/100倍→÷100
・0.001→1.0E-3(1.0×1/10の3乗)→×1/1000倍→÷1000
・になります。ようするに 10 を n 乗すると元の数字になるた...続きを読む

Qエクセルで連立方程式

エクセル初心者です。
x+y=11
120x+70y=920
この連立方程式をエクセルで解きたいのですが、どのようにすればいいのでしょうか。
x、y、z…などと、もっとたくさんの未知数?がある場合もあるのですが。
初歩的な質問かもしれませんが、よろしくお願いします。

Aベストアンサー

Excelについているアドインにソルバーがあります。
ツール―アドイン
で、「ソルバー」をチェックして「OK」とします。

ソルバーを使います。
添付図参照

A2,B2にはx,yの初期値として適当な値を入れておきます。ここでは「1」にしました。
C2は、数式、「=A2+B2」(x+yです)を入れます。ここでは「1+1」だから「2」になっています。
D2は、数式、「=120*A2+70*B2」(120x+70yです)を入れます。ここでは、「120+70」になるので、「190」になっています。
C3に「11」、D3に「920」を入れておきます。

ツール―ソルバー
で、
「ソルバー:パラメータ設定」ダイアログで、「目的セル」を「$C$2」にして、「値」にチェックで「11」、
「変化させるセル」に「$A$2:$B$2」、「制約条件」で「追加」にして、「セル参照」に「$D$2」「=」「$D$3」
として、「追加」して、「キャンセル」でもどり、「実行」ボタンを押せば、解がA2,B2に入ります。
精度などは、「オプション」で設定します。

Excel2003ですが他のバージョンでも同様でしょう。

未知数いくつまで対応しているか知りませんが、同様な操作でできます。

Excelについているアドインにソルバーがあります。
ツール―アドイン
で、「ソルバー」をチェックして「OK」とします。

ソルバーを使います。
添付図参照

A2,B2にはx,yの初期値として適当な値を入れておきます。ここでは「1」にしました。
C2は、数式、「=A2+B2」(x+yです)を入れます。ここでは「1+1」だから「2」になっています。
D2は、数式、「=120*A2+70*B2」(120x+70yです)を入れます。ここでは、「120+70」になるので、「190」になっています。
C3に「11」、D3に「920」を入れておきます。

ツール―ソルバ...続きを読む

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

Qエクセル STDEVとSTDEVPの違い

エクセルの統計関数で標準偏差を求める時、STDEVとSTDEVPがあります。両者の違いが良くわかりません。
宜しかったら、恐縮ですが、以下の具体例で、『噛み砕いて』教えて下さい。
(例)
セルA1~A13に1~13の数字を入力、平均値=7、STDEVでは3.89444、STDEVPでは3.741657となります。
また、平均値7と各数字の差を取り、それを2乗し、総和を取る(182)、これをデータの個数13で割る(14)、この平方根を取ると3.741657となります。
では、STDEVとSTDEVPの違いは何なのでしょうか?統計のことは疎く、お手数ですが、サルにもわかるようご教授頂きたく、お願い致します。

Aベストアンサー

データが母集団そのものからとったか、標本データかで違います。また母集団そのものだったとしても(例えばクラス全員というような)、その背景にさらならる母集団(例えば学年全体)を想定して比較するような時もありますので、その場合は標本となります。
で標本データの時はSTDEVを使って、母集団の時はSTDEVPをつかうことになります。
公式の違いは分母がn-1(STDEV)かn(STDEVP)かの違いしかありません。まぁ感覚的に理解するなら、分母がn-1になるということはそれだけ結果が大きくなるわけで、つまりそれだけのりしろを多くもって推測に当たるというようなことになります。
AとBの違いがあるかないかという推測をする時、通常は標本同士の検証になるわけですので、偏差を余裕をもってわざとちょっと大きめに見るということで、それだけ確証の度合いを上げるというわけです。

Qファイルやディレクトリの存在確認を行う方法

ファイルをオープンするのはfopenでOKですが、ファイルやディレクトリの存在確認を行う方法が知りたいです。

何か組み合わせて作るものなのでしょうか?
perlとか便利な演算子があるのですが、C/C++って器用ではないですね。
これは処理系?依存の内容ですか?

私の環境は VC6, VC2005 Windows2000です。

Aベストアンサー

int access(const char* path, int mode);
int stat(const char* path, struct stat* sb);

かな?
MSDN を引くと _access_s() を使えとか書いてあるけど。

Q「基」と「元」の使い方

経験を"もと"に話す。
上記の場合の”もと”は元、基のどちらが正しいのでしょうか?
よろしくお願いします。

Aベストアンサー

はじめまして。

ご質問1:
<上記の場合の”もと”は元、基のどちらが正しいのでしょうか?>

「基」になります。

1.「経験を"もと"に話す」とは言い換えれば「経験にもとづいて話す」ことと同じです。

2.「もとづい(て)」は「もとづく」の連用形です。

3.「もとづく」は「基づく」という漢字しか存在しません。

4.従って、ここでは元、本、素などの漢字は適切ではありません。


ご質問2:
<経験を"もと"に話す。>

1.「~をもとに」という語感が「~を元に戻す」といった語感になるため、「元」の漢字を想定されたのだと思われます。

2.しかし、ここで使われる「もと」とは「土台」の意味になります。

3.他の漢字「元」「本」などには「土台」「ベース」といった意味はありません。

4.従って、ここでは基が適切な漢字となります。

以上ご参考までに。

Qエクセルにて、3次スプラインのマクロを組みました。

エクセルにて、3次スプラインのマクロを組みました。
結果がところどころしか表示されません。
何度見直しても自分では間違いがわかりません。
どなたか、間違い箇所がわかりませんでしょうか。


A列には5行目から、0-720までの721個の少数値
0
1.005586592
2.011173184

B列には5行目から、721個の少数値
5.83
5.69
5.66

D列には5行目から、0-720まで、1ずつ増加の整数値
0
1
2

E列には補間値をマクロから代入
以下マクロです。
お手数をおかけしますが、目を通して指摘していただけませんでしょうか。

Sub 補間_3次スプライン()

Dim i As Long
Dim h(1000) As Double
Dim dif1(1000) As Double
Dim dif2(1000) As Double
Dim data_count As Long
Dim lngDataEnd As Long
Dim dataX(1000) As Double
Dim dataY(1000) As Double
Dim x, y, yy0, yy1, yy2, yy3 As Double
lngDataEnd = ThisWorkbook.Sheets("3次スプライン").Range("A65536").End(xlUp).Row
data_count = lngDataEnd - 5

For i = 1 To data_count
dataX(i) = ThisWorkbook.Sheets("3次スプライン").Cells(i + 4, 1)
dataY(i) = ThisWorkbook.Sheets("3次スプライン").Cells(i + 4, 2)
Next i

h(0) = 0
dif2(0) = 0

On Error Resume Next
For i = 1 To data_count
h(i) = dataX(i) - dataX(i - 1) '//間隔を計算
dif1(i) = (dataY(i) - dataY(i - 1)) / h(i) '//一次微分を計算
Next i

For i = 1 To data_count
'二次微分を計算
dif2(i) = (dif1(i + 1) - dif1(i)) / (dataX(i + 1) - dataX(i - 1))
Next i

i = 1
For x = 0 To 720
If x < dataX(i) Then
yy0 = dif2(i - 1) / (6 * h(i)) * (dataX(i) - x) * (dataX(i) - x) * (dataX(i) - x) '第1項
yy1 = dif2(i) / (6 * h(i)) * (x - dataX(i - 1)) * (x - dataX(i - 1)) * (x - dataX(i - 1)) '第2項
yy2 = (dataY(i - 1) / h(i) - h(i) * dif2(i - 1) / 6) * (dataX(i) - x) '第3項
yy3 = (dataY(i) / h(i) - h(i) * dif2(i) / 6) * (x - dataX(i - 1)) '第4項
y = yy0 + yy1 + yy2 + yy3
ThisWorkbook.Sheets("3次スプライン").Cells(x + 4, 5) = y
Else: i = i + 1
End If
Next x
End Sub

エクセルにて、3次スプラインのマクロを組みました。
結果がところどころしか表示されません。
何度見直しても自分では間違いがわかりません。
どなたか、間違い箇所がわかりませんでしょうか。


A列には5行目から、0-720までの721個の少数値
0
1.005586592
2.011173184

B列には5行目から、721個の少数値
5.83
5.69
5.66

D列には5行目から、0-720まで、1ずつ増加の整数値
0
1
2

E列には補間値をマクロから代入
以下マクロです。
お手数をおかけしますが、目を通して指摘していただけま...続きを読む

Aベストアンサー

3次スプラインの計算式は確認していないので、それは置いておくとして、
結果がところどころしか表示されない原因は、最後のほうの
If x < dataX(i) Then
の部分ではないでしょうか。
この方法では、「If x < dataX(i) Then」を満たさなければ、そのxの行は表示されません。

次のようにしてはどうですか。

i = 1
For x = 0 To 720
Do Until x < dataX(i)
i = i + 1
If i > data_count Then Exit Do
Loop
If i > data_count Then Exit For
yy1 = ・・・・・
・・・・・・・
ThisWorkbook.Sheets("3次スプライン").Cells(x + 4, 5) = y
Next x


人気Q&Aランキング