• 沒有找到結果。

《数学实验》第7讲

N/A
N/A
Protected

Academic year: 2021

Share "《数学实验》第7讲"

Copied!
23
0
0

加載中.... (立即查看全文)

全文

(1)

《数学实验》第7讲

主要内容:

符号计算基础

常用符号计算函数: compose limit diff int

taylor solve dsolve

(2)

符号计算基础

• 符号计算函数可以完成准确的推导、计算 如求导、求极限。

• 一般使用规则:

计算中的符号变量需要先定义

再调用符号计算相关函数进行处理。

• 符号计算部分功能

• 复合运算、变量代换及化简

• 线性代数:行列式,特征值等

• 微积分:求导,求极限,定积分,微 分方程的求解等。

快速入门:求极限,求导数

数学问题 MATLAB程序

syms x;

r=limit(exp(-x),x,+inf)

syms x;

d=diff(x*x*exp(x),x,1)

0 lim

=

+

x

x

e

x x

x

xe x e

e

x

2

) 2

2

(  = +

(3)

定义符号变量syms

• syms命令定义符号变量,可以一次定 义多个变量

• 一般用法:

syms arg1 arg2 …

syms arg1 arg2 … real

syms arg1 arg2 … positive

• 示例1:创建符号表达式x2+y2 syms x y

f=x^2+y^2

示例2:创建符号数组f(2行2列)

syms x y

f=[x^2-2*x*y+y^2, x+y; x-y, x*y+y*y]

输出:

f =

[ x^2 - 2*x*y + y^2, x + y]

[ x - y, y^2 + x*y]

符号计算基础

(4)

定义符号变量sym

• 用于创建符号变量;也可将字符或数字转换为符号类型,sym 一次处理一个变 量或表达式。

• 基本用法:sym(A)

如果A是字符串,则产生一个符号数或变量;

如果A是数值标量或数值矩阵,则其转为符号类型。

示例: x1=sym('x1’), a=sym('sqrt(200)'), v=sym('[100 200]') 运行输出:

x1 = x1

a = 10*2^(1/2) v=[ 100, 200]

符号计算基础

(5)

定义符号变量用法比较

• syms与sym使用对比:

• 示例:使用syms定义(与下列调用sym语句效果相同)

• syms x y real

• 使用sym定义:

x = sym('x','real');

y = sym('y','real');

符号计算基础

(6)

符号表达式的替换subs

• subs函数将符号表达式中的符号变量用其他符号表达式或数 值代替,实现符号的替换。其使用格式为:

subs(s, old, new)

• 将s表达式中old变量替换为new。

old可以是单一变量,也可以是由s表达式中多个变量构成的向 量,new用来替换的符号表达式。

• 示例:

syms x y z

f=x^2+y^2+z^2

fval=subs(f,[x,y],[1,2])

运行结果:

f = x^2 + y^2 + z^2 fval = z^2 + 5

其他用法:

fval=subs(f,{'x','y'},{1,2}) fval=subs(f,{x,y},{1,2})

符号计算基础

(7)

符号表达式的化简

• simplify:对表达式进行化简

• 示例:

syms x y

s1 = simplify(cos(x)^2-sin(x)^2) s2 = simplify(x^3+3*x^2+3*x+1)

• 返回结果:

s1 = cos(2*x) s2 = (x + 1)^3

符号计算基础

(8)

符号计算精度及其数据类型转换(自看)

• digits:显示vpa计算结果的有效数字的位数

• digits(n):设置vpa计算结果的有效数字的位数

• vpa(s):计算符号表达式s的数值结果

• vpa(s,n):采用n位有效数字计算精度求s的数值结果

• double(s):将符号表达式s转化为双精度数值

• char(s):将符号表达式s转化为字符串

符号计算基础

(9)

示例:

• >> t=sqrt(sym(pi)), a=vpa(t), b=double(t), whos a b

运行结果:

t = pi^(1/2)

a = 1.7724538509055160272981674833411 b = 1.7725

Name Size Bytes Class Attributes a 1x1 112 sym

b 1x1 8 double

符号计算精度及其数据类型转换

符号计算基础

(10)

常用符号计算函数:compose\limit\diff\int

复合计算函数 compose

• 主要用法:

• compose(f, g): 返回复合函数f(g(y)),其中f=f(x),g=g(y).

x和y分别为f、g中找到的符号变量.

• compose(f, g, z): 返回复合函数f(g(z)), f=f(x), g=g(y),

x,y含义同上一种用法. 最后用指定变量z代替变量y.

• compose(f, g, x, y, z): 返回复合函数f(g(z)).

将x=g(y)代入f(x)中, 最后用指定的变量z代替变量y

(11)

• 示例:

syms

x y t

f = 1/(1+x);

g = sin(y)^2

h = compose(f,g,x,y,t) 运行结果:

f = 1/(x + 1) g = sin(y)^2

h = 1/(sin(t)^2 + 1)

复合计算函数 compose

常用符号计算函数:compose\limit\diff\int

(12)

计算极限函数:limit

• 函数一般使用格式:

limit(f,x,a):

计算f(x)当x趋向于a的极限 limit(f,x,a,'right’):

计算右极限

limit(f,x,a,'left’):

计算左极限

• 示例:计算数列的极限。

• 编程实现:

syms

n

an=(1+1/n)^n;

S=limit(an,n,inf) %计算数列极限

• 返回结果:

• S = exp(1)

常用符号计算函数:compose\limit\diff\int

(13)

示例:

求一元函数极限 ,并绘图观察函数在变量x趋于0时函数的变化趋势。

x x

x

) lim sin(

0

实践题1(5min)

常用符号计算函数:compose\limit\diff\int

(14)

求导计算 diff

• 用法:

diff(s,'v') 求s对自变量v的1阶导数 diff(s,'v',n) 求s对自变量v的n阶导数

• 注:'v' 可以为符号变量

已知

f ( x , y ) = x

2

y + 2 xy + y

2,求 和 .

x f

y f

编写程序:

syms x y

f= x^2*y + 2*x*y + y*y d1 = diff(f,x,1)

d2 = diff(f,y,1)

运行结果:

d1 = 2*y + 2*x*y

d2 = x^2 + 2*x + 2*y

常用符号计算函数:compose\limit\diff\int

(15)

实践题2(5min)

• 求下列函数的一阶导数:

2

2

x

a y ae

x

= +

常用符号计算函数:compose\limit\diff\int

(16)

符号积分函数int

• 用法:

• s=int(expr,var):

以expr表达式中的变量var为积分变量计算不定积分

• s=int(expr,var,a,b)

以expr表达式中的变量var为积分变量计算定积分,积 分上下限分别为b和a。

示例: 使用符号工具箱函数解下列不定积分:

x ln( x

2

− dx 1 )

syms x a编写程序:

f=int(x*log(x*x-1))

常用符号计算函数:compose\limit\diff\int

(17)

泰勒(taylor)多项式函数

一般用法:

taylor(f): 计算f的5阶麦克劳林多项式

taylor(f,v,Name,Value)

• taylor(f,v,a): 计算f在点a展开的麦克考林多项式

taylor(f,v,a,Name,Value):指定属性名称,属性值的调用方法

f:函数的表达式或者符号变量 v:为函数的自变量

0 2

0 0 0 0

( )

0

0

( )

( ) ( ) ( )( ) ( )

2!

( )

( ) ( )

!

n

n

n

f x

f x f x f x x x x x

f x

x x R x

n

 

= + − + −

+ + − +

常用符号计算函数:taylor\solve\dsolve

(18)

泰勒(taylor)多项式函数

• 求ex的7阶泰勒多项式.

>>taylor(exp(x),x,0,'order',8) ans =

x^7/5040 + x^6/720 + x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1

>>taylor(exp(x),x,'expansionpoint',0,'order',8) ans =

x^7/5040 + x^6/720 + x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1 说明:以上两个语句效果相同。

常用符号计算函数:taylor\solve\dsolve

(19)

求解方程(组): solve

示例:

求解含参数的方程组 ax+by=10, ax-by=20

编程实现:

s=solve('a*x+b*y=10','a*x-b*y=20','x','y') sol_x = s.x

sol_y = s.y

运行结果: s = x: [1x1 sym]

y: [1x1 sym]

常用符号计算函数:taylor\solve\dsolve

(20)

求解微分方程: dsolve

示例:求下列微分方程的特解:

要点:

1. 用字符串描述微分方程及其初始条件;

2. 导数的表示规则:以未知函数y为例,

“Dy”表示对y的1阶导数

“D2y”表示对y的2阶导数,其他各阶导数类似.

编程实现:

y=dsolve('Dy=(10-0.02*t)*t','y(0)=4','t') 运行结果:

y = 4 - (t^2*(t - 750))/150

求得函数:

4 )

0 ( , ) 02 . 0 10

( − =

= t t y

dt dy

150

) 750 4 (

2

= t t y

常用符号计算函数:taylor\solve\dsolve

(21)

实践题3 (2min)

求下列微分方程的特解

:

4 )

0 ( , ) 01 . 0 50

( − =

= y y y

dx dy

常用符号计算函数:taylor\solve\dsolve

(22)

补充部分:定义符号变量syms

• 练习:使用syms定义20个符号变量 x1,x2,…, x20.

• 常规定义形式:syms x1 x2 x3 … x20

• 编程实现:

• for

i=1:20

eval(sprintf('syms x%d',i))

• end

• whos Name Size Bytes 运行结果: Class Attributes

i 1x1 8 double x1 1x1 112 sym

x2 1x1 112 sym x3 1x1 112 sym

… …

常用符号计算函数:taylor\solve\dsolve

(23)

学到了什么?

符号计算基础

常用符号计算函数: compose limit diff int

taylor solve dsolve

參考文獻

相關文件

教育局 课程发展处 数学教育组.

int main(int argc, char** argv).

微算機原理與應用 第6

对于二元函数的自变量,我

[r]

[r]

微积分的创立是数学发展中的里程碑, 它的发展 和广泛应用开启了向近代数学过渡的新时期, 为研究 变量和函数提供了重要的方法和手段. 运动物体的瞬

下面我们将用 这一点将一元函数的 Taylor 展开推广到多元函数.. 我们希望借助此给出多元函数