C言語にするには

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
コータ

C言語にするには

#1

投稿記事 by コータ » 10年前

この計算式をどうC言語にしたらいいかわかりません。
float x[];
float U[][];
float σ;
float y;

y(x)=Σ(上n-1 下a=1)Ca exp(-||x-Ua||^2/2*σ^2) /Σ(上n-1 下b=1) exp(-||x-Ub||^2/2*σ^2)

アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: C言語にするには

#2

投稿記事 by みけCAT » 10年前

こんな感じでしょうか? ※テストしていません

コード:

typedef struct {
	int size;
	float *a;
} vector;

float Ca;
int n;
vector **U;

float calcNormOfDiffVector(const vector* a, const vector* b) {
	/* 省略 */
}

float y(const vector *x) {
	float bunsi = 0, bunbo = 0;
	int a, b;
	for (a = 1; a <= n-1; a++) {
		float norm = calcNormOfDiffVector(x, U[a - 1]);
		bunsi += Ca * exp(-norm*norm/2.0*sigma*sigma);
	}
	for (b = 1; b <= n-1; b++) {
		float norm = calcNormOfDiffVector(x, U[b - 1]);
		bunbo += exp(-norm*norm/2.0*sigma*sigma);
	}
	return binsi / bunbo;
}
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る