Matlab模拟三个天体运动
生活随笔
收集整理的這篇文章主要介紹了
Matlab模拟三个天体运动
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 簡介
這是一個三體運動模擬軟件,描述自由空間中存在的兩至三顆可視作質點的星體在相互之間的萬有引力作用下所做的運動。基于牛頓經典力學原理,采用迭代法進行數值模擬,實時顯示星體的位置以及軌跡。
2 部分代碼
%%%function varargout = Threebody(varargin)% THREEBODY MATLAB code for Threebody.fig% THREEBODY, by itself, creates a new THREEBODY or raises the existing% singleton*.%% H = THREEBODY returns the handle to a new THREEBODY or the handle to% the existing singleton*.%% THREEBODY('CALLBACK',hObject,eventData,handles,...) calls the local% function named CALLBACK in THREEBODY.M with the given input arguments.%% THREEBODY('Property','Value',...) creates a new THREEBODY or raises the? %將選中的運動類型的數據傳遞到三行顯示欄中去 %將代碼中預的設數據寫入第一行顯示欄(第一顆星) set(handles.Edit_m1,'String',num2str(star(1).M*10^(-19))); set(handles.Edit_x1,'String',num2str(star(1).X)); set(handles.Edit_y1,'String',num2str(star(1).Y)); set(handles.Edit_z1,'String',num2str(star(1).Z)); set(handles.Edit_u1,'String',num2str(star(1).U*10^(-3))); set(handles.Edit_v1,'String',num2str(star(1).V*10^(-3))); set(handles.Edit_w1,'String',num2str(star(1).W*10^(-3))); %將代碼中預的設數據寫入第二行顯示欄(第二顆星) set(handles.Edit_m2,'String',num2str(star(2).M*10^(-19))); set(handles.Edit_x2,'String',num2str(star(2).X)); set(handles.Edit_y2,'String',num2str(star(2).Y)); set(handles.Edit_z2,'String',num2str(star(2).Z)); set(handles.Edit_u2,'String',num2str(star(2).U*10^(-3))); set(handles.Edit_v2,'String',num2str(star(2).V*10^(-3))); set(handles.Edit_w2,'String',num2str(star(2).W*10^(-3))); %將代碼中預的設數據寫入第三行顯示欄(第三顆星) set(handles.Edit_m3,'String',num2str(star(3).M*10^(-19))); set(handles.Edit_x3,'String',num2str(star(3).X)); set(handles.Edit_y3,'String',num2str(star(3).Y)); set(handles.Edit_z3,'String',num2str(star(3).Z)); set(handles.Edit_u3,'String',num2str(star(3).U*10^(-3))); set(handles.Edit_v3,'String',num2str(star(3).V*10^(-3))); set(handles.Edit_w3,'String',num2str(star(3).W*10^(-3))); %保存數據 guidata(gcf,handles);end %%% --------------------------------------------------------------------function normal_Callback(hObject, eventdata, handles)%%% hObject handle to normal (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)view([-37.5,30]); ?%%% --------------------------------------------------------------------function XOY_view_Callback(hObject, eventdata, handles)%%% hObject handle to XOY_view (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)view([-90,90]); ?%%% --------------------------------------------------------------------function YOZ_view_Callback(hObject, eventdata, handles)%%% hObject handle to YOZ_view (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)view([-90,0]);?%%% --------------------------------------------------------------------function ZOX_view_Callback(hObject, eventdata, handles)%%% hObject handle to ZOX_view (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)view([180,0]);?%%% --------------------------------------------------------------------function Version_Callback(hObject, eventdata, handles)%%% hObject handle to Version (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)hs = msgbox({'軟件操作說明:' '' ' Version: 1.0 ' '' ' Author:' '' ' Chen Tianyang, Li Hao' '' ' Data:2017-10-25' ''},'Version Information');%改變字體大小ht = findobj(hs, 'Type', 'text');set(ht,'FontSize',10);%改變對話框大小set(hs, 'Resize', 'on'); ?%%% --------------------------------------------------------------------function UserGuide_Callback(hObject, eventdata, handles)% hObject handle to UserGuide (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)hs = msgbox({'軟件操作說明:' '' ? ''},'UserGuide');%改變字體大小ht = findobj(hs, 'Type', 'text');set(ht,'FontSize',10);%改變對話框大小set(hs, 'Resize', 'on'); ?3 仿真結果
4 參考文獻
[1]孫婷, 邢飛, 尤政. 一種基于天體運動學的星敏感器精度測量方法[J]. 清華大學學報:自然科學版, 2012, 52(4):6.
博主簡介:擅長智能優化算法、神經網絡預測、信號處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,相關matlab代碼問題可私信交流。
部分理論引用網絡文獻,若有侵權聯系博主刪除。
總結
以上是生活随笔為你收集整理的Matlab模拟三个天体运动的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7 安装oracle11g 数据库
- 下一篇: 数码管驱动及键盘控制芯片CH455