Make small changes

This commit is contained in:
Cory Balaton 2023-09-12 22:48:28 +02:00
parent b88a9027bc
commit 7d39248a15
No known key found for this signature in database
GPG Key ID: 3E5FCEBFD80F432B
16 changed files with 36 additions and 30 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -7,7 +7,7 @@
#include <iomanip>
#define RANGE 1000
#define FILENAME "analytical_solution.txt"
#define FILENAME "output/analytical_solution.txt"
double u(double x);
void generate_range(std::vector<double> &vec, double start, double stop, int n);

View File

@ -4,7 +4,9 @@
#include <armadillo>
#include <cmath>
#define PRECISION 20
#define PRECISION 8
#define N_STEPS_EXP 7
double f(double x);

View File

@ -33,7 +33,7 @@ void general_algorithm_main()
int steps;
double step_size;
for (int i = 0; i < 6; i++) {
for (int i = 0; i < N_STEPS_EXP; i++) {
steps = std::pow(10, i+1);
step_size = 1./(double) steps;
@ -58,7 +58,7 @@ void general_algorithm_error()
int steps;
double step_size, abs_err, rel_err, u_i, v_i;
for (int i=0; i < 7; i++) {
for (int i=0; i < N_STEPS_EXP; i++) {
steps = std::pow(10, i+1);
step_size = 1./(double) steps;

View File

@ -20,7 +20,7 @@ void timing() {
ofile.open("output/timing.txt");
// Timing
for (int i=1; i <= 6; i++) {
for (int i=1; i < N_STEPS_EXP; i++) {
n_steps = std::pow(10, i);
clock_t g_1, g_2, s_1, s_2;
double g_res = 0, s_res = 0;

View File

@ -6,7 +6,7 @@ def main():
x = []
v = []
with open('analytical_solution.txt') as f:
with open('output/analytical_solution.txt') as f:
for line in f:
a, b = line.strip().split()
x.append(float(a))

View File

@ -4,8 +4,7 @@ import numpy as np
analytical_func = lambda x: 1 - (1 - np.exp(-10))*x - np.exp(-10*x)
def main():
fig, ax = plt.subplots()
for i in range(6):
for i in range(7):
x = []
y = []
x.append(0.)
@ -20,12 +19,12 @@ def main():
x.append(1.)
y.append(0.)
ax.plot(x, y, label=f"n$_{{steps}} = 10^{i+1}$")
plt.plot(x, y, label=f"n$_{{steps}} = 10^{i+1}$")
x = np.linspace(0, 1, 1001)
ax.plot(x, analytical_func(x), label=f"u$_{{exact}}$")
ax.legend()
fig.savefig("../latex/images/problem7.pdf")
plt.plot(x, analytical_func(x), label=f"u$_{{exact}}$")
plt.legend()
plt.savefig("../latex/images/problem7.pdf")
if __name__ == "__main__":
main()

View File

@ -4,10 +4,7 @@ import matplotlib.pyplot as plt
# plt.rc('font', family='serif')
def main():
fig_a, ax_a = plt.subplots()
fig_b, ax_b = plt.subplots()
fig_c, ax_c = plt.subplots()
for i in range(6):
for i in range(7):
x = []
abs_err = []
rel_err = []
@ -19,16 +16,25 @@ def main():
abs_err.append(float(abs_err_i))
rel_err.append(float(rel_err_i))
ax_a.plot(x, abs_err, label=f"n$_{{steps}} = 10^{i+1}$")
ax_b.plot(x, rel_err, label=f"n$_{{steps}} = 10^{i+1}$")
plt.figure(1)
plt.plot(x, abs_err, label=f"n$_{{steps}} = 10^{i+1}$")
plt.figure(2)
plt.plot(x, rel_err, label=f"n$_{{steps}} = 10^{i+1}$")
ax_c.plot(i+1, max(rel_err), marker="o", markersize=10)
plt.figure(3)
plt.plot(i+1, max(rel_err), marker="o", markersize=10)
ax_a.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
ax_b.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
fig_a.savefig("../latex/images/problem8_a.pdf", bbox_inches="tight")
fig_b.savefig("../latex/images/problem8_b.pdf", bbox_inches="tight")
fig_c.savefig("../latex/images/problem8_c.pdf", bbox_inches="tight")
plt.figure(1)
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.figure(2)
plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)
plt.figure(1)
plt.savefig("../latex/images/problem8_a.pdf", bbox_inches="tight")
plt.figure(2)
plt.savefig("../latex/images/problem8_b.pdf", bbox_inches="tight")
plt.figure(3)
plt.savefig("../latex/images/problem8_c.pdf", bbox_inches="tight")
if __name__ == "__main__":
main()

View File

@ -33,7 +33,7 @@ void special_algorithm_main()
int steps;
double sub_sig, main_sig, sup_sig, step_size;
for (int i = 0; i < 6; i++) {
for (int i = 0; i < N_STEPS_EXP; i++) {
steps = std::pow(10, i+1);
step_size = 1./(double) steps;
build_g_vec(steps, g_vec);

View File

@ -1,5 +1,4 @@
import matplotlib.pyplot as plt
import numpy as np
def main():
fig, ax = plt.subplots()
@ -14,11 +13,11 @@ def main():
gen_alg.append(float(gen_i))
spec_alg.append(float(spec_i))
ax.plot(x, gen_alg, label=f"General algorithm")
ax.plot(x, spec_alg, label=f"Special algorithm")
plt.plot(x, gen_alg, label=f"General algorithm")
plt.plot(x, spec_alg, label=f"Special algorithm")
ax.legend()
fig.savefig("../latex/images/problem10.pdf")
plt.legend()
plt.savefig("../latex/images/problem10.pdf")
if __name__ == "__main__":
main()