こんにちは。プログラミングでわからないことがあったので質問します。文章がわかりにくかったらすみません・・・
3行3列の行列式をガウスの消去法を使ってまず上三角行列を作り、その上三角行列を上三角行列の解法で解くというプログラムを作りたいのですが、2つの解法を使うときはプログラムはどうやって作ればよいでしょうか?
例えば、上三角行列が与えられてそれを上三角行列の解法を使って解いて結果を表示するといったプログラムだけ作るということならできるのですが、2つの解法を同時に同じプログラムで作るということが出来ません。教えていただきたいです。お願いします。
No.1
- 回答日時:
やりたいことがはっきり伝わっていないかもしれませんが、
LU分解による解法{Ax=(LU)x=L(Ux)=b}をみればよいと思いました。
次の文献に説明およびプログラムが載っています。
手持ちは原本(古いので言語はCです)ですが、邦訳本が出版されています。
学生さんならば、図書館にはあると思いますので眺めてください。
NUMERICAL RECIPES In C
by
Wiliam H. Pess Brian P.Flannery Saul A.Teukolsky Wiliam T. Vetterling の共著です。
この回答への補足
返信ありがとうございます。
図書館で探したのですが、見つかりませんでした。
他の本も見てみたんですが、プログラム自体が難しく書いてあって理解できませんでした。
なので、自分が作った上三角行列を解くプログラムを細かいところは省略して書くと(3行3列の場合)、
#include <stdio.h>
int main(void)
{
int i,k;
double d;
double a[3][3]= ←数値代入
double b[3]=
double x[3];
for(i=3-1;i>=0;i++) ←上三角行列の解法
{
for(・・・
}
for(i=0;i<=3-1;i++)
printf("x[%d]=%lf\n",i,x[i];
return 0;}
という感じで作りました。でもこれは上三角行列が与えられているときに使うので、上三角行列でないときにはまずガウスの消去法を使って上三角行列にしたいのです。
自分はプログラムが苦手なので分からないことが多いのですが、
main文の中にガウスの消去法と上三角行列の解法を一緒に入れて実行することはできるのでしょうか?
それともmain文とは別に関数を作らないとできないですか?
No.2ベストアンサー
- 回答日時:
二つの解法というのは、ガウスの消去法と上三角行列法のことですね。
質問のなかで言われているように、ガウスの消去法は上三角行列を作成して、(単純に言えば)後置代入で一番下の行から順番に解を得るものでしたよね。
ガウス消去法のなかで上三角法を使いたいならば、上三角解法の関数(メソッド)を先に作成し、ガウス消去法関数のなかで上三角法関数を呼ぶ。
上三角解法(引数){...}
ガウス消去解法(引数)
{
上三角解法(引数);
}
int main
{
ガウス消去解法(引数);
}
うーん、質問を理解してないのかも。
この回答への補足
返信ありがとうございます。
上のようになるようにプログラムを作ろうとしたのですが、
ガウス消去解法(引数)
{
上三角解法(引数)
}
のところの作り方がよくわかりませんでした。
ガウス消去解法の関数はfor文などを用いて作ったのですが、それはどこに入れれば良いですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 線形代数の正規直行系についての問題がわからないです。 1 2022/07/16 11:20
- 数学 数独の解法についてお聞きします 4 2023/05/25 17:15
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- その他(プログラミング・Web制作) パイソンのプログラミングについての質問です 2 2023/05/22 12:39
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- 数学 回答の意味について 3 2023/07/06 14:14
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba 実数および実数タイプの変...
-
VBAにてメール作成した際、一部...
-
あるプログラムのコマンドライ...
-
パックマンプログラム
-
Notepad++の関数リスト表示でC...
-
VBAが止まります。
-
「Outlookが他のプログラムによ...
-
自動クエリとはどういうもので...
-
これはDos攻撃になりますか?
-
Excelで4096点以上のFFTの方法
-
VBでのPublic変数につ...
-
Excelに埋め込んだVBAのプログ...
-
VBAでユーザーフォームが自動的...
-
読み込み中にアクセス違反が発...
-
寿命
-
セルフイメージを高める21日...
-
binファイルってiphone専用です...
-
プログラムのループの周期を設...
-
RSAのCプログラム
-
自作のプログラムがウイルスと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あるプログラムのコマンドライ...
-
Excelで4096点以上のFFTの方法
-
「Outlookが他のプログラムによ...
-
Excelに埋め込んだVBAのプログ...
-
VBAにてメール作成した際、一部...
-
Notepad++の関数リスト表示でC...
-
自動クエリとはどういうもので...
-
読み込み中にアクセス違反が発...
-
PICマイコンのコピー(クローン...
-
XnViewにwebpを「いつも開く」...
-
未使用の変数を一括検索する方法
-
VBAでユーザーフォームが自動的...
-
UWSCで指定のフォルダを開きたい。
-
パックマンプログラム
-
このプログラミング誰か教えて...
-
モジュール、アプリケーション...
-
Vba UserFormを前面に出す方法...
-
特定のwebサイトのタイトルや記...
-
ドロップダウンリストの文字を...
-
テキストボックスのエンターキ...
おすすめ情報