Matlab如何绘制积分

时间:2015-06-04 09:02:16

标签: matlab

我试图在matlab上绘制菲涅耳积分

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

图:x(t)对y(t)为-4pi&lt; = t <= 4pi

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

1 个答案:

答案 0 :(得分:1)

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

sin(x^2)

在此范围内,使用固定步长进行整合仍然很实用,但它需要非常小:我选择h = 0.001。另外,为了提高精度,我建议修改cumsum(对应于&#34;左/右端点&#34;积分方法),以便它实现梯形方法。这意味着删除总和中使用的最左边和最右边的值的1/2。

作为一个例子,我给出了一个从0到4 * pi绘制的示例程序,让您根据自己的范围进行调整。 (如果你使用的是被积函数是偶数的话,你不必计算更多的积分。)

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)

plot

说明

  • 虽然没有必要,但它有助于改变积分变量s = v ^ 2,因为振荡发生的时间相同,这更适合这种固定的步长方法。

    < / LI>
  • 这是一种可以考虑自适应整合方法的情况。