首页 文章

Maple中解决定积分的错误

提问于
浏览
1

基本上我试图从Theta = 0到Theta0 = 45解决Maple中的以下定积分 . 我试图找到一个实际的数值,但需要先找到积分 . 我不知道如何让Maple帮我解决积分,其中有两个不同的值(theta和theta0) . 我所要做的就是找到钟摆的振荡周期,但我已经被指示只使用这种方法和方程 .

从等式d ^2θ/ dt ^ 2 = -g / L sin(θ)我们发现:

P = 4 sqrt(L/2g) ∫ (0 to θ0) dθ/sqrt[cos(θ)-cos(θ0)]

L= 1
g= 9.8

为了简化积分之前的值,我做了以下事情:

>L:=1;
>g:=9.8;
>evalf(4*sqrt(L/(2*g));
>M:=%;

因此,解决的积分简化为:

P = M ∫ (0 to θ0) dθ/sqrt[cos(θ)-cos(θ0)]

当我尝试自己评估积分时,我得到错误:“错误,索引必须在索引模块时评估为名称” . 我想弄清楚Maple是如何让我输入积分的,所以它会解决它 .

我尝试了以下以及类似的变量组合:

int(1/sqrt[cos(t)-cos(45)],t=0..45);

我想不出如何让枫为我解决定积分,因为它是分母中的cos(theta)-cos(theta0)而不是一个变量 . 当我为积分尝试不同的值时,我也会收到以下错误:

Error, index must evaluate to a name when indexing a module

我必须忽视一些相当大的东西才能继续犯这个错误 . 在此先感谢任何帮助或指导! :)

1 回答

  • 1

    正如acer在评论中指出的那样,maple语法不使用方括号来表示函数 . 您的任务的正确语法是:

    int(1/sqrt(cos(t)-cos(Pi/4)),t=0..Pi/4);
    

    请注意,枫木以弧度工作,所以我用 Pi/4 替换了你的 45 .

    如果您需要数值,可以使用 evalf

    evalf(int(1/sqrt(cos(t)-cos(Pi/4)),t=0..Pi/4));
    

    maple的回答是 2.310196615 .

    如果需要使用通用变量 theta0 进行求值,则可以将函数定义为:

    myint:=theta0->int(1/sqrt(cos(t)-cos(theta0)),t=0..theta0);
    

    然后将其称为,例如,

    myint(Pi/4);
    

    并进行数值评估:

    evalf(myint(Pi/4));
    

相关问题