收藏 分享(赏)

Matlab数值积分函数.doc

上传人:11xg27ws 文档编号:9295040 上传时间:2019-08-01 格式:DOC 页数:11 大小:42.50KB
下载 相关 举报
Matlab数值积分函数.doc_第1页
第1页 / 共11页
Matlab数值积分函数.doc_第2页
第2页 / 共11页
Matlab数值积分函数.doc_第3页
第3页 / 共11页
Matlab数值积分函数.doc_第4页
第4页 / 共11页
Matlab数值积分函数.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、一.相关函数:%符号积分int(f,v)int(f,v,a,b)%数值积分trapz(x,y)%梯形法沿列方向求函数 Y 关于自变量 X 的积分cumtrapz(x,y)%梯形法沿列方向求函数 Y 关于自变量 X 的累计积分quad(fun,a,b,tol)%采用递推自适应 Simpson 法计算积分quad1(fun,a,b,tol)%采用递推自适应 Lobatto 法求数值积分dbquad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%二重(闭型)数值积分指令triplequad(fun,xmin,xmax,ymin,ymax,zmin,zmax,tol)%

2、三重(闭型)数值积分指令二.示例:例 1:计算 f(t)=exp(-t2)在0,1上的定积分本例演示:计算定积分常用方法symsxint(exp(-x2),0,1)ans=1/2*erf(1)*pi(1/2) %erf 为误差函数vpa(int(exp(-x2),0,1)ans=.7468241328124270d=0.001;x=0:d:1;d*trapz(exp(-x.2)ans=0.7468quad(exp(-x.2),0,1,1e-8)ans=0.7468例 2:计算 f(t)=1/log(t)在0,x,01-处为负无穷本例演示:用特殊函数表示的积分结果,如何用 mfun 指令(1)s

3、ymstxft=1/log(t);sx=int(ft,t,0,x) sx=-Ei(1,-log(x) %完全椭圆函数(2)x=0.5:0.1:0.9sx_n=-mfun(Ei,1,-log(x) x=0.5000 0.6000 0.7000 0.8000 0.9000sx_n=-0.3787 -0.5469 -0.7809 -1.1340 -1.7758 (3)%图示被函数和积分函数clfezplot(1/log(t),0.1,0.9) gridonholdonplot(x,sx_n,LineWidth,3) Char1=1/ln(t);Char2=int_0x1/ln(t)dt; title

4、(Char1, and ,Char2) legend(Char1,Char2,Location,SouthWest) 例 3:计算 f(t)=exp(-sin(t)在0,4上的定积分注意:本题被函数之原函数无“封闭解析表达式“,符号计算无法解题!本例演示:符号计算有限性(1)符号计算解法symstxft=exp(-sin(t)sx=int(ft,t,0,4) ft=exp(-sin(t)Warning:Explicitintegralcouldnotbefound.Insym.intat58sx=int(exp(-sin(t),t=04) (2)数值计算解法dt=0.05; %采样间隔 t=0

5、:dt:4; %数值计算适合于有限区间上,取有限个采样点 Ft=exp(-sin(t); Sx=dt*cumtrapz(Ft); %计算区间内曲线下图形面积,为小矩形面积累加得Sx(end) %所求定积分值%图示plot(t,Ft,*r,MarkerSize,4)holdonplot(t,Sx,.k,MarkerSize,15)holdoffxlabel(x)legend(Ft,Sx)ans=3.0632例 4:绘制积分图形,y=2/3*exp(-t/2)*cos(sqrt(3)/2*t);积分 s(x)=int(y,t,0,x)于0,4*pi上symsttaoy=2/3*exp(-t/2)*

6、cos(sqrt(3)/2*t); s=subs(int(y,t,0,tao),tao,t); %获得积分函数 subplot(2,1,1) %ezplot(y,0,4*pi),ylim(-0.2,0.7) %单变量符号函数可视化,多变量用ezsurfgridon subplot(2,1,2) ezplot(s,0,4*pi)gridontitle(s=inty(t)dt)int 的积分可以是定积分,也可以是不定积分(即有没有积分上下限都可以积)可以得到解析的解,比如你对 x2 积分,得到的结果是 1/3*x3,这是通过解析的方法来解的。如果int(x2,x,1,2)得到的结果是 7/3 qu

7、ad 是数值积分,它只能是定积分(就是有积分上下限的积分) ,它是通过 simpson 数值积分来求得的(并不是通过解析的方法得到解析解,再将上下限代入,而是用小梯形的面积求和得到的) 。如果 f=inline(x.2);quad(f,1,2)得到的结果是 2.333333,这个数并不是 7/3% 符号变量与符号表达式%1.符号变量与符号表达式%clear all ;clc;close all;% f =sym( sin(x)+5x)% f 符号变量名% sin(x)+5x 符号表达式% 符号标识% 符号表达式一定要用 单引号括起来 matlab 才能识别% 的内容可以是符号表达式,也可以是符

8、号方程。% 例: % f1=sym(a*x2+b*x+c) 二次三项式% f2=sym(a*x2+b*x+c=0 ) 方程% f3=sym(Dy+y2=1) 微分方程% 符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算% syms 命令用来建立多个符号量,一般调用格式为:% syms 变量 1 变量 2 . 变量 n % 符号矩阵的创建%2.符号矩阵的创建% 数值矩阵 A=1,2;3,4% A=a,b;c,d 不识别% 1.用 matlab 函数 sym 创建矩阵( symbolic 的缩写)% 命令格式:A=sym( ) % 符号矩阵内容同数值矩阵% 需用

9、 sym 指令定义% 需用 标识% 例如:A = sym(a , 2*b ; 3*a , 0)% A =% a, 2*b% 3*a, 0% 这就完成了一个符号矩阵的创建。% 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab 数值矩阵的一个重要区别。%2.用字符串直接创建矩阵(这种方法创建的没有什么用处)% 模仿 matlab 数值矩阵的创建方法% 需保证同一列中各元素字符串有相同的长度。% 例:A = a,2*b; 3*a, 0 % A =% a, 2*b% 3*a, 0%3.符号矩阵的修改% a.直接修改% 可用光标键找到所要修改的矩阵,直接修改% b.指令修改% 用 A1=sy

10、m(A,*,*,new) 来修改。 这个经过测试,不能运行% 用 A1=subs(A, new, old)来修改% % 例如:A = a, 2*b% 3*a, 0A = sym(a , 2*b ; 3*a , 0)% A1=sym(A,2,2,4*b) %等效于 A(2,2)=4*b;% A1 = a, 2*b% 3*a, 4*b A1=subs(A,0,4*b)A2=subs(A1, c, b) % A2 = a, 2*c % 3*a, 4*c %4.符号矩阵与数值矩阵的转换% 将数值矩阵转化为符号矩阵% 函数调用格式:sym(A)A=1/3,2.5;1/0.7,2/5% A =% 0.33

11、33 2.5000% 1.4286 0.4000B=sym(A)% ans =% 1/3, 5/2% 10/7, 2/5% 将符号矩阵转化为数值矩阵% 函数调用格式: numeric(A)% B =% 1/3, 5/2% 10/7, 2/5%numeric(B) 这个函数不存在了VPA(B,4) %发现这个函数可用% R = VPA(S) numerically evaluates each element of the double matrix% S using variable precision floating point arithmetic with D decimal % di

12、git accuracy, where D is the current setting of DIGITS. % The resulting R is a SYM.% % VPA(S,D) uses D digits, instead of the current setting of DIGITS.% D is an integer or the SYM representation of a number.% ans = % .3333, 2.500% 1.429, .4000% 符号运算%3. 符号运算% 例 1:f=sym( 2*x2+3*x-5); g=sym( x2+x-7);h

13、= f+g% h= % 3*x2+4*x-12% 例 2:f=sym(cos(x);g=sym(sin(2*x);f/g+f*g% ans =% cos(x)/sin(2*x)+cos(x)*sin(2*x)% 查找符号变量%4.查找符号变量% % findsym(expr) 按字母顺序列出符号表达式 expr 中的所有符号变量% % findsym(expr, N) 列出 expr 中离 x 最近的 N 个符号变量% 若表达式中有两个符号变量与 x 的距离相等,则 ASCII 码大者优先。% 常量 pi, i, j 不作为符号变量% 例:f=sym(2*w-3*y+z2+5*a);finds

14、ym(f)% ans =% a, w, y, zfindsym(f,3)% ans =% y,w,zfindsym(f,1)% ans =% y% 计算极限%5.计算极限% limit(f,x,a): 计算 f(x)当 x 趋向于 a 的极限% limit(f,a): 当默认变量趋向于 a 时的极限% limit(f): 计算 a=0 时的极限% limit(f,x,a,right): 计算右极限% limit(f,x,a,left): 计算左极限% 例:计算syms x h n; L=limit(log(x+h)-log(x)/h,h,0)% L = % 1/xM=limit(1-x/n)n

15、,n,inf)% M = % exp(-x)% 计算导数%6.计算导数% g=diff(f,v):求符号表达式 f 关于 v 的导数% g=diff(f):求符号表达式 f 关于默认变量的导数% g=diff(f,v,n):求 f 关于 v 的 n 阶导数syms x;f=sin(x)+3*x2; g=diff(f,x)% g = % cos(x)+6*x%计算积分%7.计算积分% int(f,v,a,b): 计算定积分 f(v)从 a 到 b% int(f,a,b): 计算关于默认变量的定积分% int(f,v): 计算不定积分 f(v)% int(f): 计算关于默认变量的不定积分f=(x

16、2+1)/(x2-2*x+2)2;I=int(f,x)% I = % 3/2*atan(x-1)+1/4*(2*x-6)/(x2-2*x+2)K=int(exp(-x2),x,0,inf)% K = % 1/2*pi(1/2)%函数运算%8.函数运算% 1合并、化简、展开等函数% collect 函数:将表达式中相同幂次的项合并;% factor 函数:将表达式因式分解;% simplify 函数:利用代数中的函数规则对表达式进行化简;% numden 函数:将表示式从有理数形式转变成分子与分母形式。% 2反函数% finverse(f,v) 对指定自变量为 v 的函数 f(v)求反函数% 3

17、复合函数% compose(f,g) 求 f=f(x)和 g=g(y)的复合函数 f(g(y)% compose(f,g,z) 求 f=f(x)和 g=g(y)的复合函数 f(g(z)% 4表达式替换函数(前面讲到了)% subs(s) 用赋值语句中给定值替换表达式中所有同名变量 % subs (s, old, new) 用符号或数值变量 new 替换 s 中的符号变量 old% mtaylor(f,n) 泰勒级数展开% ztrans(f) Z 变换% Invztrans(f) 反 Z 变换% Laplace(f) 拉氏变换% Invlaplace(f) 反拉氏变换% fourier(f) 付

18、氏变换% Invfourier(f) 反付氏变换%clearf1 =sym(exp(x)+x)*(x+2);f2 = sym(a3-1);f3 = sym(1/a4+2/a3+3/a2+4/a+5);f4 = sym(sin(x)2+cos(x)2);collect(f1)% ans =% x2+(exp(x)+2)*x+2*exp(x)expand(f1)% ans = % exp(x)*x+2*exp(x)+x2+2*xfactor(f2)% ans = % (a-1)*(a2+a+1)m,n=numden(f3)%m 为分子,n 为分母% m =% 1+2*a+3*a2+4*a3+5*a

19、4% n =% a4simplify(f4)% ans =% 1clearsyms x yfinverse(1/tan(x) %求反函数,自变量为 x% ans =% atan(1/x)f = x2+y;finverse(f,y) %求反函数,自变量为 y% ans =% -x2+y clearsyms x y z t u;f = 1/(1 + x2); g = sin(y); h = xt; p = exp(-y/u);compose(f,g) %求 f = f(x) 和 g = g(y)的复合函数 f(g(y)% ans =% 1/(1+sin(y)2) clearsyms a bsubs

20、(a+b,a,4) %用 4 替代 a+b 中的 a% ans =% 4+bsubs(cos(a)+sin(b),a,b,sym(alpha),2) %多重替换% ans =% cos(alpha)+sin(2) f=sym(x2+3*x+2)% f =% x2+3*x+2subs(f, x, 2) %求解 f 当 x=2 时的值% ans =% 12% 方程求解%9.方程求解% 1 代数方程% 代数方程的求解由函数 solve 实现:% solve(f) 求解符号方程式 f % solve(f1,fn) 求解由 f1,fn 组成的代数方程组 % % 2 常微分方程% 使用函数 dsolve

21、来求解常微分方程:% dsolve(eq1, eq2, ., cond1, cond2, ., v)clearsyms a b c xf=sym(a*x*x+b*x+c=0)solve(f) % ans =% 1/2/a*(-b+(b2-4*c*a)(1/2)% 1/2/a*(-b-(b2-4*c*a)(1/2)solve(1+x=sin(x) % ans =% -1.9345632107520242675632614537689dsolve( Dy=x ,x) %求微分方程 y=x 的通解,指定 x 为自变量。% ans =% 1/2*x2+C1dsolve( D2y=1+Dy ,y(0)=

22、1,Dy(0)=0 ) %求微分方程 y=1+y的解,加初始条件% ans = % -t+exp(t)x,y=dsolve(Dx=y+x,Dy=2*x) %微分方程组的通解% x =% -1/2*C1*exp(-t)+C2*exp(2*t) % y = % C1*exp(-t)+C2*exp(2*t)% ezplot(y)方程解 y(t)的时间曲线图% funtoolfuntool %该命令将生成三个图形窗口,Figure No.1 用于显示函数 f 的图形,% Figure No.2 用于显示函数 g 的图形,% Figure No.3 为一可视化的、可操作与显示一元函数的计算器界面。% 在

23、该界面上由许多按钮,可以显示两个由用户输入的函数的计算结果:% 加、乘、微分等。funtool 还有一函数存储器,允许用户将函数存入,% 以便后面调用。在开始时,% funtool 显示两个函数 f(x) = x 与 g(x) = 1 在区间-2*pi, 2*pi上的图形。% Funtool 同时在下面显示一控制面板,% 允许用户对函数 f、g 进行保存、更正、重新输入、联合与转换等操作。% taylortool %该命令生成一图形用户界面,显示缺省函数 f=x*cos(x)% 在区间-2*pi ,2*pi内的图形,同时显示函数 f% 的前 N=7 项的 Taylor 多项式级数和(在 a=0 附近的) 图形,% 通过更改 f(x)项可得不同的函数图形。% taylortool(f) %对指定的函数 f,用图形用户界面显示出 Taylor 展开式% maple 内核访问函数% % 可以访问 maple 内核的 matlab 函数:% maple 访问 maple 内核函数% mapleinit maple 函数初始化% mpa maple 函数定义% mhelp maple 函数帮助命令% procread maple 函数程序安装% 具体的操作参看相关说明

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报