绘制罪

时间:2016-07-25 20:59:14

标签: matlab integration

我有一个问题,因为这项工作涉及很多功能,但是在尝试绘制正弦积分时我遇到了麻烦(我正在使用matlab 2010):

clear all
close all
clc

x = linspace(-10, 10, 100);

f = @(x) sin(x);

I = arrayfun(@(x) quad(f, 0, x), x);
plot(x, f(x),'r', x, I, 'b')

我希望有一个-cos(x),但我得到一个偏移量为1的东西,为什么会发生这种情况?应该如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

Fundamental Theorem of Calculus表示nice function f x )的不定积分等于函数的antiderivative < em> F ( x ),它是一个唯一的加性常数。此外,定积分具有以下形式:

Fundamental Theorem of Calculus

在这种形式中,积分常数将抵消,只有当下限评估消失时,积分才会完全等于所需的反导数。但是,-cos(0)不会消失,其值为-1。因此,为了计算所需的反衍生物 F x ),应将下限评估添加到右侧。

plot(x, f(x),'r', x, I+ (-cos(0)), 'b');

这相当于为ODE ode45分配ODE解决方案的初始值。

答案 1 :(得分:1)

使用以下方法可以实现您的目标:

x = linspace(-10, 10, 100);

syms y;
f = sin(y)     %function

I =int(f,y)    %integration of f
plot(x, subs(f,y,x),'r', x, subs(I,y,x), 'b')

<强>输出: -

output

答案 2 :(得分:0)

根据Matlab文档,q = quad(fun,a,b)

  

正交是一种数值方法,用于求函数图下的面积,即计算一个定积分。

sin(x)的积分等于-cos(x)

sin(x)x = pi的{​​{1}}的确定积分:
x = 0

由于-cos(pi) - (-cos(0)) = 2计算了一个定积分,我看不出任何问题。

同样:
quad