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 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)
  • ¥15 52810 尾椎c三个a 写蓝牙地址