gpt4 book ai didi

c - 从文本文件中读取并将这些值放入 7 x 7 矩阵中

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:05 26 4
gpt4 key购买 nike

大家好,我有点不知道该怎么做。我知道我想要的伪代码是什么,但实际编写起来有些困难。

我有 2 个数组,每个数组包含 7 个数字。在第一个数组中,数字是

 Angstroms      [0.4000, 0.5000, 0.6000, 0.7000, 0.8000, 0.9000, 1.0000]
Energy [-0.9767, -1.1000, -1.1535, -1.1710, -1.1704, -1.1604, -1.145]

Input File
0.400000000000000 -0.976798125297645
0.500000000000000 -1.10086977056789
0.600000000000000 -1.153517976992553
0.700000000000000 -1.171014611491842
0.800000000000000 -1.170406254407191
0.900000000000000 -1.160412786280990
1.000000000000000 -1.145758813825982

现在我想用六阶多项式拟合它们,这样我就可以用这些数据做更多的事情,这就是我遇到的问题。我在这个阶段的输出是这样的

 A = Angstroms
[1 1 1 1 1 1 1
-0.4 -0.5 -0.6 -0.7 -0.8 -0.9 -1.0
A^2 A^2 A^2 A^2 A^2 A^2 A^2 So the above value squared
A^3 A^3 A^3 A^3 A^3 A^3 A^3 and so on
A^4 A^4 A^4 A^4 A^4 A^4 A^4
A^5 A^5 A^5 A^5 A^5 A^5 A^5
A^6 A^6 A^6 A^6 A^6 A^6 A^6]

我如何提取列表,然后将其添加到此矩阵,然后以一种简短高效的方式将每一行都像 a^2、a^3 等等。

我有一个想法,就是输入每个值,例如

A(0,0) = 1 ; A(0,1) = -0.4 等等,但这会非常乏味。

到目前为止我的代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define ELEMENTS 6
#define n 7

// First read the data from the file
// Fit the data to a sixth order polynomial
// Fit the data to sixth order polynomial in terms of exp(-r)
// Plot the fitted functions and the data points to a set between 0.2 and 5 A

void * file_input ();
void * polynomial ();
int main () {

file_input();
return 0;

}

void * file_input () {

static double Angstroms[ELEMENTS];
static double Energy[ELEMENTS];

float a, b;
int i;

FILE * in_file = fopen("H2Data.txt", "r");
for (i = 0; i <= ELEMENTS; i++) {
fscanf(in_file,"%f %f\n", &a, &b);
Angstroms[i] = a;
Energy[i] = b;
// printf ("Angstroms[%f], Energy[%f]\n", Angstroms[i], Energy[i]);
}
return in_file, Angstroms, Energy;
fclose(in_file);

}

// Sextic equation ax^6 + bx^5 + cx^4 + dx^3 + ex^2 +fx + g = 0

void * polynomial(Angstroms, Energy) {

int i, j;
double * ax = malloc (n * n * sizeof(double)); // 7 by 7 matrix
double * b = malloc (n * sizeof(double)); // 0 by 1 matrix for the b values
}

最佳答案

你可以试试下面的代码

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define ELEMENTS 7
#define N 7

double Angstroms[ELEMENTS];
double Energy[ELEMENTS];
double ax[ELEMENTS][N];

void file_input();
void polynomial();

int main () {
file_input();
polynomial();
return 0;
}

void file_input () {
float a, b;
int i;
FILE * in_file = fopen("H2Data.txt", "r");
for (i = 0; i < ELEMENTS; i++) {
fscanf(in_file,"%f %f\n", &a, &b);
Angstroms[i] = a;
Energy[i] = b;
}
fclose(in_file);
}

void polynomial() {
int i,j;
for( i=0; i < ELEMENTS; i++)
{
ax[i][0] = 1;
ax[i][1] = Angstroms[i];
}
for( i=2; i < N; i++)
for (j=0; j < ELEMENTS; j++)
{
ax[j][i] = ax[j][i-1]*ax[i][1];
}
}

关于c - 从文本文件中读取并将这些值放入 7 x 7 矩阵中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29788250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com