用matlab计算微积分
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
>> [x,y,z]=solve('x+2*y-z=27','x+z=3', ... 'x^2+3*y^2=28','x','y','z') 输出变量的顺序要书写正确!
solve 在得不到解析解时,会给出数值解。
x 2 y z 27 例:解方程组 x z 3 x 5 3 y 2 28
2.2 多变量函数的极限
L lim f ( x , y )
x x0 y y0
调用格式为: L=limit(limit(f,x,x0),y,y0) 或L= limit(limit(f,y,y0),x,x0)
1
例3 求 极 限 lim e x
x 1 / y y
2
y
函数简化
函数简化
y=simple(f): 对 f 尝试多种不同的算法进行
简化,返回其中最简短的形式
函数简化
函数简化
y=simplify(f): 对 f 进行简化
syms x; f=sin(x)^2 + cos(x)^2 ; simplify(f)
函数简化举例
8 例:简化 f ( x ) 3 13 62 12 x x x
solve 也可以用来解方程组 solve( f1 , f2 , ... , fN , v1 , v2 , ... , vN)
求解由 f1 , f2 , ... , fN 确定的方程组关于 v1 , v2 , ... , vN 的解
x 2 y z 27 例:解方程组 x z 3 x 2 3 y 2 28
findsym(f) f=sym(f,2)
符号表达式的替换
用给定的数据替换符号表达式中的指定的符号变量
subs(f,x,a) 用 a 替换字符函数 f 中的字符变量 x a 是可以是 数/数值变量/表达式 或 字符变量/表达式
若 x 是一个由多个字符变量组成的数组或矩阵, 则 a 应该具有与 x 相同的形状的数组或矩阵。
Matlab 符号运算特点
符号计算可以给出完全正确的封闭解,或任意 精度的数值解(封闭解不存在时)。
符号对象与符号表达式
在进行符号运算时,必须先定义基本的符号对象,可以是 符号常量、符号变量、符号表达式等。符号对象是一种数据 结构。 含有符号对象的表达式称为符号表达式,Matlab 在内部 把符号表达式表示成字符串,以与数字变量或运算相区别。
例4 求不定积分
x x dx
2 4
syms x
f=sqrt(x^2+x^4); int(f,x)
例5 求不定积分
sin(xy z)dz
syms x y z int(sin(x*y+z),z)
4.定积分
其调用格式为: int(f,x,a,b) int函数求函数f对变量x的定分,a,b积 分区间。
e2t 2
syms x t;
f=(-2*x^2-3*x+1)/(2*x^2-3*x+1)^2;
int(f,x,cos(t),exp(-2*t))
5.导数
MATLAB中的一元函数求导:
diff(f,x,n)
diff函数求函数f对变量x的n阶导数。
sin x 例8 函 数y 2 ,试求出 y (4) x 4x 3
因式分解
因式分解
factor(f)
syms x; f=x^6+1; factor(f)
factor 也可用于正整数的分解
s=factor(100) factor(sym('12345678901234567890'))
大整数的分解要转化成符号常量
函数展开
函数展开
expand(f)
符号方程求解器
solve s=solve(f,v):求方程关于指定自变量的解; s=solve(f):求方程关于默认自变量的解。
f 可以是用字符串表示的方程,或符号表达式; 若 f 中不含等号,则表示解方程 f=0。 例:解方程 x^3-3*x+1=0 syms x; f=x^3-3*x+1; s=solve(f,x)
subs 举例
例:指出下面各条语句的输出结果
>> f=sym('2*u'); >> subs(f,'u',2) >> f2=subs(f,'u','u+2')
f=2*u ans=4
Hale Waihona Puke Baidu
f2=2*(u+2)
六类常见符号运算
因式分解、展开、合并、简化及通分等 计算极限 计算导数 计算积分 符号求和 代数方程和微分方程求解
1.符号对象和表达式
Sym和Syms函数
基本格式:Sym(数字);sym(‘变量或者表达式’)
实验1:(1)a=sqrt(5) (2)a=sym(5)
b=sqrt(a)
实验2:(1)x=sym(‘x’) (2)a=sym(‘x*2+1’)
注意:对于多个符号变量的建立,可使用’sym’,’syms’ 命令建立。 实验3:定义方程x+y+z=1中的变量为符号变量 (1)x=sym(‘x’) y=sym(‘y’) z=sym(‘z’) (2)syms x y z
单变量函数的 Taylor级数展开
注1 k为需要展开的项数,默认值为6项。
sin x 例12 求 函 数 f ( x) 2 的泰勒幂级数展开的 x 4x 3 前9 项 , 并 关 于 x 2进 行 泰 勒 幂 级 数 的 展 。 开
syms x; f=sin(x)/(x^2+4*x+3); y1=taylor(f,x,9) y2=taylor(f,x,9,2)
syms x; y=sin(x)/(x^2+4*x+3); y1=diff(y,x,4) pretty(y1)
例9 在曲线y=x3+3x-2上哪一点的切线与 直线y=4x-1平行。 syms x; y=x^3+3*x-2; %定义曲线函数 f=diff(y); %对曲线求导数 g=f-4; solve(g) %求方程f-4=0的根,即求曲 线何处的导数为4
是int,其调用格式为: int(f,x) int函数求函数f对变量x的不定积分。
例4 求不定积分
x x dx
2 4
解: 原 式 x 1 x 2 dx
1 1 x 2 d (1 x 2 ) 2
3 1 2 . .(1 x 2 ) 2 2 3 3 1 (1 x 2 ) 2 c 3
MATLAB中的二元函数求导:
diff(diff(f,x,m),y,n) diff(diff(f,y,n),y,m)
例10 函数z ( x 2 x )e
2
x y
2
2
2 z z xy , 计算 , x xy
syms x y; z=(x^2-2*x)*exp(-x^2-y^2-x*y); diff(z,x) diff(diff(z,x),y)
2
sin2 x 1 xa2 y2 (1 2 ) 2 x y
syms x y a;
f=exp(-1/(y^2+x^2))*sin(x)^2/x^2* (1+1/y^2)^(x+a^2*y^2); L=limit(limit(f,x,1/sqrt(y)),y,inf)
3. 不定积分
在MATLAB中,求不定积分的函数
查找符号变量
查找符号表达式中的符号变量
findsym(expr)
按字母顺序列出符号表达式 expr 中的所有符号变量
findsym(expr, N) 列出 expr 中离 x 最近的 N 个符号变量
常量 pi, i, j 不作为符号变量
findsym 举例
例: f=sym('2*w-3*y+z^2+5*a')
>> syms x; >> f=(1/x^3+6/x^2+12/x+8)^(1/3); >> y1=simplify(f) >> g1=simple(f) >> g2=simple(g1)
多次使用 simple 可以达到最简表达。
分式通分
函数简化
[N,D]=numden(f):
N 为通分后的分子,D 为通分后的分母 >> syms x y; >> f=x/y+y/x; >> [N,D]=numden(f)
a x b 例1 求 极 限lim x(1 ) sin x x x
syms x a b; f=x*(1+a/x)^x*sin(b/x);
L=limit(f,x,inf)
e 1 例2 求极限lim x 0 1 cos x sin x
x3
syms x; f=(exp(x^3)-1)/(1-cos(sqrt(x-sin(x)))); L=limit(f,x,0,'right')
2.极限问题
2.1 单变量函数的极限
调用格式为: limit(f,x,a) limit函数的另一种功能是求单边极限,其调 用格式为: limit(f,x,a,‘right’) 或 limit(f,x,a,'left')
a x b 例1 求 极 限lim x(1 ) sin (a 0) x x x b sin x 1 a a x ).b 解:原 式 lim [(1 ) ] .( x x b ( ) a x bea
多项式展开
>> syms x; f=(x+1)^6; >> expand(f)
三角函数展开
>> syms x y; f=sin(x+y); >> expand(f)
合并同类项
合并同类项
collect(f,v): 按指定变量 v 进行合并 collect(f): 按默认变量进行合并
>> syms x y; >> f= x^2*y + y*x - x^2 + 2*x ; >> collect(f) >> collect(f,y)
[x,y,z]=solve('x+2*y-z=27','x+z=3', ... 'x^5+3*y^2=28','x','y','z')
例11 f ( x, y, z ) sin(x 2 y )e x
2
yz
2
4 f ( x, y, z ) , 计算 x 2yz
syms x y z;
f=sin(x^2*y)*exp(-x^2*y-z^2);
diff(diff(diff(f,x,2),y),z)
6.Taylor级数展开
在MATLAB中,求定积分的函数是int,
例 6 求积分
1 0
1
2
3 2x x 1
dx, dx,
3 2x x
2
syms x; int(1/(3+2*x+x^2),x,0,1) int(1/(3+2*x+x^2),x,-inf,inf)
2x 1 例7求定积分 cost (2 x 2 3 x 1)2 dx