资源描述
-------------
求极限运算
命令形式1:Limit(f)
功能:计算 , 其中f是符号函数。
命令形式2: Limit(f,x,a)
功能:计算,其中f是符号函数。
命令形式3: Limit(f,x,inf)
功能:计算,其中f是符号函数。
命令形式4: Limit(f,x,a,’right’)
功能:计算,其中f是符号函数。
命令形式5: Limit(f,x,a,’left’)
功能:计算,其中f是符号函数。
注意:在左右极限不相等或左右极限有一个不存在时,Matlab的默认状态为求右极限。
例4:求极限
解:Matlab 命令为: syms x↙
y=(1/(x*(log(x))^2))-1/(x-1)^2;
limit(y,x,1,'right')↙
ans =
1/12
此极限的计算较难,用Matlab 很容易得结果。
例6:求极限
解:Matlab 命令为: syms x↙
y=(1+tan(x))/(1+sin(x))^(1/x^3);↙
limit(y)↙
ans =
0
导数与微分
6.2.1 一元函数的导数与微分
导数是函数增量与自变量增量之比的极限,即.在Matlab中求函数的导数及其他一些类似运算均由diff命令来完成.
l 用差分法求导数的数值解
用差分法求导数比较粗略,误差较大,尽量少采用差份法取计算数值微分,具体指令为: D=diff(X) 求向量或矩阵的差分
因为,则,所以y对x的导数近似等于y的有限差分除以x的有限差分。
例7:用差分法求出的导数。
解:(1)建立M命令文件:x=-5:.1:5;
y=(x+tan(x)).^(1/2)+sin(x).*cos(5*x);
dx=diff(x);
dy=diff(y);
disp('f(x)的导数为:')
yd0=dy./dx
l 对符号函数求一阶导diff(f)
格式:diff(f),其中f是符号函数。
例9:求的导数。
解:Matlab 命令为:syms x↙
r=sqrt(1+x^2);↙
y=1/2*atan(r)+1/4*log((r+1)/(r-1));↙
diff(y)↙
l 对符号函数求n阶导
格式:diff(f ,n),其中f是符号函数。
例10:求的一阶、二阶导数。
解:Matlab 命令为:syms a b x↙
y=(a*x+tan(3*x))^(1/2)+sin(x)*cos(b*x);↙
y1=diff(y);↙
y2=diff(y,2);↙
disp('一阶导数为:'), pretty(y1)↙
一阶导数为:
2
a + 3 + 3 tan(3 x)
1/2 ------------------- + cos(x) cos(b x) - sin(x) sin(b x) b
1/2
(a x + tan(3 x))
disp('二阶导数为:'),y2↙
二阶导数为:
y2 =
1/4/(a*x+tan(3*x))^(3/2)*(a+3+3*tan(3*x)^2)^2+3/(a*x+tan(3*x))^(1/2)*tan(3*x)*(3+3*tan(3*x)^2)-sin(x)*cos(b*x)-2*cos(x)*sin(b*x)*b-sin(x)*cos(b*x)*b^2
(3)分析结果:
参数方程求导
对参数方程所确定的函数y=f(x),根据公式,连续两次利用指令diff(f)就可求出结果。
例15.求参数方程的一阶导数。
解:Matlab命令: syms t↙
x=t*(1-sin(t));↙
y=t*cos(t);↙
dx=diff(x,t)↙
dx =
1-sin(t)-t*cos(t)
dy=diff(y,t)↙
dy =
cos(t)-t*sin(t)
pretty(dy/dx)↙
cos(t) - t sin(t)
---------------------
1 - sin(t) - t cos(t)
6.2.2 多元函数求导
l 对多元函数求导
格式:diff(f ,x,n),表示对变量x求n阶导数,其中f是符号函数,。
例16:,求
解:Matlab命令:syms a b c x↙
y=a*sin(b*exp(c*x)+x^a)*cos(c*x);↙
diff(y,x)↙
例18: 对函数, 求
解:Matlab命令: syms x y↙
z=x^3*y^2+sin(x*y);↙
diff(z,x,3)↙
ans =
6*y^2-cos(x*y)*y^3
6.2.3 隐函数求导
l 一元隐函数求导
由方程确定的隐函数y=y(x),则
例23:求所确定的隐函数y=y(x)的导数。
解:Matlab命令:syms x y↙
f=x*y-exp(x)+exp(y);↙
dfx=diff(f,x);↙
dfy=diff(f,y);↙
dyx=-dfx/dfy;↙
pretty(dyx)↙
-y + exp(x)
-----------
x + exp(y)
结果分析:
l 多元隐函数求导
由方程确定的隐含数z=z(x,y) ,则,
例24. ,其中z=z(x,y) ,求,。
解:Matlab命令syms x y z↙
u=x^2+y^2+z^2;↙
dux=diff(u,x);duy=diff(u,y);duz=diff(u,z);↙
dzx=-dux/duz↙
dzx =
-x/z
dzy=-duy/duz↙
dzy =
-y/z
结果分析:,。
6.1 求不定积分
高等数学中求不定积分是较费时间的事情,在Matlab中,只要输入一个命令就可以快速求出不定积分来。
指令:int(f) f是被积函数,表示对默认的变量求不定积分。
int(f,v) f是被积函数,表示对变量v求不定积分
例25:计算
解:Matlab命令:syms x↙
y=1/(sin(x)^2*cos(x)^2); ↙
int(y);↙
pretty(int(y)) ↙
1 cos(x)
------------- - 2 ------
sin(x) cos(x) sin(x)
例26:计算
解:Matlab命令:syms a b x↙
y=[a*x b*x^2;1/x sin(x)]; ↙
int(y,x) ↙
ans =
[ 1/2*a*x^2, 1/3*b*x^3]
[ log(x), -cos(x)]
定积分的符号解法
指令:int(f,v,a,b) f是被积函数,表示对变量v求区间[a,b]上的定积分。
例31:
解:Matlab 命令为:syms x a↙
f=sqrt(x^2+a);↙
int(f,x,-2,2);↙
pretty(int(f,x,-2,2))↙
1/2 1/2 1/2
2 (4 + a) + 1/2 a log(2 + (4 + a) ) - 1/2 a log(-2 + (4 + a) )
例32:求
解:Matlab 命令为:syms t x↙
y1=exp(t^2);y2=t*y1^2;↙
r1=int(y1,t,0,x);r2=int(y2,t,0,x);↙
f=r1^2/r2;↙
limit(f,x,0)↙
ans =
2
6.4.2 广义积分
指令:int(f,v,a,inf) f是被积函数,表示对变量v求区间上的定积分
int(f,v,-inf,b) f是被积函数,表示对变量v求区间上的定积分
int(f,v,-inf,inf) f是被积函数,表示对变量v求区间上的定积分
例35.计算广义积分
解:Matlab命令syms x↙
f=1/(x^4); ↙
int(f,x,1,inf) ↙
ans =
1/3
例36:计算瑕积分
解:Matlab命令syms x↙
f=x/sqrt(1-x^2); ↙
int(f,x,0,1) ↙
ans =
1
6.4.3 计算二重积分
指令:dblquad('fun',inmin, inmax, outmin, outmax)
其中:
例37.计算,D由y=1,x=4,x=0,y=0所围
解: Matlab命令为:ff=inline('x*y','x','y');↙
dblquad(ff, 0, 4, 0, 1)↙
ans =
4
例38.计算
解:Matlab命令ff=inline('x.^2+y','x','y');↙
dblquad(ff, 0, 1, 0, 1)↙
ans =
0.8333
6.2 函数展开成幂级数
6.5.1 一元函数泰勒展开
指令:taylor(f) f是待展开的函数表达式,展开成默认变量的6阶麦克劳林公式
taylor(f,n) f是待展开的函数表达式,展开成默认变量的n阶麦克劳林公式
taylor(f,n,v,a) f是待展开的函数表达式,展开成变量v=a的n阶泰勒公式
例39.将函数展开为x的6阶麦克劳林公式。
解:Matlab命令syms x↙
f=x*atan(x)-log(sqrt(1+x^2)); ↙
taylor(f) ↙
ans =
1/2*x^2-1/12*x^4
例40.将函数展开为关于(x-2)的最高次为4的幂级数。
解:Matlab命令:syms x↙
f=1/x^2; ↙
taylor(f,4,x,2); ↙
pretty(taylor(f,4,x,2)) ↙
2 3
3/4 - 1/4 x + 3/16 (x - 2) - 1/8 (x - 2)
例41:用正弦函数sin x的不同Taylor展式观察函数的Taylor逼近特点。
解:(1)建立命令文件
syms x
y=sin(x);
f1=taylor(y,3);f2=taylor(y,6);f3=taylor(y,15);
subplot(2,2,1),ezplot(y),axis([-6 6 -1.5 1.5]),gtext('sin(x)')
subplot(2,2,2),ezplot(f1),axis([-6 6 -1.5 1.5]),gtext('3阶泰勒展开')
subplot(2,2,3),ezplot(f2),axis([-6 6 -1.5 1.5]),gtext('6阶泰勒展开')
subplot(2,2,4),ezplot(f3),axis([-6 6 -1.5 1.5]),gtext('15阶泰勒展开')
(2)运行命令文件
图6.8函数y=sinx与它的不同阶泰勒展开式的图像
6.5.2 多元函数的完全泰勒展开
指令:mtaylor(f,v) f是待展开的函数表达式,v是变量名列表。
mtaylor(f,v,n) f是待展开的函数表达式,v是变量名列表,n是展开阶数。
由于mtaylor并不在Matlab符号运算工具箱中,它是Maple符号运算库中的命令。因此在 Matlab使用mtaylor的格式为:
maple(‘readlib(mtaylor)’)
maple(‘mtaylor(f,v,n)’)
例42:在(1,0,0)处对函数进行完全泰勒展开。
解:Matlab命令:maple('readlib(mtaylor)');↙
maple('mtaylor(sin(x^2+y^2/z),[x=1,y=0,z=0],3)')↙
ans =
sin(1)+2*cos(1)*(x-1)+cos(1)*y^2/z+(-2*sin(1)+cos(1))*(x-1)^2-2*sin(1)*y^2/z*(x-1)-1/2*sin(1)*y^4/z^2
6.3 求和、求积、级数求和
6.6.1 求和
sum(x) 求向量x的和或者是矩阵每一列向量的和
cumsum(x) x是向量,逐项求和并用行向量显示出来;x是矩阵,则对列向量进行操作。
例43:a=1:5;A=[1 2 3;2 3 4;7 8 9];↙
sum(a) ↙
ans =
15
cumsum(a) ↙
ans =
1 3 6 10 15
sum(A) ↙
ans =
10 13 16
cumsum(A) ↙
ans =
1 2 3
3 5 7
10 13 16
6.6.2 求积
prod(x) 求向量x的积或者是矩阵每一列向量的积
cumprod(x) x是向量,逐项求积并用行向量显示出来; x是矩阵,则对列向量进行操作。
例44:a=1:5;A=[1 2 3;2 3 4;7 8 9];↙
prod(a) ↙
ans =
120
cumprod(a) ↙
ans =
1 2 6 24 120
prod(A) ↙
ans =
14 48 108
cumprod(A) ↙
ans =
1 2 3
2 6 12
14 48 108
6.6.3 级数求和
l symsum(s)
s为求和的级数的通项表达式,对默认的变量如k求由0到k-1的有限项的和.
例45:求
解:Matlab命令:syms n↙
f=n^3; ↙
symsum(f) ↙
ans =
1/4*n^4-1/2*n^3+1/4*n^2
l symsum(s,v)
s为求和的级数的通项表达式,对变量v求由0到v-1的有限项的和.
例46:求
解:Matlab命令:syms a b x↙
f=a*n^3+(a-1)*n^2+b*n+2; ↙
collect(symsum(f,n)) ↙
ans =
1/4*a*n^4+(-1/3-1/6*a)*n^3+(1/2-1/4*a+1/2*b)*n^2+(-1/2*b+11/6+1/6*a)*n
l symsum(s,v,a,b)
s为求和的级数的通项表达式,对变量v求由a到b的有限项的和.
例47:求
解:Matlab命令:syms a b x↙
f=a*n^3+(a-1)*n^2+b*n+2; ↙
collect(symsum(f,n,0,100)) ↙
ans =
25840850*a+5050*b-338148
6.4 求函数的零点
l 用fzeros求函数的零点
z=fzero(‘fun’,x0,tol,trace)
其中fun是被求零点的函数文件名,x0表示在的附近找零点,tol代表精度,可以缺省。缺省时,tol=0.001.trace=1,迭代信息在运算中显示,trace=0,不显示迭代信息,默认值为0。
此命令不仅可以求零点,而且可以求函数等于任何常数值得点。
例48:通过求的零点,综合叙述相关指令的用法。
解:(1)建立M函数命令文件
function y=gg(x)
y=sin(x).^2.*exp(-0.1*x)-0.5*abs(x);
(2)建立M命令文件
clf
x=-10:0.01:10;
y=gg(x);
plot(x,y,'r');hold on,plot(t,zeros(size(t)),'k--');
xlabel('t');ylabel('y(t)'),hold off
disp('通过图形取点')
[tt,yy]=ginput(3)
xzero1=fzero('gg',tt(1));
xzero2=fzero('gg',tt(2));
xzero3=fzero('gg',tt(3));
disp('零点的横坐标')
disp([xzero1 xzero2 xzero3])
hold on
plot(xzero1,gg(xzero1),'bp',xzero2,gg(xzero2),'bp',xzero3,gg(xzero3),'bp')
legend('gg(x)','y=0','零点')
(3)运行命令文件
通过图形取点
tt =
-2.0530
-0.5960
0.5960
yy =
-0.0251
0.0050
-0.0251
零点的横坐标
-2.0074 -0.5198 0.5993
图 6.9 函数零点分布观察图
例49:求在x=2附近的零点,并画出函数的图像。
解:(1)建立M函数命令文件
function y=gg2(x)
y=3*2.^(5*x).*(x.^2+cos(x))-40;
(2)建立M命令文件
clf
x=-4:.1:5;
y=gg2(x);
xzero=fzero('gg2',-0.5)
plot(x,y,'b',xzero,gg2(xzero),'rp')
axis([-4 5 -100 300])
legend('f(x)','零点')
(3)运行命令文件
xzero =
0.6846
图 6.10 函数零点分布观察图
6.5 求函数的极值点
l fminbnd
x=fminbnd(fun,x1,x2) %5.3版本及其以后的版本中使用
其中fun是被求零点的函数文件名,x1,x2表示在区间[x1,x2]内找极小值点。
例50:求在区间[-1,1]内的最小值,并画出函数的图像。
解:(1)建立M函数命令文件
function y=gg2(x)
y=3*2.^(5*x).*(x.^2+cos(x))-40;
(2)建立M命令文件
clf
x=-2:.1:2;
y=gg3(x);
xmin=fmin('gg3',-1,1)
plot(x,y,'b',xmin,gg3(xmin),'rp')
legend('f(x)','极小点')
(3)运行命令文件
xmin =
-2.7756e-017
图 6.10 函数极小点分布观察图
例51:求函数y=3x4-5x2+x-1, 在[-2,2]的极大值、极小值和最大值、最小值。
解: 先画出函数图形,再确定求极值的初值和命令。
Matlab 命令为:fplot('3*(x.^4)-5*(x.^2)+x-1',[-2,2]), grid on↙
图6.11函数y=3x4-5x2+x-1的图像
(4)建设项目环境保护措施及其技术、经济论证。从图中看到函数在-1和1附近有两个极小值点,在0附近有一个极大值点. 下面我们分别求之,并标在图形上。
(1)建立M函数命令文件
function y=ff1(x)
y=3*x.^4-5*x.^2+x-1;
(2)建立M命令文件
二、安全预评价clf,
(1)环境的使用价值。环境的使用价值(UV)又称有用性价值,是指环境资源被生产者或消费者使用时,满足人们某种需要或偏好所表现出的价值,又分为直接使用价值、间接使用价值和选择价值。x=-2:.1:2;y=ff1(x);
(四)建设项目环境影响评价资质管理xmin1=fmin('ff1',-1,0)
(5)法律、行政法规和国务院规定的其他建设项目。xmin2=fmin('ff1',0,1.2)
xmaxs=fmin('-(3*(x.^4)-5*(x.^2)+x-1)',-1,1)
4.选择评价方法plot(x,y,'b',xmin1,ff1(xmin1),'rp',xmin2,ff1(xmin2),'rp')
hold on,plot(xmaxs,ff1(xmaxs),'rd')
legend('f(x)','极小点','极小点','极大点')
(3)运行命令文件
本章中环境影响评价制度,2010年的真题中全部集中在环境影响评价这一节。环境保护的对象,环境影响评价制度,环境影响评价文件的组成、文件的报批等是历年考试的热点。xmin1 =
-0.9593
xmin2 =
安全评价的基本原则是具备国家规定资质的安全评价机构科学、公正和合法地自主开展安全评价。 0.8580
xmaxs =
4.将环境影响价值纳入项目的经济分析0.1012
1.建设项目环境影响评价机构的资质管理
图6.12函数y=3x4-5x2+x-1及其极值点的图像
-------------
展开阅读全文