一.相关函数:

%符号积分

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)%三重(闭型)数值积分指令

二.示例:

例1:计算f(t)=exp(-t^2)在[0,1]上的定积分

本例演示:计算定积分常用方法

>>symsx

int(exp(-x^2),0,1)

ans=

1/2*erf(1)*pi^(1/2) %erf为误差函数

>>vpa(int(exp(-x^2),0,1))

ans=

.7468241328124270

>>d=0.001;x=0:d:1;d*trapz(exp(-x.^2))

ans=

0.7468

>>quad('exp(-x.^2)',0,1,1e-8)

ans=

0.7468

例2:计算f(t)=1/log(t)在[0,x],0

注意:被积函数于x=0无义,在x-->1^-处为负无穷

本例演示:用特殊函数表示的积分结果,如何用mfun指令

(1)

symstx

ft=1/log(t);

sx=int(ft,t,0,x)

sx=

-Ei(1,-log(x)) %完全椭圆函数

(2)

x=0.5:0.1:0.9

sx_n=-mfun('Ei',1,-log(x))

x=

0.5000  0.6000  0.7000  0.8000  0.9000

sx_n=

-0.3787 -0.5469 -0.7809 -1.1340 -1.7758

(3)%图示被函数和积分函数

clf

ezplot('1/log(t)',[0.1,0.9])

gridon

holdon

plot(x,sx_n,'LineWidth',3)

Char1='1/ln(t)';

Char2='{int_0^x}1/ln(t)dt';

title([Char1,' and  ',Char2])

legend(Char1,Char2,'Location','SouthWest')

例3:计算f(t)=exp(-sin(t))在[0,4]上的定积分

注意:本题被函数之原函数无"封闭解析表达式",符号计算无法解题!

本例演示:符号计算有限性

(1)符号计算解法

symstx

ft=exp(-sin(t))

sx=int(ft,t,0,4)

ft=exp(-sin(t))

Warning:Explicitintegralcouldnotbefound.

>Insym.intat58

sx=

int(exp(-sin(t)),t=0..4)

(2)数值计算解法

dt=0.05;          %采样间隔

t=0:dt:4;           %数值计算适合于有限区间上,取有限个采样点

Ft=exp(-sin(t));

Sx=dt*cumtrapz(Ft);      %计算区间内曲线下图形面积,为小矩形面积累加得

Sx(end)        %所求定积分值

%图示

plot(t,Ft,'*r','MarkerSize',4)

holdon

plot(t,Sx,'.k','MarkerSize',15)

holdoff

xlabel('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]上

symsttao

y=2/3*exp(-t/2)*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]) %单变量符号函数可视化,多变量用ezsurf

gridon

subplot(2,1,2)

ezplot(s,[0,4*pi])

gridon

title('s=inty(t)dt')

int的积分可以是定积分,也可以是不定积分(即有没有积分上下限都可以积)可以得到解析的解,比如你对x^2积分,得到的结果是1/3*x^3,这是通过解析的方法来解的。如果int(x^2,x,1,2)得到的结果是7/3

quad是数值积分,它只能是定积分(就是有积分上下限的积分),它是通过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才能识别

% ' ' 的内容可以是符号表达式,也可以是符号方程。

% 例: % f1=sym('a*x^2+b*x+c') —— 二次三项式

% f2=sym('a*x^2+b*x+c=0' )—— 方程

% f3=sym('Dy+y^2=1') ——微分方程

% 符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算

% syms 命令用来建立多个符号量,一般调用格式为:

% syms 变量1 变量2 ... 变量n %% 符号矩阵的创建

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%2.符号矩阵的创建

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 数值矩阵A=[1,2;3,4]

% A=[a,b;c,d] —— 不识别

% @1.用matlab函数sym创建矩阵(symbolic的缩写)

% 命令格式:A=sym('[ ]') % ※ 符号矩阵内容同数值矩阵

% ※ 需用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=sym(A,*,*,'new') 来修改。 这个经过测试,不能运行

% ※用A1=subs(A, 'new', 'old')来修改

% % 例如:A =[ a, 2*b]

% [3*a, 0]

A = 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.3333 2.5000

% 1.4286 0.4000

B=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 % digit 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*x^2+3*x-5'); g=sym( 'x^2+x-7');

h= f+g

% h= % 3*x^2+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+z^2+5*a');

findsym(f)

% ans =

% a, w, y, z

findsym(f,3)

% ans =

% y,w,z

findsym(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/x

M=limit((1-x/n)^n,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*x^2; 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^2+1)/(x^2-2*x+2)^2;

I=int(f,x)

% I = % 3/2*atan(x-1)+1/4*(2*x-6)/(x^2-2*x+2)

K=int(exp(-x^2),x,0,inf)

% K = % 1/2*pi^(1/2)

%%函数运算

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%8.函数运算

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 1.合并、化简、展开等函数

% collect函数:将表达式中相同幂次的项合并;

% factor函数:将表达式因式分解;

% simplify函数:利用代数中的函数规则对表达式进行化简;

% numden函数:将表示式从有理数形式转变成分子与分母形式。

% 2.反函数

% finverse(f,v) 对指定自变量为v的函数f(v)求反函数

% 3.复合函数

% 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) —— 付氏变换

% Invfourier(f) —— 反付氏变换

%%

clear

f1 =sym('(exp(x)+x)*(x+2)');

f2 = sym('a^3-1');

f3 = sym('1/a^4+2/a^3+3/a^2+4/a+5');

f4 = sym('sin(x)^2+cos(x)^2');

collect(f1)

% ans =

% x^2+(exp(x)+2)*x+2*exp(x)

expand(f1)

% ans = % exp(x)*x+2*exp(x)+x^2+2*x

factor(f2)

% ans = % (a-1)*(a^2+a+1)

[m,n]=numden(f3)

%m为分子,n为分母

% m =

% 1+2*a+3*a^2+4*a^3+5*a^4

% n =

% a^4

simplify(f4)

% ans =

% 1

clear

syms x y

finverse(1/tan(x)) %求反函数,自变量为x

% ans =

% atan(1/x)

f = x^2+y;

finverse(f,y) %求反函数,自变量为y

% ans =

% -x^2+y clear

syms x y z t u;

f = 1/(1 + x^2); g = sin(y); h = x^t; p = exp(-y/u);

compose(f,g) %求f = f(x) 和 g = g(y)的复合函数f(g(y))

% ans =

% 1/(1+sin(y)^2) clear

syms a b

subs(a+b,a,4) %用4替代a+b中的a

% ans =

% 4+b

subs(cos(a)+sin(b),{a,b},{sym('alpha'),2}) %多重替换

% ans =

% cos(alpha)+sin(2) f=sym('x^2+3*x+2')

% f =

% x^2+3*x+2

subs(f, 'x', 2) %求解f当x=2时的值

% ans =

% 12

%% 方程求解

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%9.方程求解

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 1代数方程

% 代数方程的求解由函数solve实现:

% solve(f) 求解符号方程式f % solve(f1,…,fn) 求解由f1,…,fn组成的代数方程组 % % 2常微分方程

% 使用函数dsolve来求解常微分方程:

% dsolve('eq1, eq2, ...', 'cond1, cond2, ...', 'v')

clear

syms a b c x

f=sym('a*x*x+b*x+c=0')

solve(f)

% ans =

% [ 1/2/a*(-b+(b^2-4*c*a)^(1/2))]

% [ 1/2/a*(-b-(b^2-4*c*a)^(1/2))]

solve('1+x=sin(x)')

% ans =

% -1.9345632107520242675632614537689

dsolve( ' Dy=x ','x') %求微分方程y'=x的通解,指定x为自变量。

% ans =

% 1/2*x^2+C1

dsolve(' D2y=1+Dy ','y(0)=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)的时间曲线图

%% funtool

funtool %该命令将生成三个图形窗口,Figure

No.1用于显示函数f的图形,

% Figure No.2用于显示函数g的图形,

% Figure No.3为一可视化的、可操作与显示一元函数的计算器界面。

% 在该界面上由许多按钮,可以显示两个由用户输入的函数的计算结果:

% 加、乘、微分等。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函数程序安装

% 具体的操作参看相关说明

matlab 积分函数曲线,matlab数值积分函数相关推荐

  1. Matlab二维曲线之fplot函数

    fplot函数的格式:fplot(f, lims, 选项) 其中f代表一个函数,通常采用函数句柄的形式.lims为x轴的取值范围,用二元向量[xmin, xmax]描述,默认值为[-5, 5].选项定 ...

  2. 如何用python画函数曲线_python 画函数曲线示例 用python 怎么画函数图像

    Python如何画函数的曲线 输入以下代码导入小编们用到的函数库. >>> import numpy as np >>> import matplotlib.pyp ...

  3. matlab绘制频散曲线,Matlab绘制频散曲线程序代码.docx

    Matlab绘制频散曲线程序代码.docx 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. ...

  4. matlab 积分函数曲线,matlab积分函数

    一.相关函数: %符号积分 int(f,v) int(f,v,a,b) %数值积分 trapz(x,y)%梯形法沿列方向求函数Y关于自变量X的积分 cumtrapz(x,y)%梯形法沿列方向求函数Y关 ...

  5. matlab 积分函数曲线,Matlab之函数积分 | 学步园

    Matlab之函数积分 一元函数(一重)积分: 求一元函数积分有quad函数,quadl函数,int函数: quad和quadl: quad和quadl两个函数,他们使用不同的 例:求 的积分: f= ...

  6. Matlab二维曲线之plot函数

    1. plot函数的基本用法 plot(x, y):其中,x和y分别存储x坐标与y坐标. 代码示例: clc; clear all;x = [1,3,4,6]; %x数据 y = [2,3,4,5]; ...

  7. matlab中gama,matlab积分结果中的gamma()函数参数问题,急求解答!!!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 syms t b x K0 positive f_cosb =x^(-11/6)*exp(-t*x)*cos(b*x) f_cosb_int=int(f_ ...

  8. matlab解含gamma函数的方程组,matlab积分结果中的gamma()函数参数问题,急求解答!!!...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 syms t b x K0 positive f_cosb =x^(-11/6)*exp(-t*x)*cos(b*x) f_cosb_int=int(f_ ...

  9. 怎样用MATLAB画二次函数曲线,matlab画二次函数图像

    [8 70 118 100 9 0 5]; 以上是每一个 X 和 Y 对应的坐标,请问如何编程能够绘制平滑曲线,这个图形就像二次函数一样的 如果要在图中绘制一条直线加上 y=...... MATLAB ...

  10. matlab 画非线性曲线,MATLAB实例:非线性曲线拟合

    MATLAB实例:非线性曲线拟合 用最小二乘法拟合非线性曲线,给出两种方法:(1)指定非线性函数,(2)用傅里叶函数拟合曲线 1. MATLAB程序 clear clc xdata=[0.1732;0 ...

最新文章

  1. 2021-7-20 pytorch学习基础笔记
  2. rpm包管理功能全解
  3. 在RAC中重建EM(转)
  4. 用python倒序输出一个字符串_Python字符串逆序输出的实例讲解
  5. oracle复合索引介绍(多字段索引)
  6. 【嵌入式】C语言高级编程-长度为0的数组(05)
  7. 进入Google:《Google成功的七堂课》读后感
  8. C++ 的Tool工具收集
  9. FineReport(二)帆软报表图表的
  10. 谷歌再现大规模宕机!
  11. 【渝粤教育】国家开放大学2019年春季 2328仓储与配送管理 参考试题
  12. autojs遍历当前页面所有控件_精心推荐-自动化软件AutoJs(薅羊毛?)
  13. 轻松搞定——JAVA实现DOC转PDF功能
  14. SpringBoot中使用MyBatis-Plus是如何解决Invalid bound statement (not found)这个异常的
  15. linux做gpt分区,Linux下的GPT分区
  16. 使用 prismjs 在网页中高亮显示代码
  17. 数据存取演变史、数据库软件应用史、数据库的本质、分类、 MySQL数据库、系统服务制作、基本的SQL语句
  18. 山东省一个区和天津市一个区,名字一模一样!
  19. http://windowsandroid.cn.uptodown.com/download
  20. 在本地如何启动Vue项目

热门文章

  1. C语言编程必背单词百度云,c语言编程必背单词-20210403022023.pdf-原创力文档
  2. 数位板驱动(手绘板驱动),wintab 8192级压感,TabletDriver通用, 支持windows, mac系统
  3. 桌面高效便捷的多窗口调整管理工具 - AquaSnap
  4. 知网下载学位论文PDF版本的一个方法
  5. vue显示农历_vue农历日历
  6. matlab绘图和python绘图
  7. 从看《长津湖》想到的数字化转型
  8. 数值分析(2)-误差
  9. 《OpenGL编程指南》第8版 第9版 VS2015 VS2017配置方法
  10. 用C语言实现“电子词典”项目