No.1ベストアンサー
- 回答日時:
実数の正方行列の積が計算できているということは、その、S, T, U の要素を表す配列がありますね?
おそらく、double の配列になっていると思います。
その配列の型を、struct complex にします。
そして、正方行列の積を計算するということは、配列 S の要素と T の要素の積を、U の要素に足し込むという計算をしているはずです。
その中の、例えば、
U += S * T;
を一度、
U = U + S * T;
と置き直します。(実際には配列の名前ではなくて、個々の要素のはず)
で、複素数の、和と積がそれぞれ関数として準備されているのであれば、それぞれ、
複素数の a + b が
struct complex add(strcunt complex a, struct complex b);
a * b が
struct complex mul(strcunt complex a, struct complex b);
などという関数になっているはずです。
そこで、上で書いた、 + と * を add と mul に置き換えて
U = add(U, mul(S, T));
と置き換えるだけです。
入出力は、適切な形で処理してください。
No.2
- 回答日時:
私なら、自分でこういう計算のための関数を作らないで済ませる方法を探します。
具体的には、
(a) C99準拠のCコンパイラを使用しているなら自分で複素計算の関数を作らずに _Complex 型を使う。
(b) C++を使って問題ないのであればC++の標準ライブラリにある complexクラスを使う。
(c) C++でOKなら、さらにBoostライブラリをインストールして、行列演算までライブラリに任せてしまう。
(d) Matlabを使える環境にあるならMatlabをC言語から呼び出して使う。
(e) Matlabクローンでも良ければ Scilab をC言語から呼び出して使う。
複素数演算も行列演算も、自分で作ると時間がかかるし、処理速度も遅く、バグも作りこむことになります。本来の目的に注力するためにも、先人の知恵を使わせてもらうことをおすすめします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# C++で割り算の結果を昇順に出力するプログラムを作りたいのですが、例えば(double)100000 3 2022/07/15 17:46
- その他(プログラミング・Web制作) パイソンのプログラミングについての質問です 2 2023/05/22 12:39
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- C言語・C++・C# c言語 コマンドライン引数 4 2023/02/09 18:47
- C言語・C++・C# C言語で移動平均のプログラムを作りたいのですが、数値をファイルから取ってきて計算をするプログラムはど 1 2022/09/29 01:21
- C言語・C++・C# プログラミングを教えて欲しいです。 配列aは、int a[9]={7,6,12,8,3,5,10,9 4 2022/12/19 23:27
- その他(プログラミング・Web制作) 3Dモデルにおける法線の計算について(Python,OpenGL) 1 2023/04/25 23:46
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
二次元配列のインデックスについて
-
Strawberry Perl for Windows ...
-
Perlで<select multiple>の複数...
-
エクセルVBAでTransposeの不思議
-
Excel VBA ユーザーフォームの...
-
一致する要素が格納されている...
-
2次元配列の扱い
-
文字の整列(printf)
-
perl 配列名変数指定するには
-
perlで2次元配列をサブルーチ...
-
perlで配列の要素が空なのを知...
-
リストボックスに縦スクロール...
-
perl このテキストファイルを簡...
-
プログラミングについて。 1つ...
-
文字列を変数名として扱う方法
-
どなたかこのプログラミングを...
-
ネットワークループとルーティ...
-
perlでファイルの拡張子を除い...
-
VBAでの一時停止と再開の方法
-
画面を強制的に再描画させる方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
二次元配列のインデックスについて
-
リストボックスに縦スクロール...
-
Excel VBA ユーザーフォームの...
-
マクロ Publicでの配列定義
-
エクセルVBAでTransposeの不思議
-
二次元配列における要素数のは...
-
Strawberry Perl for Windows ...
-
perlで2次元配列をサブルーチ...
-
クラスに配列を渡す方法
-
Dim flag(4) as boolean で配列...
-
文字の整列(printf)
-
perlで配列の要素が空なのを知...
-
jcode->jfold で禁則処理
-
VB6で配列の最大値を簡単に求め...
-
perl 配列の要素数について
-
ファイル名に日付・時刻を付与...
-
チェックボックスのperlでの値...
-
組み合わせについての質問です...
-
配列を初期化する時ってどうす...
おすすめ情報