当前位置:首页 >> 数学 >>

MATLAB中的数值计算与符号计算_图文

哈 工 程 大 学 数 学 实 验 电 子 教 案

微积分实验(2) MATLAB中的数值计算与符号计算
本教程介绍 MATLAB在数值计算与符号计算方 面的应用. 要注意的是MATLAB在数值计算方面,功 能强大 , 但在符号计算方面 , 直到 V5.1 版后 , 才引入 Waterloo 公司的 Maple V4 版的核心计算引擎 ( 目前 Maple的版本是V7),因此,它的符号计算功能有限,还 不能称得上一个真正的数学符号计算软件包. 下面我们按照微积分课程的授课顺序 , 介绍一下 MATLAB在这方面的应用. 请注意,以下的所有文字 说 明 均 用 黑 色 字 ,MATLAB 语 句 , 用 红 色 字 ,MATLAB的输出结果,用兰色字.
上页 下页 退出

哈 工 程 大 学 数 学 实 验 电 子 教 案

◆函数复合
命令格式: compose(f,g,x), 即求f(g(x); 例子: syms f, x; f=sin(x);compose(f,f,x) ans = sin(sin(x)) syms f, x; f=sin(x); g=1+x^2; compose(f,g,x) ans = sin(1+x^2)

上页 下页 退出

◆极限运算
哈 工 程 大 学 数 学 实 验 电 子 教 案

命令格式: limit(f,x,x0),

即 求

x? x0

lim f ( x )

, 及

limit(f,x,x0,’left’), limit(f,x,x0,’right’)左右极限 例子: syms x;limit(x*(pi/2 + atan(x)), x, -inf) ans = -1 syms x,f;f=x^10*log(x);limit(f,x,0,'right') ans = 0
上页 下页 退出

哈 工 程 大 学 数 学 实 验 电 子 教 案

◆设f(sin(x/2)) = cos(x) + 1, 求f(x)与f(cos(x/2)).
syms x, f; old='cos(x)'; new='1-2*sin(x/2)^2'; subs('f(sin(x/2))=cos(x)+1',old,new) ans = f(sin(x/2))=(1-2*sin(x/2)^2)+1 syms u; subs(ans,'sin(x/2)',u) ans = f(u) = 2-2*u^2

上页 下页 退出

◆设 f ( x ) ?
哈 工 程 大 学 数 学 实 验 电 子 教 案

x 1? x
2

,

求 f ( x ) 与自身的 n 次

复合函数.

Syms x,f,g; f=x/sqrt(1+x^2);g=x; g=simple(compose(f,f,x)) f =x/(1+x^2)^(1/2) g =x/(2*x^2+1)^(1/2) g=simple(compose(g,f,x)) g =x/(3*x^2+1)^(1/2) g=simple(compose(g,f,x)) g =x/(4*x^2+1)^(1/2) g=simple(compose(g,f,x)) g =x/(5*x^2+1)^(1/2)
上页 下页 退出

哈 工 程 大 学 数 学 实 验 电 子 教 案

sin x cos x ? ◆已知 y ? 求y?, y?? . 1 ? cot x 1 ? tan x
syms x,f; f=sin(x)^2/(1+cot(x))+cos(x)^2/(1+tan(x)); diff(f,x) Ans= 2*sin(x)/(1+cot(x))*cos(x)-sin(x)^2/(1+cot(x))^2*(-1-cot(x)^2)2*cos(x)/(1+tan(x))*sin(x)-cos(x)^2/(1+tan(x))^2*(1+tan(x)^2) simple(ans) ans =-2*cos(x)^2+1 diff(f,x,2) ans=2*cos(x)^2/(1+cot(x))-4*sin(x)/(1+cot(x))^2*cos(x)*(-1-cot(x)^2)2*sin(x)^2/(1+cot(x))+2*sin(x)^2/(1+cot(x))^3*(-1cot(x)^2)^2+2*sin(x)^2/(1+cot(x))^2*cot(x)*(-1cot(x)^2)+2*sin(x)^2/(1+tan(x))+4*cos(x)/(1+tan(x))^2*sin(x)*(1+tan(x)^2)2*cos(x)^2/(1+tan(x))+2*cos(x)^2/(1+tan(x))^3*(1+tan(x)^2)^22*cos(x)^2/(1+tan(x))^2*tan(x)*(1+tan(x)^2) simple(ans) ans =4*sin(x)*cos(x)
上页 下页 退出

2

2

哈 工 程 大 学 数 学 实 验 电 子 教 案

?z z e ? z ? xy ? 3 ◆已知 z ? z ( x , y ) 由方程 所确定,求 ?x
syms x y z f g; f=exp(z)-z+x*y-3; g=jacobian(f,[x, y, z]) g= [ y, x, exp(z)-1] g(1) ans = y g(2) ans = x g(3) ans = exp(z)-1 g(1)/g(3) ans = y/(exp(z)-1)

.

上页 下页 退出

◆已知 x ? a cot t ,
哈 工 程 大 学 数 学 实 验 电 子 教 案

3

y ? a sin t , 求 y?,
3

y?? .

syms x y t a; x=a*cos(t)^3; y=simple(diff(y,t)/diff(x,t)) y= -tan(t) simple(diff(y,t)/diff(x,t)) ans = 1/3/cos(t)^4/a/sin(t)

y=a*sin(t)^3;

这一结果与 Mathematica 的计算结果 是不到位.

相比,还

上页 下页 退出

哈 工 程 大 学 数 学 实 验 电 子 教 案

1 ? sin x ? cos( x ) dx . ◆计算积分 ? 1 ? sin x ? cos x

syms x; int((1-sin(x)+cos(x))/(1+sin(x)-cos(x))) ans = 2*log(tan(1/2*x))-2*log(tan(1/2*x)+1)2*atan(tan(1/2*x))
请注意上面的 arctan(tan

1 1 x ) 这一项,看看 MATLAB 能不能化简成x 2 2

.

simple(ans)
ans=2*log(tan(1/2*x))-2*log(tan(1/2*x)+1)-2*atan(tan(1/2*x))

MATLAB 做不到这一点 , 但这个积分在 Mathematica 中的计 算结果为

-x + 2 Log Sin

BB F BB FB F
x 2

- 2 Log Cos

x 2

+ Sin

x 2

上页 下页 退出

◆求函数 y ? 2 x ? 6 x ? 18 x ? 7 的极值.
哈 工 程 大 学 数 学 实 验 电 子 教 案

3

2

先画出图形 syms x y; y=2*x^3-6*x^2-18*x+7; ezplot(y,[-5,5])

上页 下页 退出

再求出驻点(有2个,分别为-1及3)
哈 工 程 大 学 数 学 实 验 电 子 教 案

solve(diff(y,x),x) ans = [ -1] [ 3] 求函数的2阶导数 y=diff(y,x,2) y= 12*x-12

上页 下页 退出

计算2阶导数在驻点处的函数值
哈 工 程 大 学 数 学 实 验 电 子 教 案

x=-1; eval(y) ans = -24 x=3; eval(y) ans = 24 由高等数学定理知,在-1处取得极大值, 在3处取得极小值

上页 下页 退出

哈 工 程 大 学 数 学 实 验 电 子 教 案

10 ◆计算积分 ?1 sin(sin x )dx 的值. 这个积分无法计算出理论解,只能计算数值解 syms x; int(sin(sin(x)),1,10) ans = int(sin(sin(x)),x = 1 .. 10)
第一种方法,用梯形法计算,其命令为trapz(x,y), 其中x, y 是具有相同长度的向量 , 表示用梯形法分割时 , 数据 点上的值. 此积分的实际值为0.199(精确到20位) x=1:0.1:10; y=sin(sin(x)); trapz(x,y) ans = 1.1981
上页 下页 退出

哈 工 程 大 学 数 学 实 验 电 子 教 案

第二种方法 , 用 Simpson( 辛普森法 ) 计算 , 其命令是 quad(‘f’,a,b,tol), 其中a,b为积分的上下限,tol为迭代 误差,其默认值为10^(-3) quad('sin(sin(x))',1,10,10^(-7)) ans = 1.1990 第三种方法,用Newton-cotes法(牛顿-科特茨法),其命 令是quad8(‘f’,a,b,tol),其用法与Simpson法一样 quad8('sin(sin(x))',1,10,10^(-3)) ans = 1.1990 Newton-cotes 法的计算精度比其它 2 种要高 , 例如 , 在 相同的计算量下,比较 quad('sin(sin(x))',1,10,10^(-3)) ans = 1.1976
上页 下页 退出

D 是由 y ◆计算二重积分 ?? xydxdy ,其中
D
哈 工 程 大 学 数 学 实 验 电 子 教 案

2

? x , y ? x ? 2 所围

成的区域.

命令: dblquad(‘f’, xmin, xmax, ymin, ymax) 先画出区域的图形 syms x y; ezplot('y^2-x',[0,5,-3,3]); hold on; ezplot('x-2',[0,5,-3,3]); hold off

上页 下页 退出

哈 工 程 大 学 数 学 实 验 电 子 教 案

再求2条曲线的2个交点 syms x y; [x,y]=solve('y^2-x=0','x-2=y') x= [ 1] [ 4] y= [ -1] [ 2] 因此,求出的2个交点是(1,-1)及(4,2),这是一个左右型 区域, 应该先对x积分,再对y积分比较简单,因此有 syms x y; dblquad('x*y',y^2,y+2,-1,2) 结果 ,MATLAB 会提示出现错误 , 是语法错误吗 ? 将 上面改成
上页 下页 退出

哈 工 程 大 学 数 学 实 验 电 子 教 案

syms x y; dblquad('x*y',0,1,-1,2) ans = 0.7500 这说明 , 不是语法错误 . 实际上 ,这个命令只能计算 矩形区域的积分,如果积分区域不上矩形区域,那么, 你就得定义一个二元函数 , 让这个函数在积分区域 外为0,比如,对此积分,定义

? x y, ( x, y ) ? D f ( x) ? ? ( x, y) ? D ?0,
而且,它也只能计算二重积分的数值解.

上页 下页 退出

◆关于微分方程的求解
哈 工 程 大 学 数 学 实 验 电 子 教 案

命令格式: dsolve(‘eqn1’, ‘eqn2’, …….); 如果不额外说明, 默认的变量是t dsolve('Dy=y^2*(1-y)') Warning: Explicit solution could not be found; implicit solution returned. > In C:\MATLABR12\toolbox\symbolic\dsolve.m at line 292 ans = t+1/y-log(y)+log(-1+y)+C1=0 dsolve('D2y = -a^2*y', 'y(0) = 1, Dy(pi/a) = 0') ans =cos(a*t) [x,y]=dsolve('Dx = y', 'Dy = -x', 'x(0)=0', 'y(0)=1') x =sin(t) y =cos(t)
上页 下页 退出

◆关于数项级数求和问题.
哈 工 程 大 学 数 学 实 验 电 子 教 案

命令格式: symsum(‘f’, a, b), 计算表达式f从a到b的 和. syms n; symsum(1/n^2,1,inf) ans =1/6*pi^2 syms n; symsum(1/n^3,1,inf) ans =zeta(3) syms n; symsum(1/n^4,1,inf) ans =1/90*pi^4 syms n; symsum((-1)^(n-1)/n,1,inf) ans =log(2)

上页 下页 退出


相关文章:
MATLAB中的数值计算与符号计算_图文.ppt
MATLAB中的数值计算与符号计算 - 哈工程大学数学实验电子教案 微积分实验(2) MATLAB中的数值计算与符号计算 本教程介绍 MATLAB在数值计算与符号计算方...
#MATLAB中的数值计算与符号计算_图文.ppt
#MATLAB中的数值计算与符号计算 - 微积分实验(2) 哈 工程 MATLAB中的数值计算与符号计算 大 本教程介绍MATLAB在数值计算与符号计算方面 学 的应用.要注意的是MA...
MATLAB的数值运算与符号运算_图文.ppt
MATLAB的数值运算与符号运算_数学_自然科学_专业资料。MATLAB 主要内
第五讲 matlab数值与符号计算_图文.ppt
第五讲 matlab数值与符号计算_数学_自然科学_专业资料。数值计算软件实践 第五讲 数值与符号计算 MATLAB提供了丰富的数值分析命令, 具有出色的数值计算能力。 符号...
MATLAB第二讲数值计算和符号计算_图文.ppt
MATLAB第二讲数值计算和符号计算_数学_自然科学_专业资料。第二讲 数值计算和符号运算 Matlab基础应用 1 1.数值计算 1.1 矩阵和数组基础 ?创建矩阵 ?元素标识 ...
MATLAB第二讲__数值计算和符号计算_图文.ppt
MATLAB第二讲__数值计算和符号计算 - 第二讲 数值计算和符号运算 Matlab基础应用 1 1.数值计算 1.1 矩阵和数组基础 ?创建矩阵 ?元素标识 ?矩阵操作 ?矩阵...
MATLAB第二讲 数值计算和符号计算_图文.ppt
MATLAB第二讲 数值计算和符号计算_数学_自然科学_专业资料。第二讲 数值计算和符号运算 Matlab基础应用 1 1.数值计算 1.1 矩阵和数组基础 ?创建矩阵 ?元素标识...
matlab数值运算与符号运算_图文.ppt
matlab数值运算与符号运算_其它_职业教育_教育专区。matlab 主要内容 ? 2.1 矩阵 ? ? ? ? ? 2.2 向量 2.3 数组 2.4 多项式 2.5 数值运算与符号运算 2....
第二章matlab数值运算与符号运算_图文.ppt
第二章matlab数值运算与符号运算_机械/仪表_工程科技_专业资料。本章目标 ? ? 掌握矩阵、向量、数组和多项式的构造和运算方法能够使用常用的几种函数进行一般的数值...
第3章 MATLAB的数值运算与符号运算_图文.ppt
MATLAB 与控制系统仿真第 3章 MATLAB的数值运算与符号运算 主要内容
MATLAB数值和符号计算_图文.ppt
MATLAB数值和符号计算 - 4.1 数据统计处理 4.1.1 最大值和最小值 MATLAB提供的求数据序列的最大值和最 小值的函数分别为max和min,两个函数 的调用格式和操作...
五.数值计算和符号计算ppt(matlab)_图文.ppt
五.数值计算和符号计算ppt(matlab) - 五.数值计算和符号计算 本章主
第1讲MATLAB的符号计算总结_图文.ppt
第1讲MATLAB的符号计算总结 - MATLAB的符号计算 符号运算与数值运算的区别 ※ 数值运算中必须先对变量赋值,然后 才能参与运算。 ※ 符号运算无须事先对独立变量...
第三章:MATLAB的符号运算_图文.ppt
MATLAB的算术表达式中,如果有符号对象出现,则执行符号 运算,否则执行数值运算。 符号对象的生成: 1、利用sym函数,可生成符号常数、符号变量和符号表达式。例: >>...
MATLAB中的数值函数运算_图文.ppt
Matlab除了可以进行数值运算外,还可进行有关的符号 运算,如函数的求极限、求导、不定积分、Taylor展开 与级数求和等符号运算。 1. 字符串 Matlab中用单引号来定义...
第二章matlab数值运算与符号运算_图文.ppt
第二章matlab数值运算与符号运算_其它_职业教育_教育专区。第二章matlab数值运算与符号运算,matlab 符号变量 数值,matlab符号常数转为数值,matlab数值积分和符号积分,...
MATLABch07MATLAB符号计算与工具箱_图文.ppt
MATLABch07MATLAB符号计算与工具箱_数学_自然科学_专业资料。文档均来自网络,如...(x))/h %建立一阶差分公式 三、数据类型之间的相互转换 MATLAB 中的数值型...
MATLAB符号运算运用_图文.ppt
第3章 MATLAB的符号运算符号计算是对未赋值符号对象(可以是常数、 变量、...[ c, d] 3.2 符号表达式的代数运算符号运算与数值运算的区别主要有以下几点:...
实验四 MATLAB数值计算与符号计算.doc
实验四 MATLAB数值计算与符号计算 - 实验四 一、实验目的 MATLAB 数值计算与符号计算 1.掌握数据插值和曲线拟合的方法 2.掌握求数值导数和数值积分的方法 3.掌握...
4数值计算与符号计算_图文.ppt
4数值计算与符号计算 - 第4章 MATLAB数值计算与符号计算 4.1曲线拟合与插值运算 4.2 数值微积分 4.3 线性方程组求解 4.4 常微分方程的数值求解 4.5 MATLAB符号...
更多相关标签: