Implement the program for problem 2
This commit is contained in:
parent
c256d9b1da
commit
c5c64da196
@ -6,17 +6,36 @@
|
||||
#include <fstream>
|
||||
#include <iomanip>
|
||||
|
||||
#define RANGE 1000
|
||||
#define FILENAME "analytical_solution.txt"
|
||||
|
||||
double u(double x);
|
||||
void generate_range(std::vector<double> &vec, double start, double stop, int n);
|
||||
void write_analytical_solution(std::string filename, int n);
|
||||
|
||||
int main() {
|
||||
int n = 1000;
|
||||
write_analytical_solution(FILENAME, RANGE);
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
double u(double x) {
|
||||
return 1 - (1 - exp(-10))*x - exp(-10*x);
|
||||
};
|
||||
|
||||
void generate_range(std::vector<double> &vec, double start, double stop, int n) {
|
||||
double step = (stop - start) / n;
|
||||
|
||||
for (int i = 0; i <= vec.size(); i++) {
|
||||
vec[i] = i * step;
|
||||
}
|
||||
}
|
||||
|
||||
void write_analytical_solution(std::string filename, int n) {
|
||||
std::vector<double> x(n), y(n);
|
||||
generate_range(x, 0.0, 1.0, n);
|
||||
|
||||
// Set up output file and strem
|
||||
std::string filename = "datapoints.txt";
|
||||
std::ofstream outfile;
|
||||
outfile.open(filename);
|
||||
|
||||
@ -32,21 +51,5 @@ int main() {
|
||||
<< std::endl;
|
||||
}
|
||||
outfile.close();
|
||||
}
|
||||
|
||||
return 0;
|
||||
};
|
||||
|
||||
double u(double x) {
|
||||
double result;
|
||||
|
||||
result = 1 - (1 - exp(-10))*x - exp(-10*x);
|
||||
return result;
|
||||
};
|
||||
|
||||
void generate_range(std::vector<double> &vec, double start, double stop, int n) {
|
||||
double step = (stop - start) / n;
|
||||
|
||||
for (int i = 0; i <= vec.size(); i++) {
|
||||
vec[i] = i * step;
|
||||
}
|
||||
}
|
||||
@ -1,17 +1,19 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
x = []
|
||||
y = []
|
||||
v = []
|
||||
with open('testdata.txt') as f:
|
||||
for line in f:
|
||||
a, b, c = line.strip().split()
|
||||
x.append(float(a))
|
||||
# y.append(float(b))
|
||||
v.append(float(c))
|
||||
def main():
|
||||
FILENAME = "analytical_solution.pdf"
|
||||
x = []
|
||||
v = []
|
||||
|
||||
fig, ax = plt.subplots()
|
||||
ax.plot(x, v)
|
||||
plt.show()
|
||||
# plt.savefig("main.png")
|
||||
with open('analytical_solution.txt') as f:
|
||||
for line in f:
|
||||
a, b = line.strip().split()
|
||||
x.append(float(a))
|
||||
v.append(float(b))
|
||||
|
||||
plt.plot(x, v)
|
||||
plt.savefig(FILENAME)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Loading…
Reference in New Issue
Block a user