首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab如何绘制积分

Matlab如何绘制积分
EN

Stack Overflow用户
提问于 2015-06-04 09:02:15
回答 1查看 1.5K关注 0票数 0

我试图用matlab绘制菲涅耳积分。

x(t) =∫cos(v^2)dv界:a= 0,b=t(T)=∫sin(u^2)du界:a= 0,b=t

情节: x(t) vs y(t) for -4 4pi <= t <= 4 4pi

我一直在网上寻找如何做到这一点,但无法获得任何有用的方法,甚至开始这个问题。任何事情都会有帮助,即使它只是指向正确的方向。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-05 00:52:27

这是一个棘手的图(我假设它来自一个数值方法分配)。要集成的函数是高度振荡的:这是区间0到4*pi上的sin(x^2)。

在这个范围内,使用固定的步骤大小进行集成仍然是可行的,但是它需要非常小:我会选择h=0.001。此外,为了提高精度,我建议修改cumsum (它对应于“左/右端点”的集成方法),以便实现梯形方法。这意味着移除和中使用的最左和最右边值的1/2。

作为一个例子,我给出了一个从0到4*pi的样例程序,让你适应你的范围。(如果使用积分为偶数的事实,则不必计算更多的积分。)

代码语言:javascript
复制
h = 0.001;
t = 0:h:4*pi;
x = cos(t.^2);
y = sin(t.^2);
X = h*(cumsum(x)-x(1)/2-x/2);
Y = h*(cumsum(y)-y(1)/2-y/2);
plot(X,Y)

备注

  • 虽然没有必要,但它将有助于改变积分s=v^2的变量,因为振荡发生在相同的周期,这更适合这种固定步长的方法。
  • 这是一种可以考虑自适应积分法的情况。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30639497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档