ধ্রুবক মহাকর্ষীয় মাত্রায় নয় (যেমন, ভূগর্ভস্থ 10 000 কিলোমিটার থেকে নিখরচায় পড়ে যাওয়া) পতনের গতি নির্ধারণ করার জন্য আমি কীভাবে রুলে-কত্তা ৪ র্থ ক্রম দিয়ে এলারের পদ্ধতিটি প্রতিস্থাপন করতে পারি?
এখনও অবধি আমি ইউলার পদ্ধতিতে সাধারণ সংহতকরণ লিখেছি:
while()
{
v += getMagnitude(x) * dt;
x += v * dt;
time += dt;
}
এক্স ভেরিয়েবল মানে বর্তমান অবস্থান, v এর অর্থ বেগ, গেটম্যাগনিটিউড (এক্স) এক্স পজিশনে ত্বরণ প্রদান করে।
আমি আর কে 4 বাস্তবায়নের চেষ্টা করেছি:
while()
{
v += rk4(x, dt) * dt; // rk4() instead of getMagintude()
x += v * dt;
time += dt;
}
যেখানে rk4 () ফাংশন বডি:
inline double rk4(double tx, double tdt)
{
double k1 = getMagnitude(tx);
double k2 = getMagnitude(tx + 0.5 * tdt * k1);
double k3 = getMagnitude(tx + 0.5 * tdt * k2);
double k4 = getMagnitude(tx + tdt * k3);
return (k1 + 2*k2 + 2*k3 + k4)/6.0;
}
তবে কিছু ভুল, কারণ আমি কেবল একবার আরকে 4 (ত্বরণ) ব্যবহার করে সংহত করছি। আরকে 4 ব্যবহার করে বেগ একীভূত করা অর্থহীন নয় কারণ এটি ভি * ডিটি-র মতো।
আপনি কি আমাকে বলতে পারবেন রানেজ-কত্তা সংহতকরণ ব্যবহার করে দ্বিতীয় অর্ডার ডিফারেন্সিয়াল সমীকরণগুলি কীভাবে সমাধান করবেন? আমি কে 1, এল 1, কে 2, এল 2 ... এল 4 সহগগুলি গণনা করে আর কে 4 বাস্তবায়ন করব? আমি এটা কিভাবে করবো?