したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

さらみ1

77名前とか無いよ、うん:2008/07/01(火) 22:16:57 ID:5fh3Nsws0
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define MAX 100

void linfit(double[], double[], int);
double sum(double[], int);

int main(int argc, char *argv[])
{
FILE *fp;
double tmp;
double electric_conductivity[MAX];
double thermal_conductivity[MAX];
char *filename;
int i, n=0;

for(i = 0; i < argc; i++){
filename = argv[i];
}

if(NULL == (fp = fopen(filename, "r"))){
printf("file open err\n");
exit(1);
}

while(fscanf(fp, "%*d%*s%*s%lf%lf%lf", &tmp, &electric_conductivity[n], &thermal_conductivity[n]) != EOF){
n++;
}

linfit(electric_conductivity, thermal_conductivity, n);

fclose(fp);
return 0;
}

void linfit(double x[], double y[], int datanum)
{
double a, b;
double *xy, *x2;
int i;

xy = (double *) malloc(datanum * sizeof(double));
x2 = (double *) malloc(datanum * sizeof(double));

for(i = 0; i < datanum; i++){
xy[i] = x[i] * y[i];
x2[i] = x[i] * x[i];
}

a = ( datanum * sum(xy, datanum) - sum(x, datanum) * sum(y, datanum) ) / ( datanum * sum(x2, datanum) - pow(sum(x, datanum), 2) );
b = ( sum(x2, datanum) * sum(y, datanum) - sum(xy, datanum) * sum(x, datanum) ) / ( datanum * sum(x2, datanum) - pow(sum(x, datanum), 2) );

free(xy);
free(x2);

printf("a = %e\nb = %e\n", a, b);
return;
}

double sum(double data[], int datanum)
{
int i;
double sum = 0.0;
for(i = 0; i < datanum; i++){
sum += data[i];
}
return sum;
}

ただ、あんまり気に食わない


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板