#include <stdio.h>
#define N 3 //the dimension of equation
void vec_diff(float a[N], float b[N]){
/* Calcurate the difference of two vectors. Be caution that b[N] changes.*/
for (int i = 0; i < N; i++){
b[i] -= a[i];
}
}
int main(){
float m[N][N] = {{5,-1,-1}, {2,1,-3},{1,1,1}}; // The matrix
float b[N] = {0,-5,6};
printf("The coefficient matrix is : \n");
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
printf("%1.f ", m[i][j]);
if (j == N-1){
printf("\n");
}
}
}
printf("\nUse Gauss method to solve equations : \n");
for (int i = 0; i < N; i++){
for (int j = i+1; j < N; j++){
float coef = m[j][i] / m[i][i];
float del[N];
for (int k = 0; k < N; k++){
del[k] = m[i][k] * coef;
}
vec_diff(del, m[j]);
b[j] -= b[i] * coef;
}
}
for (int i = N -1; i >= 0; i--){
float x = 1. / m[i][i];
m[i][i] *= x;
b[i] *= x;
for (int j = 0; j < i; j++){
b[j] -= b[i]*m[j][i];
m[j][i] = 0;
}
}
for (int i = 0; i < N; i++){
for (int j = 0; j < N; j++){
printf("%1.f ", m[i][j]);
if (j == N - 1){
printf("\n");
}
}
}
for (int i = 0; i < N; i++){
printf("%f ", b[i]);
}
return 0;
}
以上のプログラムの計算部分は行列により連立方程式の係数を求めているのですが、計算式をどのように作りプログラムにしたのか詳しく過程が知りたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- その他(プログラミング・Web制作) 十進BASICでの再帰についての質問です。 2 2022/11/18 09:17
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
比較回数と交換回数表示について
-
nCmの関数
-
複数桁10進数の*桁目だけを抽出...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 配列と関数の練習問題
-
c言語
-
std::set<int> で、ある値が何...
-
卒業研究でよく分からないとこ...
-
C言語 エラーの原因がわからな...
-
DLLをGetProcAddress()で実行で...
-
【C++】関数ポインタの使い方
-
read関数をノンブロッキングで...
-
C言語における対称行列の作り方...
-
構造体の勉強中です 合計点の高...
-
C言語です。
-
C言語での引数の省略方法
-
困ってます…nCrを求めるC言語...
-
C++でvectorにテキストファイル...
-
プログラミング
-
素数 再帰関数
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語 配列と関数の練習問題
-
複数桁10進数の*桁目だけを抽出...
-
(int *)の意味
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
卒業研究でよく分からないとこ...
-
【C++】関数ポインタの使い方
-
c言語
-
足して100になるような乱数のア...
-
C言語初心者です、、、お助けく...
-
数字列を3桁ごとにカンマで区切...
-
C言語 エラーの原因がわからな...
-
実数の整数部,小数部の取得
-
課題でつまってます・・・
-
商と剰余を同時に求める(C言語)
-
C言語の配列をC++のvectorに高...
-
std::set<int> で、ある値が何...
おすすめ情報