সমস্যা হল যে যখন আমি J2 জটিল মাধ্যাকর্ষণ নিম্নলিখিত সমীকরণ সমাধান করার চেষ্টা করি:
function xdot = Gravity( ~ , x )
Re = 6378.137;
J2 = 1.08262668e-3;
mu = 398600.4418;
r = norm(x(1:3));
% xdot = [x(4:6)
% -mu/r^3*x(1:3)];
xdot = [ x(4);
x(5);
x(6);
-mu*x(1)/r^3*(1+1.5*J2*(Re/r)^2*(1-5*(x(3)/r)^2));
-mu*x(2)/r^3*(1+1.5*J2*(Re/r)^2*(1-5*(x(3)/r)^2));
-mu*x(3)/r^3*(1+1.5*J2*(Re/r)^2*(3-5*(x(3)/r)^2))];
end
কোনও সমাধানকারী (ode45, ode113, ইত্যাদি) ব্যবহার করে, প্রচারিত অবস্থান এবং বেগ একটি বিশ্বস্ত বাণিজ্যিক সফ্টওয়্যার (STK) তুলনায় উল্লেখযোগ্য ত্রুটি রয়েছে এবং ত্রুটিটি ক্রমবর্ধমান থাকে। আমি সহনশীলতা, প্রাথমিক পদক্ষেপ, এবং সর্বোচ্চ পদক্ষেপ বিভিন্ন সেটিংস চেষ্টা করেছি, কিন্তু সমস্যা অব্যাহত!
এটি বিস্ময়কর হতে পারে, কিন্তু যখন আমি নীচের হিসাবে একটি নির্দিষ্ট পদক্ষেপ 4 র্থ আদেশ রানge-কুট্টা কোড লিখেছিলাম, তখন এটি আরও ভাল হয় নি।
function [t,x] = RK4( fn,tspan,x0 )
% An implementation of fixed step 4th order Runge-Kutta method
f = str2func(fn);
t = tspan;
h = tspan(2)-tspan(1);
x(:,1) = x0;
for i = 1:size(t,2)-1
k1 = f(t(i),x(:,i));
k2 = f(t(i)+h/2,x(:,i)+k1*h/2);
k3 = f(t(i)+h/2,x(:,i)+k2*h/2);
k4 = f(t(i)+h,x(:,i)+k3*h);
x(:,i+1) = x(:,i) + (k1 + 2*k2 + 2*k3 + k4)*h/6;
end
end
কোন সমস্যা কি সমস্যা হতে পারে? আমি একটি মহান বিস্ময় উল্লেখ করতে হবে, আমি RK4 ব্যবহার করে একটি ফলাফল পেয়েছিলাম, কিন্তু একই অবস্থা সঙ্গে একই কোড পরে misbehaved !!