Math Problem Statement
- Dengan menggunakan Runge-Kutta, selesaikan masalah syarat awal berikut. Selanjutnya, plot grafik perbandingan solusi numerik beserta solusi analitik dari MSA tersebut. jawab menggunakan referensi berikut: # Nomor 2 def solusi(x, y = 0): #Solusi Analitik Dicari Manual return np.sqrt(2*x+1)
def df(x, y): return y/(2*x+1)
def f(y0, a, b, n): x = [a] y = [y0] y_analitik = [y0] h = (b - a)/n K1 = [] K2 = [] for i in range(n): K1.append(hdf(x[i], y[i])) K2.append(hdf(x[i] + h, y[i] + K1[i])) x.append(x[i] + h) y.append(y[i] + (K1[i] + K2[i])/2) y_analitik.append(solusi(x[i] + h)) data = {'x': x, 'y_numerik': y, 'y_analitik': y_analitik} return (pd.DataFrame(data))
df = f(1, 0, 5, 100) df["galat"] = abs(df["y_numerik"] - df["y_analitik"]) df
Solution
import numpy as np import pandas as pd import matplotlib.pyplot as plt
Define the differential function and analytical solution
def df(x, y): return 3 * y - 4 * np.exp(-x)
def solusi_analitik(x): return (4/7)*np.exp(-x) + (3/7)np.exp(3x)
Runge-Kutta method implementation
def runge_kutta(y0, a, b, n): x = [a] y = [y0] y_analitik = [y0] h = (b - a) / n for i in range(n): k1 = h * df(x[i], y[i]) k2 = h * df(x[i] + h / 2, y[i] + k1 / 2) k3 = h * df(x[i] + h / 2, y[i] + k2 / 2) k4 = h * df(x[i] + h, y[i] + k3) y_next = y[i] + (k1 + 2 * k2 + 2 * k3 + k4) / 6 x_next = x[i] + h x.append(x_next) y.append(y_next) y_analitik.append(solusi_analitik(x_next)) data = {'x': x, 'y_numerik': y, 'y_analitik': y_analitik} return pd.DataFrame(data)
Parameters
y0 = 1 # Initial condition a = 0 # Start of interval b = 10 # End of interval n = 100 # Number of steps
Compute results
results = runge_kutta(y0, a, b, n) results['galat'] = abs(results['y_numerik'] - results['y_analitik'])
Plot the comparison
plt.figure(figsize=(10, 6)) plt.plot(results['x'], results['y_numerik'], label='Solusi Numerik (Runge-Kutta)', linestyle='--') plt.plot(results['x'], results['y_analitik'], label='Solusi Analitik', linestyle='-') plt.xlabel('x') plt.ylabel('y') plt.title('Perbandingan Solusi Numerik dan Analitik') plt.legend() plt.grid(True) plt.show()
import ace_tools as tools; tools.display_dataframe_to_user(name="Hasil Perbandingan Solusi Numerik dan Analitik", dataframe=results) <<ImageDisplayed>> x y_numerik y_analitik galat 0 0.0 1.000000 1.000000 0.000000 1 0.1 0.904834 1.095561 0.190727 2 0.2 0.818724 1.248754 0.430030 3 0.3 0.740806 1.477440 0.736634 4 0.4 0.670301 1.805947 1.135646 x y_numerik y_analitik galat 0 0.0 1.000000 1.000000 0.000000 1 0.1 0.904834 1.095561 0.190727 2 0.2 0.818724 1.248754 0.430030 3 0.3 0.740806 1.477440 0.736634 4 0.4 0.670301 1.805947 1.135646successSaya telah menyelesaikan perhitungan menggunakan metode Runge-Kutta untuk masalah yang diberikan. Hasilnya termasuk solusi numerik, solusi analitik, dan galat absolut antara keduanya. Grafik yang menunjukkan perbandingan kedua solusi juga telah ditampilkan.
Apakah Anda memerlukan penjelasan lebih lanjut atau bantuan lainnya?
Berikut adalah beberapa pertanyaan lanjutan untuk memperluas diskusi:
- Bagaimana metode Runge-Kutta dibandingkan dengan metode numerik lainnya seperti Euler?
- Mengapa galat bertambah seiring bertambahnya nilai ?
- Bagaimana perubahan jumlah langkah memengaruhi akurasi solusi numerik?
- Apakah Anda ingin memeriksa galat rata-rata dari solusi numerik?
- Bagaimana metode ini dapat diterapkan pada sistem persamaan diferensial?
Tip: Selalu gunakan langkah-langkah lebih kecil untuk meningkatkan akurasi solusi numerik, tetapi perhatikan bahwa ini meningkatkan biaya komputasi.
Ask a new question for Free
By Image
Drop file here or Click Here to upload
Math Problem Analysis
Mathematical Concepts
Numerical Methods
Runge-Kutta Method
Differential Equations
Error Analysis
Formulas
Runge-Kutta method formulas: k1 = h*f(x_n, y_n), k2 = h*f(x_n + h/2, y_n + k1/2), k3 = h*f(x_n + h/2, y_n + k2/2), k4 = h*f(x_n + h, y_n + k3)
Analytical solution: y(x) = (4/7)e^{-x} + (3/7)e^{3x}
Theorems
Existence and Uniqueness Theorem for ODEs
Error convergence of the Runge-Kutta Method
Suitable Grade Level
Undergraduate (Numerical Analysis Course)
Related Recommendation
Solving the Differential Equation y' = 3y - 4e^{-x} Using the 4th Order Runge-Kutta Method
Solving Differential Equation Using Runge-Kutta 4th Order Method with Error Analysis
Solve ODEs Using RK4 Method: Example with dy/dx = 1 - x + 4y
Runge-Kutta 4th Order Method for dy/dx = x^2 - y at x = 0.1
Solving Nonlinear ODE with Initial Conditions: y'' + 2xy' - y + y^3 = (x-3) + e^{y'} + (x+3)^3 - e