qq_58208978 2021-06-17 00:27 采纳率: 33.3%
浏览 36
已采纳

请问这个程序的敏感度分析怎么写呢?

clc;clear;close;

figure('name','三体运动');

axis equal

grid on

hold on

colordef black

view(3)

xlabel('x')

ylabel('y')

zlabel('z')

hold on

%初始化参数设置(质量、初始位置、初始速度、万有引力常数、时间步长)

m1=rand()*10^23;

m2=rand()*10^23;

m3=rand()*10^23;

 

pos1=[rand()*10^7,rand()*10^7,rand()*10^7];

pos2=[rand()*10^7,rand()*10^7,rand()*10^7];

pos3=[rand()*10^7,rand()*10^7,rand()*10^7];

 

v1=[rand()*1000,rand()*1000,rand()*1000];

v2=[rand()*1000,rand()*1000,rand()*1000];

v3=[rand()*1000,rand()*1000,rand()*1000];

G=6.67*10^(-11);

dt=0.005;

 

%行星和轨迹(定义行星位置和轨迹变量)

planet1=plot3(pos1(1),pos1(2),pos1(3),'b:.','markersize',20);

planet2=plot3(pos2(1),pos2(2),pos2(3),'r:.','markersize',20);

planet3=plot3(pos3(1),pos3(2),pos3(3),'y:.','markersize',20);

 

h1=animatedline('color','b');

h2=animatedline('color','r');

h3=animatedline('color','y');

frame=0;

while true

     %不断循环计算距离、相互作用力、速度、加速度、位置

    r12=normest(pos2-pos1);

    r23=normest(pos3-pos2);

    r13=normest(pos3-pos1);

    

    F12_val=G*m1*m2/(r12^2);

    F23_val=G*m2*m3/(r23^2);

    F13_val=G*m1*m3/(r13^2);

    

    F12_dir=(pos2-pos1)/normest(pos2-pos1);

    F23_dir=(pos3-pos2)/normest(pos3-pos2);

    F13_dir=(pos3-pos1)/normest(pos3-pos1);

    

    a1=((F12_val)*(F12_dir)+(F13_val)*(F13_dir))/m1;

    a2=((-F12_val)*(F12_dir)+(-F23_val)*(F23_dir))/m2;

    a3=((-F13_val)*(F13_dir)+(-F23_val)*(F23_dir))/m3;

    

    v1=v1+a1*dt;

    v2=v2+a2*dt;

    v3=v3+a3*dt;

    

    pos1=pos1+v1*dt+1/2*a1*dt^2;

    pos2=pos2+v2*dt+1/2*a2*dt^2;

    pos3=pos3+v3*dt+1/2*a3*dt^2;

    

    frame=frame+1;

    if frame==10000

        frame=0;

        

       % set(planet1,'position',[pos1(1),pos1(2),pos1(3)]);

       

        %set(planet3,'position',pos3(1),'YData',pos3(2),'ZData',pos3(3));

        

        addpoints(h1,pos1(1),pos1(2),pos1(3));

        addpoints(h2,pos2(1),pos2(2),pos2(3));

        addpoints(h3,pos3(1),pos3(2),pos3(3));

        drawnow

    end

    if r12==0||r23==0||r13==0 %判断是否相撞

        break

    end

end

  • 写回答

1条回答 默认 最新

  • 有问必答小助手 2021-06-18 19:10
    关注

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答

    本次提问扣除的有问必答次数,已经为您补发到账户,我们后续会持续优化,扩大我们的服务范围,为您带来更好地服务。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目