Math Problem Statement

  1. Dengan menggunakan Runge-Kutta, selesaikan masalah syarat awal berikut. y=3y4ex,y(0)=1, 0x10,n=100y' = 3y - 4e^{-x},y(0) = 1, \ 0 \leq x \leq 10, n = 100 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:

  1. Bagaimana metode Runge-Kutta dibandingkan dengan metode numerik lainnya seperti Euler?
  2. Mengapa galat bertambah seiring bertambahnya nilai xx?
  3. Bagaimana perubahan jumlah langkah nn memengaruhi akurasi solusi numerik?
  4. Apakah Anda ingin memeriksa galat rata-rata dari solusi numerik?
  5. Bagaimana metode ini dapat diterapkan pada sistem persamaan diferensial?

Tip: Selalu gunakan langkah-langkah lebih kecil hh 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)