我有一个问题,因为这项工作涉及很多功能,但是在尝试绘制正弦积分时我遇到了麻烦(我正在使用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的东西,为什么会发生这种情况?应该如何解决这个问题?
答案 0 :(得分:4)
Fundamental Theorem of Calculus表示nice function f ( x )的不定积分等于函数的antiderivative < em> F ( x ),它是一个唯一的加性常数。此外,定积分具有以下形式:
在这种形式中,积分常数将抵消,只有当下限评估消失时,积分才会完全等于所需的反导数。但是,-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')
<强>输出: - 强>
答案 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