- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试通过速度 verlet 模拟地球-太阳系统,但不知何故,太阳不会围绕原点(质量减少的位置)运行,而是漂移。我花了很多时间查看我的算法,但找不到缺陷。
有人知道这里出了什么问题吗?
这是模拟图:http://i.imgur.com/5l8GzZS.png
#include <stdio.h>
#include <math.h>
double xearth,yearth,vxearth,vyearth;
double xsun,ysun,vxsun,vysun;
double dt=0.5;
double fxearth,fyearth;
double fxsun,fysun;
double r;
double G;
double ms, ma;
double rx,ry;
double t;
main(){
FILE * pFile;
int n;
xearth= -2.569651552438753*pow(10,-2); /* in AU */
yearth= -1.008909556982513;
xsun= 2.563054664344734*pow(10,-4);
ysun= 6.897319465467234*pow(10,-3);
vxearth= 1.690809814669721*pow(10,-2); /* in AU per day */
vyearth= -4.950293720310762*pow(10,-4);
vxsun= -5.788119594348977*pow(10,-6);
vysun= 3.335986886320253*pow(10,-6);
G=1.488*pow(10,-34); /* G in AU, t in day */
ms=1.9884*pow(10,30); /* kg */
ma=5.9722*pow(10,24); /* kg */
t=0;
pFile = fopen ("/file.txt", "w");
rx=xearth-xsun;
ry=yearth-ysun;
r=sqrt((rx*rx+ry*ry));
fxearth= -G*ms*ma*(rx)/pow(r,3);
fyearth= -G*ms*ma*(ry)/pow(r,3);
fxsun= -G*ms*ma*(-rx)/pow(r,3);
fysun= -G*ms*ma*(-ry)/pow(r,3);
vxearth=vxearth+.5*dt/ma*fxearth;
vyearth=vyearth+.5*dt/ma*fyearth;
vxsun=vxsun+.5*dt/ms*fxsun;
vysun=vysun+.5*dt/ms*fysun;
for(n=1; n<60000; n++){
xearth=xearth+dt*vxearth;
yearth=yearth+dt*vyearth;
xsun=xsun+dt*vxsun;
ysun=ysun+dt*vysun;
rx=xearth-xsun;
ry=yearth-ysun;
r=sqrt((rx*rx+ry*ry));
fxearth= -G*ms*ma*(rx)/pow(r,3);
fyearth= -G*ms*ma*(ry)/pow(r,3);
fxsun= -G*ms*ma*(-rx)/pow(r,3);
fysun= -G*ms*ma*(-ry)/pow(r,3);
vxearth=vxearth+dt/ma*fxearth;
vyearth=vyearth+dt/ma*fyearth;
vxsun=vxsun+dt/ms*fxsun;
vysun=vysun+dt/ms*fysun;
t=t+dt;
fprintf(pFile,"%f\t %f\t %f\t %f\t %f\n",xearth,yearth,xsun,ysun,t);
}
fclose (pFile);
return 0;
}
最佳答案
发生这种情况是因为您的初始条件为系统提供了非零净动量。您可以通过计算系统的初始平均速度并从所有物体速度中减去它来解决这个问题:
double vxavg = (vxsun*ms + vxearth*ma) / (ms + ma);
double vyavg = (vysun*ms + vyearth*ma) / (ms + ma);
vxsun -= vxavg;
vysun -= vyavg;
vxearth -= vxavg;
vyearth -= vyavg;
关于c - C 中的 Velocity Verlet 实现困难(太阳漂移),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24124111/
有没有办法在 Velocity 中做三元运算符? 这就是我想做的: #set ($name = ($args.get(0) == "") ? "default" : $args.get(0)) 而不是
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 4年前关闭。 Improve this qu
我有一个 Java 数组,例如: String[] arr = new String[] {"123","doc","projectReport.doc"}; 在我看来,访问的自然方式是: #set
拥有: Velocity 模板或宏 某个物体 如何以易于追踪到失败位置(例如在 Java 中抛出异常)的方式验证对象 (#if) 并失败(停止进一步处理)。 我正在寻找这样的东西: #if ( ! $
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
在 xwiki 中使用 Apache velocity,如何像在 JavaScript 中那样创建一个 console.log()?我知道日志可能会在服务器端。我真的只想打印为调试目的而呈现的变量值。
我有一个 Velocity 模板文件,其中包含来自 XML 的数据。我想将字符串转换为整数类型。 我怎样才能做到这一点? 最佳答案 啊哈!去过那里。 #set($intString = "9") #s
您如何在 Velocity 中获得查询中第一项的输出。例如,如果您的查询是 $Items 并且包含许多对象,您如何获得第一个? 我试过 $Items(1) 但这不是答案。有什么建议?谢谢你。 最佳答案
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
是否可以通过名称调用速度宏,例如: #macro (sayHello) Hello! #end #set ($macroName = "sayHello") #$macroName() 谢谢! 最佳
我对在 if 语句中处理多个和/或语句感到有点困惑。我希望有人能帮我解决这个问题。 Velocity 引用指南似乎没有解决我正在尝试做的事情。 我正在使用一个应用程序,我将在其中使用公共(public
我在包含一些路径的速度模板中设置了一个数组。 这个想法是在这个数组中放置一些“默认”的 .js/.css 文件,90% 的页面将使用这些文件。 但是,其他页面仍然必须能够从该数组中添加/删除值,以防根
我试图通过在初始请求下载的 HTML 中内联一些 CSS 来优化一些移动网页(或更准确的服务器请求数量)。 这些页面来自我们基于 Vosao 的 CMS,并使用 Apache Velocity 宏。
如果在VelocityContext中没有找到值,Velocity只会打印标签名称,即我的模板文件中的$name,但是VelocityContext中没有“name”的值,所以只打印了“$name”。
Marketo 限制了 10 个最近的可搜索机会,不幸的是,我们有很多用户拥有超过 10 个机会。 foreach 循环似乎从最近最少更新的机会开始,并在列表中向上移动到最近更新的机会。这里的问题是,
如何在 Velocity 模板引擎中将十进制数四舍五入到 2 位? #set ($Percentage = $Marks*100/$Total) 我想将百分比四舍五入到小数点后两位。我怎样才能做到这一
我在扩展 AbstractProcessor 的注释处理器内初始化速度引擎,如下所示: public boolean process(Set annotations, RoundEnvironment
我有一个速度模板,它代表一个 XML 文件。我使用传递给 VelocityContext 对象的数据填充标签之间的文本。然后在模板中访问它。 这是一个例子,我们称之为 myTemplate.vm: $
我在linux下工作,在我的应用程序中,我限制了权限,所有路径都是只读的 在我的应用程序中,我使用了 velocity-1.6.2.jar 并且每次调用它时都会创建 velocity.log 并且该文
我正在尝试使用嵌入在 Atlassian 产品中的 Velocity 引擎(并通过 com.atlassian.templaterenderer 公开)将 JSON 值替换为模板。 在模板中,这看起来
我是一名优秀的程序员,十分优秀!