加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Matlab 符号与数值之间的转换

(2012-10-08 13:59:29)
标签:

matlab

符号

数值

vpa

subs

分类: Matlab

符号运算得到的是精确的解析解,但是有时需要进行数值转换,主要通过以下几个函数实现。

1.digits 函数

调用方法:digits(D)

函数设置有效数字个数为D的近似解精度。

2.vpa 函数

vpa

Variable-precision arithmetic
Syntax

R = vpa(A)
R = vpa(A,d)

Description

R = vpa(A) uses variable-precision arithmetic (VPA) to compute each element of A to at least d decimal digits of accuracy, where d is the current setting of digits.

R = vpa(A,d) uses at least d significant (nonzero) digits, instead of the current setting of digits.

注:vpa中的精度是指有效值,即vpa(1.2345,2)=1.2;vpa(0.2345,2) = 0.23

3.subs函数

subs

Symbolic substitution
Syntax

g = subs(f,old,new)
g = subs(f,new)
g = subs(f)
g = subs(f,old,new,0)

Description

g = subs(f,old,new) replaces all occurrences of old with new in f, and then evaluates f.

g = subs(f,new) replaces all occurrences of the default variable in f (defined by symvar) with new , and then evaluates f.

g = subs(f) replaces symbolic variables in f with their values obtained from the calling function and the MATLAB workspace, and then evaluates f. Variables with no assigned values remain as variables.

g = subs(f,old,new,0) prevents switching the arguments old and new if subs(f,old,new) returns f. Without this additional argument, the toolbox also tries subs(f,new,old) if subs(f,old,new) returns f. This approach provides backwards compatibility with previous versions and eliminates the need to remember the order of the arguments.

例1:求方程3*x^2-exp(x) = 0 的精确解和各种精度的近似解

>> s = solve('3*x^2-exp(x) = 0')
s =
  -2*lambertw(0, 3^(1/2)/6)
-2*lambertw(0, -3^(1/2)/6)
>> vpa(s)
ans =
-0.45896226753694851459857243243406
  0.91000757248870906065733829575937
>> vpa(s,6)
ans =
-0.458962
  0.910008

例2:设函数为f(x) = x – cos(x) 。求此函数在x = pi点的值的各种精度的数值近似形式。

>> x = sym('x');
>> f = x - cos(x)
f =
x - cos(x)
>> f1 = subs(f,x,pi)

f1 =

    4.1416

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有