利用MATLAB求解微积分的方法

合集下载

MATLAB教程【5】微积分

MATLAB教程【5】微积分
将结果乘以h。 要 将结果乘以 。
Z=trapz(x,y) 计算 对x的梯形积分,其中 、y定义函数关系 计算y 的梯形积分, 定义函数关系y=f(x)。 的梯形积分 其中x、 定义函数关系 。 Z=trapz(x,y,dim) 对dim指定的 的维进行积分。 指定的y的维进行积分 指定的 的维进行积分。
1.4.7 数 值 积 分
一、数值积分的基本原理
b b
I1 = ∫ f ( x)dx, I 2 = ∫ p ( x)dx
a a
f(b)
T=
b−a [ f (a ) + f (b )] 2
梯形公式
f(a)
将积分区间[a,b]划分为 等份,步长 划分为n等份 将积分区间 划分为 等份, h=(b-a)/n,xk=a+bk构造求积公式 构造求积公式
( I n = ( b − a )∑ C k n ) f ( x k ) k =0 n
牛顿 − 柯特斯公式
a
b n = 1即梯形公式, n = 2时为辛普生公式 即梯形公式,
b−a a+b S= [ f (a ) + 4 f ( ) + f ( b )] 6 2
1.4.7 数 值 积 分
二、数值积分的实现 1、梯形积分:对矢量、矩阵和多维列阵进行梯形积分 、梯形积分:对矢量、 Z=trapz(y) 计算 的数值梯形积分,步长默认为 ,若不是 而是 , 计算y 的数值梯形积分,步长默认为1,若不是1 而是h,
例:用不同的方法求函 数 f ( x )的数值导数并作图 f ( x) = f '( x) = x 3 + 2 x 2 − x + 12 + 6 x + 5 + 5 x + 2 3x2 + 4x − 1 2 x + 2 x − x + 12

第3讲 MATLAB在微积分中的应用

第3讲 MATLAB在微积分中的应用

2)求数值解的方法 1. 欧拉方法 若步长h较小,则可用差商近似代替导数,即 y ( x + h) − y ( x ) y '( x) ≈ h 于是便得公式 yi +1 ≈ yi + hf ( xi , yi ) , i = 0,1, L , n − 1. y0 = y ( x0 ) 此法称为欧拉方法。
例7 用MATLAB软件求微分方程 du = 1+ u2 dt 的通解; 例8 用MATLAB软件求微分方程 d 2 y dy 2 + 4 + 29 y = 0 dx dx y(0) = 0, y ' (0) = 15 的特解。
例9 用MATLAB软件求微分方程组 dx dt = 2 x − 3 y + 3z dy = 4 x − 5 y + 3z dt dz dt = 4 x − 4 y + 2 z 的通解.
2. 改进的欧拉方法 对方程y ' = f ( x, y )两边从xi到xi +1积分,再利用梯形公式,得 y ( xi +1 ) − y ( xi ) = ∫
xi +1 xi
f ( x, y ( x )) dx
xi +1 − xi ≈ [ f ( xi , y ( xi )) + f ( xi +1 , y ( xi +1 ))] 2 h 于是有公式: yi +1 ≈ yi + [ f ( xi , yi ) + f ( xi +1 , yi +1 )], y0 = y ( x0 ) 2 上式中右边yi +1的值可用欧拉方法计算,即有 yi +1 = yi + hf ( xi , yi ) i = 0,1, L , n − 1. h yi +1 = yi + 2 [ f ( xi , yi ) + f ( xi +1 , yi +1 )] 此法称为改进的欧拉方法。

Matlab在微积分中的简单应用

Matlab在微积分中的简单应用
'' '
dy xy 2 • 3、 2 dx x y
y(0)=1
小结
• 1 用”diff()” 求数值微分和符号微分.
• 2 用”int()”、”Int()”直接积分 • 3 用“dsolve()”求微分方程的通解、特解
第6讲
Matlab在微积分中的简单应用
实验目的
• 1学会用”diff()” 求数值微分和符
号微分. • 2学会用”int()”、”Int()”直接积 分并写出积分表达式. • 3学会用”dsolve()”求微分方程的 通解、特解。
复习回顾(一)
计算下列函数的导数
ylog ax
1 y x ln a

复习回顾(二)
求下列的不定积分
1 x C 1 x2 dx arctan
1 x 2 1 1 2 1x )C 1 x2 dx 21x2d(1x ) 2ln(
分析:
1 2 1 2 xdx dx d ( 1 x) 2 2
二、熟悉以下Matlab中的求积分命 令
sin xdx (2)
e dx
2x
2 求下列函数的定积分
(1) e dx (2)
2 ( 3 x ) dx 2x1 0 1
复习回顾(三)
dy 3 2x y 的通解 • 求微分方程 dx dy • 解:将所给方程分离变量,得 2 x 3 dx y • 等式两端积分,有 dy 2x3dx
• 2求特解的命令格式 • r=dsolve(‘微分方程’,‘初值条件’,‘自变 量’)
• 3求微分方程组的命令格式
• [y1,y2,…]=dsolve(‘微分方程1’,‘微分方程 2’,…,‘初值条件1’,’初值条件2’ ,…,‘自 变量1’, ‘自变量2’,…)

matlab微积分基本运算

matlab微积分基本运算

matlab 微积分基本运算§1 解方程和方程组解1. 线性方程组求解对于方程 AX = B ,其中 A 是( m ×n )的矩阵有三种情形:1)当n=m 且A 非奇异时,此方程为“恰定”方程组。

2)当 n > m 时,此方程为“超定”方程组。

3)当n<m 时,此方程为“欠定”方程组。

下面就三种情形的求解分别作一说明:(1) MATLAB 解恰定方程 A* X = B 的方法1)采用求逆运算解方程x=inv(A)*B2)采用左除运算解方程x=A\B例1 “求逆”法和“左除”法求下列方程组的解⎪⎪⎪⎩⎪⎪⎪⎨⎧=+=++=++=++=+150650650651655454343232121x x x x x xx x x x x x x在Matlab 编辑器中建立M 文件fanex1.m :A=[5 6 0 0 01 5 6 0 00 1 5 6 00 0 1 5 60 0 0 1 5];B=[1 0 0 0 1]';R_A=rank(A) %求秩X1=A\B %用"左除"法解恰定方程所得的解X2=inv(A)*B %用"求逆"法解恰定方程所得的解运行后结果如下R_A =5X1 =2.2662-1.72181.0571-0.59400.3188X2 =2.2662-1.72181.0571-0.59400.3188两种方法所求方程组的解相同。

(2)MATLAB 解超定方程AX=B 的方法对于方程 AX = B ,其中 A 是( m ×n )的矩阵, n > m ,如果A 列满秩,则此方程是没有精确解的。

然而在实际工程应用中,求得其最小二乘解也是有意义的。

基本解法有:1)采用求伪逆运算解方程x=pinv(A)*B说明:此解为最小二乘解x=inv(A ’*A)*A*B,这里pinv(A) =inv(A ’*A)*A.2)采用左除运算解方程x=A\B例2 “求伪逆”法和“左除”法求下列方程组的解⎪⎩⎪⎨⎧=+=+=+12214212212121x x x x x x命令如下:>> a=[1 2;2 4;2 2];>> b=[1,1,1]';>> xc=a\b %用左除运算解方程运行得结果:xc =0.40000.1000>> xd=pinv(a)*b %用求伪逆运算解方程运行得结果:xd =0.40000.1000>> a*xc-b %xc 是否满足方程ax=b运行得结果:ans =-0.40000.20000.0000可见xc 并不是方程的精确解。

Matlab微积分问题计算机求解实验

Matlab微积分问题计算机求解实验

>> q2=quad('quad1',0,1)
【例】求exp(-x2)在[0,1]上的积分。
数值积分
3、编写被积函数表达式,函数名为f=@(x).exp(-x.^2);
>> q2=quad(f,0,1)
数值积分
(2)梯形法(被积函数由一个表格定义)
trapz函数采用梯形法求取数值积分,适用于由表格形式定义的函数关系的求定积分问题,求值速度快, 但精度差。
syms x; f=abs(x)/x;%给出待展开的函数 xx=[-pi:pi/200:pi]; xx=xx(xx~=0); xx=sort([xx,-eps,eps]);
Fourier级数的Matlab程序
yy=subs(f,x,xx);%计算f(x)的值 for i=1:20
[A,B,F]=fseries(f,x,n); y=subs(F,x,xx); subplot(4,5,n); plot(xx,yy);%画出f(x)的图像 hold on plot(xx,y);%画出Fourier级数的图像 end
K ex2dx 0
计算积分
21
( x1)2
练习:
e 2 dx,
0 2
e2t 2 x 2 1
dx
cost (2 x 2 3 x 1)2
符号求和
symsum(u,n,n0,nn): symsum(f,a,b): 关于默认变量求和
例:计算级数
S 1 及其前100项的部2 分和 n n 1
>> syms n; f=1/n^2;
>> S=symsum(f,n,1,inf)
>> S100=symsum(f,n,1,100)

第三章 matlab求解微积分

第三章 matlab求解微积分

第三章 微积分的数学实验3.1极限与一元微积分3.1.1 初等运算1.定义单个或多个符号变量:syms x y z t ;定义单个符号变量或者符号函数还可以用单引号定义,如x=’x ’,f=’sin(x^2)+2*x-1’。

符号表达式的反函数运算g=finverse(f),g 是返回函数f 的反函数。

例1 求sin(1)y x =-的反函数>>syms x>>y=sin(x-1); g=finverse(y),结果为 g=1+asin(t)2. f actor(f) 因式分解函数f3.Collect(f) 对函数f 合并同类项4. expand(f) 将函数f 表达式展开5. simple(f) 找出表达式的最简短形式(有时需要用2次)6. roots (p )对多项式p 求根函数。

7. solve(F) 一般方程的求根函数例2 解方程2510x x +-=解 >>syms x>>solve(x^2+5*x-1)结果为x =[ -5/2+1/2*29^(1/2) -5/2-1/2*29^(1/2)]8.fzero(f,x0)或fzero(f,[a,b]) 在初始点x0处开始或在区间[a,b]上搜索函数的零点,f(a)与f(b)需要符号相反。

3.1.2 Matlab计算函数的极限函数形式:1)limit(F,x,a),求函数F在 x ->a时的极限。

2)limit(F,a),默认其中的变量为极限变量.3)limit (F),默认其中的变量为极限变量且趋向于0.4)limit(F,x,a,'right')或limit(F,x,a,’le ft') 求函数F在x->a时的右、左极限.例3 >>syms x a t h; %syms作用是申明x,a,t,h是符号变量,不需先赋值再调用。

>>limit(sin(x)/x) %结果为 1>>limit((x-2)/(x^2-4),2) %结果为 1/4>>limit((1+2*t/x)^(3*x),x,inf) %结果为 exp(6*t)>>limit(1/x,x,0,'right') %结果为 inf>>limit(1/x,x,0,'left') %结果为 -inf>>limit((sin(x+h)-sin(x))/h,h,0) %结果为 cos(x)>>v = [(1 + a/x)^x, exp(-x)];limit(v,x,inf,'left') %结果为[exp(a),0]3.1.3 Matlab计算导数与微分1.一元导数和微分diff函数用以计算函数的微分和导数,相关的函数语法有下列4个:diff(f) 返回f对预设独立变量的一次导数值diff(f,'t')或diff(f,t) 返回f对独立变量t的一次导数(值)diff(f,n) 返回f对预设独立变量的n阶导数(值)diff(f,'t',n) 或diff(f,t,n)返回f对独立变量t的n阶导数(值)这里尽管自变量已经作为符号变量,可以不用syms说明,但是在具体执行diff(f)、diff(f,'t')和diff(f,t)会出现差异,有的能够执行,有的不能够,有的执行符号微分,有的执行数值微分,所以比较麻烦。

MATLAB第三章

MATLAB第三章

第三章微积分问题的计算机求解一、实验内容:题目1.试求出如下极限。

①limx→∞(3x +9x )1/ x,②lim x→∞[(x+2)x+2(x+3)x+3 ]/(x+5)2x+5【分析】:该题为单变量函数的极限。

极限问题可以用limit()函数直接求出。

要注意该函数的调用格式为:L=limit(fun,x,x0)(求极限),L=limit(fun,x,x0,’left’或’right’)(求极限)。

还需注意一开始要对函数的字符进行申明。

【解答】:(1)输入如下语句:>> syms x;f=(3^x+9^x)^(1/x);L=limit(f,x,inf)语句运行后显示如下:L =9(2)输入如下语句:>>syms x;f=(x+2)^(x+2)*(x+3)^(x+3)/(x+5)^(2*x+5);>> L=limit(f,x,inf)语句运行后显示如下:L =exp(-5)题目2.试求下面的双重极限。

①lim x→−1y→2 (x2y+xy3)/(x+y) 3,②limx→0 y→0 xy /√(xy+1)−1,③limx→0y→0 [1−cos(x2+y2)]/(x2+y2)e x2+y2。

【分析】:该题为多变量函数的极限问题。

他可以用嵌套使用limit()函数来解决。

在MATLAB上可以用L=limit(limit(f,x,x0),y,y0)或者L=limit(f,y,y0),x,x0)来解决。

其思想是所有的先关于X求导,再所有的关于y求导。

【解答】:(1)输入如下语句:>> syms x y>> f=(x^2*y+x*y^3)/(x+y)^3;>> L=limit(limit(f,x,-1),y,2)语句运行后显示如下:L =-6(2)输入如下语句:>> syms x yf=(x*y)/(sqrt(x*y+1)-1);L=limit(limit(f,x,0),y,0)按ENTER键,语句运行后显示如下:L =2(3)输入如下语句:>> syms x yf=(1-cos(x^2+y^2))/(sqrt(x^2+y^2)*exp(x^2+y^2));L=limit(limit(f,x,0),y,0)按ENTER键,语句运行后显示如下:L =题目3.求出下面函数的导数。

第七章 MATLAB微积分数值计算

第七章 MATLAB微积分数值计算

相同维数的向量U,且 1 U1 2 ( V4 4V3 5V2 2V1 ) h 1 U i 2 (Vi 1 2Vi Vi 1 ), (1 i n) h 1 U n 2 (2Vn 5Vn 1 4Vn 2 Vn 3 ) h 默认的步长为1。 U=4*del2(V,h1,h2),对矩阵V,横向(x方向)以步长h1,纵向(y方
diff调用格式为:
Dy=diff(Y):计算向量Y的向前差分,并把结果赋值给向量Dy Dy(i)=Y(i+1)-Y(i),i=1,2,…,n-1。注意向量Dy元素个数比Y少一个
Dy=diff(Y,n):计算向量Y的n阶向前差分。注意向量Dy元素个数比Y少n个.例如:
diff(Y,2)=diff(diff(Y))=DX(i+1)-DX(i)= Y(i+2)-2Y(i+1)+Y(i) , i=1,2 ……n-2。
计算积分,可以采取逐步缩小步长h的办法。即先任
取步长h进行计算,然后取较小步长 h’ 进行计算,如果两
次计算结果相差较大,则取更小步长进行计算,如此下去, 直到相邻两次计算结果相差不大为止,取最小步长算出的 结果作为积分值。这种方法称为变步长积分法。 利用两种步长计算积分时,通常取h’=h/2 。而每次
x
4
精度为O(∆X4)的高阶中心差分算法
yi yi yi yi 2 8 yi 1 8 yi 1 yi 2 12 x yi 2 16 yi 1 30 yi 16 yi 1 yi 2 12 x
2
yi 3 8 yi 2 13 yi 1 13 yi 1 8 yi 2 yi 3 8 x
7.1 数值微分 7.2 数值积分 7.3 常微分方程的数值解法

Matlab在微积分中的应用

Matlab在微积分中的应用

Matlab 在微积分中的应用命令1 极限函数 limit格式 limit(F,x,a) %计算符号表达式F=F(x)的极限值,当x →a 时。

limit(F,a) %用命令findsym(F)确定F 中的自变量,设为变量x ,再计算F 的极限值,当x →a 时。

limit(F) %用命令findsym(F)确定F 中的自变量,设为变量x ,再计算F 的极限值,当x →0时。

limit(F,x,a,'right')或limit(F,x,a,'left') %计算符号函数F 的单侧极限:左极限x →a - 或右极限x →a+。

例3-25>>syms x a t h n;>>L1 = limit((cos(x)-1)/x)>>L2 = limit(1/x^2,x,0,'right')>>L3 = limit(1/x,x,0,'left')>>L4 = limit((log(x+h)-log(x))/h,h,0)>>v = [(1+a/x)^x, exp(-x)];>>L5 = limit(v,x,inf,'left')>>L6 = limit((1+2/n)^(3*n),n,inf)计算结果为:L1 =L2 =infL3 =-infL4 =1/xL5 =[ exp(a), 0]L6 =exp(6)命令2 导数(包括偏导数)函数 diff格式 diff(S,'v')、diff(S,sym('v')) %对表达式S 中指定符号变量v 计算S 的1阶导数。

diff(S) %对表达式S 中的符号变量v 计算S 的1阶导数,其中v=findsym(S)。

diff(S,n) %对表达式S 中的符号变量v 计算S 的n 阶导数,其中v=findsym(S)。

第三章-matlab求解微积分

第三章-matlab求解微积分

第三章 微积分的数学实验3.1极限与一元微积分3.1.1 初等运算1.定义单个或多个符号变量:syms x y z t ;定义单个符号变量或者符号函数还可以用单引号定义,如x=’x ’,f=’sin(x^2)+2*x-1’。

符号表达式的反函数运算g=finverse(f),g 是返回函数f 的反函数。

例1 求sin(1)y x =-的反函数>>syms x>>y=sin(x-1); g=finverse(y),结果为 g=1+asin(t)2. f actor(f) 因式分解函数f3.Collect(f) 对函数f 合并同类项4. expand(f) 将函数f 表达式展开5. simple(f) 找出表达式的最简短形式(有时需要用2次)6. roots (p )对多项式p 求根函数。

7. solve(F) 一般方程的求根函数例2 解方程2510x x +-=解 >>syms x>>solve(x^2+5*x-1)结果为x =[ -5/2+1/2*29^(1/2) -5/2-1/2*29^(1/2)]8.fzero(f,x0)或fzero(f,[a,b]) 在初始点x0处开始或在区间[a,b]上搜索函数的零点,f(a)与f(b)需要符号相反。

3.1.2 Matlab计算函数的极限函数形式:1)limit(F,x,a),求函数F在 x ->a时的极限。

2)limit(F,a),默认其中的变量为极限变量.3)limit (F),默认其中的变量为极限变量且趋向于0.4)limit(F,x,a,'right')或limit(F,x,a,’left') 求函数F在x->a时的右、左极限.例3 >>syms x a t h; %syms作用是申明x,a,t,h是符号变量,不需先赋值再调用。

>>limit(sin(x)/x) %结果为 1>>limit((x-2)/(x^2-4),2) %结果为 1/4>>limit((1+2*t/x)^(3*x),x,inf) %结果为 exp(6*t)>>limit(1/x,x,0,'right') %结果为 inf>>limit(1/x,x,0,'left') %结果为 -inf>>limit((sin(x+h)-sin(x))/h,h,0) %结果为 cos(x)>>v = [(1 + a/x)^x, exp(-x)];limit(v,x,inf,'left') %结果为[exp(a),0]3.1.3 Matlab计算导数与微分1.一元导数和微分diff函数用以计算函数的微分和导数,相关的函数语法有下列4个:diff(f) 返回f对预设独立变量的一次导数值diff(f,'t')或diff(f,t) 返回f对独立变量t的一次导数(值)diff(f,n) 返回f对预设独立变量的n阶导数(值)diff(f,'t',n) 或diff(f,t,n)返回f对独立变量t的n阶导数(值)这里尽管自变量已经作为符号变量,可以不用syms说明,但是在具体执行diff(f)、diff(f,'t')和diff(f,t)会出现差异,有的能够执行,有的不能够,有的执行符号微分,有的执行数值微分,所以比较麻烦。

微积分问题的MATLAB求解

微积分问题的MATLAB求解
约束优化 线性规划 linprog 非线性规划 fmincon fminimax fgoalattain fseminf 二次规划 quadprog
0-1规划(bintprog)
非线性最小二乘 lsqnonlin lsqcurvefit
其他规划ga gamultiobj simulannealbnd patternsearch threshacceptbnd 上下界 约束 fminbnd fmincon lsqnonlin lsqcurvefit
fun
H
A,b
Aeq,beq vlb,vub X0 x1,x2 options
A矩阵和b向量分别为线性不等式约束: linprog,quadprog,fgoalattain, fmincon,fminimax AX≤b中的系数矩阵和右端向量 Aeq矩阵和beq向量分别为线性等式约 束Aeq*X=beq中的系数矩阵和右端向量 X的下限和上限向量 迭代初始点坐标 函数最小化的区间 优化选项参数结构 linprog,quadprog,fgoalattain, fmincon,fminimax linprog,quadprog,fgoalattain, fmincon,fminimax,lsqcurvefit, lsqnonlin 除fminbnd外所有函数 fminbnd 所有优化函数
内寻找一个近似零点。 solve(f)求解表达式f的代数方程,求解变量为默认变量。 solve(f,x)求解变量为x sovle(f1,f2,...,fn,x1,x2,...,xn)求解f1,f2,...,fn表示的代数方程组。
例如:
三. 微商的计算
3.1符号导数
diff函数用于对符号表达式求导数,该函数的调用形式为: diff(f)没有指定变量和导数阶数,系统按照findsym函数指示的默认变量求一阶导数 diff(f,x) diff(f,n)按findsym函数指示的默认变量求n阶导数,n必须为正整数。 diff(f,x,n)

利用matlab进行微积分的计算

利用matlab进行微积分的计算

Matlab的微积分符号运算都可以对数组进行。
函数的积分 积分符号运算的基本语句 int(F); %求函数表达式F的不定积分 int(F,v); %求函数表达式F关于变量v的不定积分 int(F,a,b); %求函数表达式F在区间[a,b]上的定积分 int(F,v,a,b); %求函数表达式F在区间[a,b]上的关于变量v的 定积分
elapsed time is 17.471170 seconds. s=
53362913282294785045591045624042980409652472280384260097101349248456268889497101757 50609790198503569140908873155046809837844217211788500946430234432656602250210027842 563285208140554494121044251014267277029477471270891796396777961045322469242686646888 828158207198489710511079687324931915552939701750893156451997608573447301418328401172 44122806490743077037366831700558002936592350885893602352858528081607595747378366554 13175508131522517/712886527466509305316638415571427292066835886188589304045200199115 432408758111149947644415191387158691171781701957525651298026406762100925146587100430 513107268626814320019660997486274593718834370501543445252373974529896314567498212823 69562328237940110688092623177088619795407912477545580493264757378299233527517967352 48042463638051137034331214781746850878453485678021888075373249921995672056932029099 390891687487672697950931603520000

matlab中的微分方程的数值积分

matlab中的微分方程的数值积分

MATLAB是一种流行的数学软件,用于解决各种数学问题,包括微分方程的数值积分。

微分方程是许多科学和工程问题的数学描述方式,通过数值积分可以得到微分方程的数值解。

本文将介绍在MATLAB中如何进行微分方程的数值积分,以及一些相关的技巧和注意事项。

一、MATLAB中微分方程的数值积分的基本方法1. 常微分方程的数值积分在MATLAB中,常微分方程的数值积分可以使用ode45函数来实现。

ode45是一种常用的数值积分函数,它使用4阶和5阶Runge-Kutta 方法来求解常微分方程。

用户只需要将微分方程表示为函数的形式,并且提供初值条件,ode45就可以自动进行数值积分,并得到微分方程的数值解。

2. 偏微分方程的数值积分对于偏微分方程的数值积分,在MATLAB中可以使用pdepe函数来实现。

pdepe可以求解具有定解条件的一维和二维偏微分方程,用户只需要提供偏微分方程的形式和边界条件,pdepe就可以进行数值积分,并得到偏微分方程的数值解。

二、在MATLAB中进行微分方程数值积分的注意事项1. 数值积分的精度和稳定性在进行微分方程的数值积分时,需要注意数值积分的精度和稳定性。

如果数值积分的精度不够,可能会导致数值解的误差过大;如果数值积分的稳定性差,可能会导致数值解发散。

在选择数值积分方法时,需要根据具体的微分方程来选择合适的数值积分方法,以保证数值解的精度和稳定性。

2. 初值条件的选择初值条件对微分方程的数值解有很大的影响,因此在进行微分方程的数值积分时,需要选择合适的初值条件。

通常可以通过对微分方程进行分析,或者通过试验求解来确定合适的初值条件。

3. 数值积分的时间步长在进行微分方程的数值积分时,需要选择合适的时间步长,以保证数值积分的稳定性和效率。

选择时间步长时,可以通过试验求解来确定合适的时间步长,以得到最优的数值解。

三、MATLAB中微分方程数值积分的实例以下通过一个简单的例子来演示在MATLAB中如何进行微分方程的数值积分。

微积分问题的MATLAB求解

微积分问题的MATLAB求解
微积分问题的MATLAB求解
研究背景
微积分的相关知识 微积分是研究微分学与积分学的统称,其在自然科学, 经济学和工程学领域有着广泛应用。微积分的思想早在 17世纪就已经产生了。为了解决当时存在的科学问题, 费马、笛卡尔等著名的数学家做了大量的研究,积累了 很多理论成果。最终,牛顿和莱布尼茨被认为是独立的 微积分的发明者。 微积分主要有三大分支,即极限、微分学、积分学。微 积分的基本公式为
S symsum( fk , k, k0 , kn )
4.序列求积问题可用符号运算工具箱提供的symprod()。该函数调用格式为
P symprod ( fn , n, a,b)
微积分问题的MATLAB求解
论文要点——曲线积分及MATLAB求解
曲线积分一般分为第一类曲线积分和曲面积分的现成函数。论文中介 绍了曲线、曲面积分的概念,引入了将他们转换为一般积分问题的算 法,并介绍了如何利用符号运算工具箱直接求解曲线。在这里将通过 例子介绍第一类曲线积分的求解方法。
同样,我们也可以求解参数方程, 隐函数,多元函数Jacobi矩阵, Hess偏导数矩阵的导数
微积分问题的MATLAB求解
论文内容——积分问题的解析解
传统的积分求解方法需要灵活熟练的掌握积分知识,本文将从不定积分,定积分,多重 积分三个方面介绍积分问题的客观求解方法。
MATLAB符号运算工具箱提供了一个int()函数,可以直接用来求取符号函数的不定积分, 调用格式为F=int(f,x)
得出的结果为
y(x) 386459 x8 515273 x7 3067 x6 4087 x5 34 x4 23 x3 4 x2 1 x 918540 1224720 7290 9720 81 54 9 3

用matlab计算微积分

用matlab计算微积分

是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中,求定积分的函数是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
因式分解
因式分解
factor(f)
syms x; f=x^6+1; factor(f)
factor 也可用于正整数的分解
s=factor(100) factor(sym('12345678901234567890'))
大整数的分解要转化成符号常量
函数展开
函数展开
expand(f)
多项式展开
>> syms x; f=(x+1)^6; >> expand(f)
三角函数展开
>> syms x y; f=sin(x+y); >> expand(f)
合并同类项
合并同类项
collect(f,v): 按指定变量 v 进行合并 collect(f): 按默认变量进行合并

Matlab在微积分中的应用

Matlab在微积分中的应用
12
降幂排列法(collect) collect(A) collect(A,name_of_varible)
展开法(expand) 将代数式中所有的括号打开,将变量 释放出来,但得出的结果并不进行任何 整理和幂次排列,只将其凌乱的堆在一 起
13
重叠法(horner) 重叠法使一种很特别的代数式的整理 化简方法。它的化简方法是将代数式 尽量化为 ax(bx(cx(…(zx+z’)+y’)+…)+b’)+a’ 的形式。 horner(A)
D为D={(x,y,z)|x2/3+y1/2+z2/5≤1} 5.对方程解进行替换代入,方程解为:
t=sovle(‘a*x^6+b*x^2+c’) 6.级数求和(3n+1)(z-1)n z∈C,n=1→∞ 7.求解方程组:
x+y+z=0 2
x +yz+x=10190
x/y+z/y+y/x+y/z=16327/225
可以用前面讲的limit命令来求各种函数的 导数,但利用导数的基本概念,可以轻松地 进行计算。
4
diff命令
(1)函数f(x)=log(x) (即lgx)的求导 diff(f)
(2)求函数的高阶导数 diff(f,n)
(3)多元函数的求导 diff(function,’variable’,n) 其中n为求导阶数
29
Байду номын сангаас
(2)非线性方程组的求解fsolve
X=fsolve(‘functions_name’,X0) 其中functions_name是预先以m函数 格式写入Matlab的函数组的函数名。 X0是当函数组均等于零时对各变量的 解的估计。

matlab解微积分方程

matlab解微积分方程

matlab解微积分方程使用Matlab解微积分方程微积分方程是数学中的重要概念,广泛应用于物理学、工程学、经济学等领域。

解微积分方程是研究微积分方程的一个重要问题,而Matlab作为一种强大的数值计算软件,可以有效地解决微积分方程。

Matlab提供了多种求解微积分方程的方法,包括欧拉法、龙格-库塔法、四阶龙格-库塔法等。

这些方法可以用来求解常微分方程、偏微分方程以及一些特殊类型的微积分方程。

我们来看看如何使用Matlab求解常微分方程。

常微分方程是一种只涉及一个自变量的微分方程,可以表示为dy/dx = f(x, y),其中f(x, y)是已知的函数。

在Matlab中,可以使用ode45函数来求解常微分方程。

下面以一个简单的一阶常微分方程为例,来演示如何使用Matlab求解。

假设我们要求解方程dy/dx = x + y,且初始条件为y(0) = 1。

首先,我们需要定义方程的函数形式,即f(x, y) = x + y。

然后,使用ode45函数来求解:```function dydx = myode(x, y)dydx = x + y;end[t, y] = ode45(@myode, [0, 1], 1);```上述代码中,myode函数定义了方程的函数形式,ode45函数用于求解微分方程,[0, 1]表示求解的时间范围,1表示初始条件。

最后,得到的结果存储在变量t和y中,t表示时间,y表示方程的解。

除了常微分方程,Matlab还可以求解偏微分方程。

偏微分方程是一种涉及多个自变量的微分方程,可以表示为∂u/∂t = f(x, y, t, u, ∂u/∂x, ∂u/∂y)。

在Matlab中,可以使用pdepe函数来求解偏微分方程。

假设我们要求解一个简单的二维热传导方程,即∂u/∂t = ∂^2u/∂x^2 + ∂^2u/∂y^2,且初始条件为u(x, y, 0) = sin(x)sin(y),边界条件为u(0, y, t) = 0,u(π, y, t) = 0,u(x, 0, t) = 0,u(x, π, t) = 0。

matlab简明教程 第二章

matlab简明教程 第二章

第二章 MATLAB在微积分问题求解中的应用2.1 微分问题的MATLAB求解1. 函数作图MATLAB函数画图可通过ezplot或fplot等函数实现。

1)ezplotezplot函数的调用格式如下ezplot(f,[a,b])功能:表示在区间[a,b]绘制y=f(x)的函数图,当区间缺省时默认区间[-2*pi,2*pi]。

ezplot(x,y,[tmin,tmax])功能:在区间tmin < t < tmax上绘制参数方程x = x(t),y = y(t)的图形当区间缺省时默认区间[-2*pi,2*pi]。

例1 ezplot('sin(x)')图2.1.1例2 ezplot('t*cos(t)','t*sin(t)',[0,4*pi])图2.1.22) fplotfplot 函数的调用格式如下fplot(fun,lims)功能:绘制函数fun在区间lims上的图形。

例3fplot('tan(x)',[-pi/4 pi/4])图2.1.32 极限的符号运算极限是高等数学中基本概念之一,在微积分中,很多概念是用极限定义的,例如导数和定积分。

因此,掌握极限的运算对学好高等数学是极为重要的。

在MATLAB中,极限的求解可由limit 函数来实现,limit 函数的格式及功能见表2.2.1。

表2.2.1 1limit 函数的格式及功能因为数列()n x f n =实际上就是定义在正整数集合上的函数,因此数列的极限可看成x →+∞时的特殊函数的极限;多元函数的极限可化为累次极限实现。

例1 求下列数列的极限1)lim n n→∞ 2)n →∞ 3)lim 3sin 3n n n π→∞ 4)1123lim 32n n n n n ++→∞-- 5))n →∞6)1lim()1n n n n →∞-+ 7)2(1)lim 1n n n →∞-+ 8)lim(1)n n →∞- 9)lim(2)nn →∞-解:syms n ar1=limit(sqrt(n^2+a^2)/n,n,inf,'left') 输出 r1 =1 r2=limit(sqrt(n^2+3)-sqrt(n^2-3),n,inf,'left') 输出r2 =0 r3=limit(3^n*sin(pi/3^n),n,inf,'left') 输出r3 =pir4=limit((2^n-3^(n+1))/(3^n-2^(n+1)),n,inf,'left') 输出r4 =-3 r5=limit(sin(pi*sqrt(n^2+1)),n,inf,'left') 输出r5 =1 .. 1 r6=limit(((n-1)/(n+1))^n,n,inf,'left') 输出r6 =exp(-2) r7=limit((n-1)^2/(n+1),n,inf,'left') 输出r7 =Infr8=limit((-1)^n,n,inf,'left') 输出r8 =-1 .. 1 r9=limit((-2)^n,n,inf,'left') 输出r9 =NaN 例2 求下列函数的极限 1)0sin()sin()limh x h x h →+- 2)3113lim()11x x x →--- 3)01lim sin x x x→ 4)3lim 2x tx →-5)0lim x x x-→ 6)lim (1)3x x t x →-∞+ 7)123lim()21x x x x +→∞+- 8)11lim sin 1x x x →- 9)lim sin x x x →∞解: syms x h tf1=limit((sin(x+h)-sin(x))/h,h,0) 输出f1 =cos(x) f2=limit(1/(1-x)-3/(1-x^3),x,1) 输出 f2 =-1 f3=limit(x*sin(1/x)) 输出 f3 =0 f4=limit(t/(x-2),3) 输出f4 =t f5=limit(abs(x)/x,x,0,'left') 输出f5 =-1f6=limit((1+t/(-3*x))^(-x),x,inf,'left') 输出f6 =exp(1/3*t) f7=limit(((2*x+3)/(2*x+1))^(x+1),x,inf) 输出f7 =exp(1) f8=limit(x*sin(1/(x-1)),x,1) 输出f8 =-1 .. 1 f9=limit(x*sin(x),x,inf) 输出f9 =NaN 例3 求下列函数的极限1)(,)(0,0)lim x y → 2)(,)lim y x y →解: syms x y;p1=limit(limit((2-sqrt(x*y+4))/(x*y),x,0),y,0) 输出p1 =-1/4 p2=limit(limit(log(x+exp(y))/sqrt(x^2+y^2),x,1),y,0) 输出p2 =log(2) 3. 一阶微商的计算由导数的定义可知,一切导数的问题,都可以用极限的方法求得,例如上面例2中的第1题。

MATLAB中的微积分运算(数值符号)

MATLAB中的微积分运算(数值符号)

MATLAB中的微积分运算(数值符号)显然这个函数是单词differential(微分)的简写,⽤于计算微分。

实际上准确来说计算的是差商。

如果输⼊⼀个长度为n的⼀维向量,则该函数将会返回长度为n-1的向量,向量的值是原向量相邻元素的差,于是可以计算⼀阶导数的有限差分近似。

(1)符号微分1.常⽤的微分函数函数:diff(f) 求表达式f对默认⾃变量的⼀次微分值diff(f,x) 求表达式f对⾃变量x的⼀次积分值diff(f,n) 求表达式f对默认⾃变量的n次微分值diff(f,t,n)求表达式f对⾃变量t的n次微分值>> x=1:10x =1 2 3 4 5 6 7 8 9 10>> diff(x)ans =1 1 1 1 1 1 1 1 1例1:求矩阵中各元素的导数求矩阵[1/(1+a) (b+x)/cos(x)1/(x*y) exp(x^2)]对x的微分,可以输⼊以下命令A = sym('[1/(1+a),(b+x)/cos(x);1,exp(x^2)]');B = diff(A,'x')可得到如下结果:例2:求偏导数求的偏导数。

syms x y;f = x*exp(y)/y^2;fdx = diff(f,x)fdy = diff(f,y)可得到如下结果:例3:求复合函数的导数求的导数sym('x');y = 'x*f(x^2)'y1 = diff(y,'x')得到结果如下:例4:求参数⽅程的导数对参数⽅程求导syms a b tf1 = a*cos(t);f2 = b*sin(t);A = diff(f2)/diff(f1) %此处代⼊了参数⽅程的求导公式B = diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2)/diff(f1)^3 %求⼆阶导数可得到如下结果:例5:求隐函数的导数求的⼀阶导数syms x yp = 'x*y(x)-exp(x+y(x))'%隐函数可进⾏整体表⽰%注意y(x)这种写法,它代表了y是关于x的函数p1 = diff(p,x)可得到如下结果:2.符号积分1符号函数的不定积分函数:int功能:求取函数的不定积分语法:int(f)int(f,x)说明:第⼀个是求函数f对默认⾃变量的积分值;第⼆个是求⾃变量f对对⾃变量t的不定积分值。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 3 章 (1)M A T L A B 微积分
极限与级数的符号运算
M A T L A B 的极限与级数运算在符号系统中进行
◆极限运算
● l i m i t (f , x , a ) 求符号函数f 的极限 ● l i m i t (f , x , a , ’r i g h t ’) 求符号函数f 的右极限 ● l i m i t (f , x , a , ’l e f t ’) 求符号函数f 的左极限
说明:上述命令中的a 可以是无穷大 i n f 或 -i n f
☐说明:多元函数的极限需要使用累次极限来计算 举例
◆级数运算
● s y m s u m (a n , n , i , j ) 求符号通项a n 的和
其中,当j 为无穷大i n f 时,即为无穷级数。

举例
◆级数运算
● t a y l o r (f , n , a , x )
求符号函数f 在点a 关于变量x 的n -1阶泰勒多项式 举例
● t a y l o r t o o l 泰勒工具 举例
微积分的符号运算
◆导函数与偏导函数
● d i f f (f , x ) 求符号函数f 对x 的一阶导函数或偏导函数 ● d i f f (f , x , n ) 求符号函数f 对x 的n 阶导函数或偏导函数 ● 注:d i f f 是d i f f e r e n t i a l (微分)的缩写
lim ()
x a
f x +
→lim ()
x a f x -
→lim ()x
a f x →j
n
n i
a =∑
例:计算
⏹ 问:如何求符号函数在给定点的导数值或偏导数值?
求完导函数或偏导函数之后,使用符号替换命令 s u b s 可以求得导函数值或偏导函数值
◆不定积分与定积分
● i n t (f , x )
求符号函数f 关于变量x 的不定积分 ● 注:i n t 是i n t e g r a t i o n (积分)的缩写 ● i n t (f , x , a , b )
求符号函数f 关于变量x 的定积分,a 、b 分别是积分下限和上限,a 、b 可以是函数表达式,也可以是无穷大i n f 或-i n f 举例
● 对于定积分,当系统求不出精确解时,如果被积函数中不含待定符号,可以使用v p a 命令给出近似解 例如: s y m s x a =i n t (s i n (s i n (x )), 1, 2) v p a (a )
☐说明: ● 参数方程求导和隐函数求导需要使用相关数学公式(见教材66-67页) ● 重积分、曲线积分与曲面积分需要使用数学方法转化为累次积分来计算
微积分的数值运算
◆微积分的数值运算特点
采用数值算法,主要用于解决导数和定积分的近似计算问题 还可以解决离散数据的相关计算问题
● 实例:某河床的横断面如图所示,试根据图示的测量数据(单位: m ),计算各测量点的坡度和横断面的面积。

)ln(2
22
3xy y x y
x +∂∂∂,)1
sin (2+x e x
dx d
◆数值导数
● g r a d i e n t (f , x )
该命令求一元函数 f 的数值导数f ’(x )
其中,x 是自变量的一组取值(离散数据),f 是因变量的对应取值(离散数据) ,计算结果是各离散数据点的导数值(近似解)。

☐说明:
x 的取值越密集,得到的导数值就越精确。

该命令常用于求解离散型数据的变化率。

● 例:计算前例中的坡度
x =[0,4,10,12,15,22,28,34,40]; f =[0,-1,-3,-6,-8,-9,-5,-3,0]; f x =g r a d i e n t (f ,x )
● 例:求函数y =x 2s i n x 在区间[-3,3]的一阶和二阶数值导数,作出原函数与一、二阶导函数的图形,并观察函数的单调性、凹凸性、极值、拐点与一、二阶导数之间的关系。

x =-3:0.01:3; f =x .^2.*s i n (x );
f x =
g r a d i e n t (f ,x ) f x x =g r a d i e n t (f x ,x ) p l o t (x ,f , x ,f x ,'r --', x ,f x x ,'k --'), g r i d o n
☐ 思考:怎样求函数在指定点的数值导数?
比如:上面函数在x =1.5和x =1.501的数值导数是多少? f (f i n d (x ==1.5)) 或者 f (x ==1.5) 一般方法:[p ,q ]=m i n (a b s (x -x 0)); f (q )
◆数值偏导数
● [f x , f y ]=g r a d i e n t (f , x , y )
该命令求二元函数f 的数值偏导数f ’x 和f ’y
4 10 12 1
5 22 28 34 40
1
3
6
8
9
5
3
其中,x,y分别是自变量x和y的一组取值(向量表示);
f是定义在x-y平面点集区域上的函数值(矩阵表示),平面点集区域可以使用
m e s h g r i d命令生成;
f x和f y分别得到每个点处偏x和偏y的偏导数值(矩阵表示)。

☐说明:x和y的取值越密集,得到的偏导数值就越精确;该命令常用于求解离散型数据的方向导数、梯度、散度、旋度等。

●举例
◆数值定积分
●梯形法数值积分:t r a p z(x,y)
其中x表示自变量在积分区间的一组取值,y表示被积函数对应于x的一
组函数值。

●例:计算前面例题中的横断面积
x=[0,4,10,12,15,22,28,34,40];
y=[0,1,3,6,8,9,5,3,0];
s=t r a p z(x,y)
●例:求积分
解:x=-1:0.1:1;y=e x p(-x.^2);t r a p z(x,y)
●高精度数值积分:q u a d(f,a,b)或q u a d l(f,a,b)
求函数f在区间[a,b]上的定积分,其中:f使用字符串函数表达式或内
联函数,定义函数的乘、除、乘方时要使用点运算。

积分限a、b必
须是常量。

q u a d采用自适应步长S i m p s o n积分法
q u a d l采用高精度L o b a t t o积分法
●例求积分
解:z=q u a d l('e x p(-x.^2)',-1,1)
●注意:t r a p z,q u a d,q u a d l都不能用于求反常积分。

◆数值重积分
●矩形区域上的二重积分和立方体区域上的三重积分:
→二重积分命令d b l q u a d(f,a1,a2,b1,b2)
f 为被积函数, 积分区域为矩形[a 1, a 2; b 1, b 2] →三重积分命令 t r i p l e q u a d (f , a 1, a 2, b 1, b 2 , c 1, c 2)
f 为被积函数, 积分区域为立方体[a 1, a 2; b 1, b 2; c 1, c 2]
说明:①被积函数使用字符串函数表达式或内联函数;②乘、除、乘方要用点运算;③积分限必须是常量;④f 是字符串函数表达式时,积分的顺序按照自变量的字典顺序进行,f 是内联函数时,积分的顺序按照自变量的定义顺序进行。

● 积分顺序举例
d b l q u a d ('s i n (t ./r .^2)',1,2,6,9)
即 二重积分
f =i n l i n e ('s i n (t ./r .^2)', 't ', 'r ') d b l q u a d (f ,1,2,6,9)
即 二重积分
微积分的数值运算
◆数值重积分
● 例 计算重积分
92261sin t
dt dr r ⎰
⎰9
2
26
1
sin t dr dt r

⎰。

相关文档
最新文档