今天我们继续学习《高等数学》,下面我们开始吧:
用 Matlab 求解曲线积分与曲面积分,本质上是求解定积分。我们以之前的例子为例:
Matlab 代码如下所示:syms t;
x = t;
y = t^2;
f = sqrt(y);
dx = diff(x, t);
dy = diff(y, t);
ds = sqrt(dx^2 + dy^2);
r = int(f*ds, t, 0, 1);
eval(r) %将符号结果转换为数值结果
运行结果如下所示: 下面是求曲面积分的例子:
Matlab 代码如下所示:syms x y;
z = 1 - x - y;
dzdx = diff(z, x);
dzdy = diff(z, y);
dS = sqrt(1 + dzdx^2 + dzdy^2);
f = x * y * z * dS;
%将变限积分转化为定限积分
syms v;
g1y = 0;
g2y = 1 - y;
f = f * (g2y - g1y);
f = subs(f, x, (1 - v) * g1y + v * g2y); %将x替换掉
%计算结果
dblquad(inline(f), 0, 1, 0, 1)
运行结果如下所示: 由于我们计算的是变限积分,因此用 http://www.qbbox.com/blog/archives/13476 中介绍的方法先将变限积分转化为定限积分,然后再计算。下面是另一个曲面积分的例子:
Matlab 代码如下所示:
1 syms x y;2 z = 1/2 * (x^2 + y^2);3 dzdx = diff(z, x);4 dzdy = diff(z, y);5 dS = sqrt(1 + dzdx^2 + dzdy^2);6 f = z * dS;
%将变限积分转化为定限积分
syms v;
g1y = -sqrt(2 - y^2);
g2y = sqrt(2 - y^2);
f = f * (g2y - g1y);
f = subs(f, x, (1 - v) * g1y + v * g2y);
%计算结果
dblquad(inline(f), 0, 1, -sqrt(2), sqrt(2))
运行结果如下所示: 好了,今天我们就先介绍到这里,我们下次再见吧~~
完成!
原文:http://www.cnblogs.com/littletaotao/p/3561253.html