专栏首页matlab爱好者matlab符号计算(一)

matlab符号计算(一)

计算一般可分为解析计算和数值计算,解析计算是连续的求解过程,而数值计算则是离散的求解过程。在matlab中,原则上只要数学上能解析计算的,采用matlab符号计算就能够精确求解。

1、符号的创建

(a) 符号常量的创建

符号常量是不含变量的符号表达式。在MATLAB中,使用sym指令来建立符号常量。 一般调用形式为:sym('常量') 。

例1.1

a=sym('sin(2)')

a =

sin(2)

sym命令还可以把数值转换成某种格式的符号常量,调用形式为:sym(常量,参数)。说明:参数可以选择为'd'、'f'、'e'或'r'四种格式,可省略。

例1.2 把常量转换为符号常量

a = sym(sin(2),'r')

a =

4095111552621091

---------------------------

4503599627370496

(b) 符号变量的创建

符号变量即为含有变量的符号表达式,sym可用于定义符号变量,但sym一次只能定义一个符号变量,使用不方便。MATLAB提供了另一个函数syms,一次可以定义多个符号变量。 syms函数的一般调用格式为:

syms 变量1 变量2 … 变量n

注意:符号变量之间用空格而不要用逗号或分号分隔。

例1.3

syms x y

y = sin(x) + cos(x)

2、符号表达式的建立

符号表达式是代表数字、函数和变量的字符串或字符串数组,它不要求变量要预先定义的值。符号表达式包含符号函数和符号方程,其中符号函数没有等号,而符号方程必须带有等号。符号表达式主要有下面三种方式:

① 用单引号建立符号表达式

例2.1

f = 'a*x^2+bx+c=0'

f =

'a*x^2+bx+c=0'

② 用sym建立符号表达式

例2.2

f1 = sym('a*x^2+b*x+c')

f1 =

a*x^2+b*x+c

③ 使用已经定义的符号变量来组成符号表达式

例2.3

syms a b c x

%创建多个符号变量

f2 = a*x^2+b*x+c

%创建符号表达式

f2 =

a*x^2+b*x+c

或者,

syms('a','b','c','x')

f3 = a*x^2+b*x+c; %创建符号表达式

3、符号运算

(a) 运算符

MATLAB采用了重载(Overload)技术,使得用来构成符号表达式的运算符,无论在拼写还是在使用方法上,都与数值计算中的算符完全相同,如“+”,“-”,“*”,“\”,“/”,“^”等。符号对象的比较中,没有“>”、“≥”,“<”,“≤”的概念,而只有是否“等于”的概念,即“==”与“~=”。如果要判断两个符号数值的大小一般来说有两种办法,一种是利用double将其转化成数值型的,另一种是利用sort+“==”或“~=”。

例3.1

a = sym('2');

b = sym('3');

double(a)<double(b)

ans =

1

sa = sort([b,a])

sa =

[2, 3]

a == sa(1)

ans =

1

(b) 极限、导数和级数的符号计算

例3.2 极限

clc;

clear;

% 求极限

syms n;

% limit函数用于求极限运算。

% 若y=f(x),limit(y)表示x→0时的极限,

% limit(y,x,a)表示x→a时的极限

limit( n^(n+1/2) /( exp(n)*gamma(n+1)), n,inf)

ans =

1/(2*pi)^(1/2)

例3.3 导数

的导数,

syms a t x;

f = [a, t*log(x); sqrt(t), x^2+3*x];

% 矩阵f对t的一阶导数

dfdt = diff(f,t);

dfdt =

[0, log(x); 1/(2*t^(1/2)), 0 ];

% 矩阵f对x的二阶导数

dfdx2 = diff(f,2);

dfdx2 =

[0, -t/x^2; 0, 2 ];

% 求二阶混合导数

dfdtdx = diff(diff(f,t),x);

dfdtdx =

[0, 1/x;0, 0];

例3.4 级数

syms k;

f1 = symsum( (k-2)/2^k, k, 3, inf);

f1 =

1/2

A = [1/(2*k+1)^2, (-1)^k/3^k];

f2 = symsum(A, k, 1, inf);

f2 =

[pi^2/8 - 1, -1/4]

温馨提示

如果你喜欢本文,请分享到朋友圈,想要获得更多信息,请关注我。

本文分享自微信公众号 - matlab爱好者(matlabaihaozhe),作者:bashan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-04-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 神经网络连载(三)

    上期为大家构建了一个简单的神经网络模型。就是输入层神经元的输入,经过各种处理,最后到达输出层,然后输出最后的结果。但是大家也看到了,最后网络输出的结果和真实结果...

    艾木樨
  • 对matlab来说,“is”不仅仅是个英文单词!

    为什么要介绍“is”系列函数呢?从字面意思上很好理解,判断某个量是否为某种状态,若是返回真,若否则返回假;在编程过程中难免会遇到条件选择(if语句)的情况,条件...

    艾木樨
  • matlab符号计算(二)

    在matlab中符号变量间也可进行算术运算,常用算术符号:+、-、*、.*、\、.\、/、./、^、.^、 '、 .',假设用符号变量A和B,其中A,B可以是单...

    艾木樨
  • Android签名攻与防

    JNI全称是Java Native Interface(Java本地接口)单词首字母的缩写,本地接口就是指用C和C++开发的接口。由于JNI是JVM规范中的一部...

    Anymarvel
  • T-SQL基础(六)之可编程对象

    子查询返回的值不止一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。

    雪飞鸿
  • 日经新闻:中国人工智能专利申请量飙升

    据《日本经济新闻》2017年2月报道,日本Astamuse公司的数据表明,近些年来,中国在人工智能相关方面的专利申请呈增长态势,而美国的专利申请总量仍独占鳌头。...

    人工智能快报
  • ABC成本法在企业物流成本核算和管理中的应用

    1. 物流成本研究的意义及现状 物流成本,是指产品在实物运动过程中,如包装、装卸、储存、流通加工、物流信息等各个环节所支出的人力、财力、物力和总和。改善企业内...

    SAP最佳业务实践
  • 天使轮融资一个亿的AI公司创新奇智,与徐工信息达成战略合作

    继与永辉超市、原麦山丘达成合作后,今天,创新奇智与江苏徐工集团旗下的徐工信息在北京宣布达成战略合作协议。

    量子位
  • WKWebview嵌入H5 Windows.open 无法拦截问题

    分析一下意思,就是当跳到新的target,还是使用当前webview进行加载requset

    ZY_FlyWay
  • 我们在外包资源池化管理走过的弯路

    品质中心近半年提出了外包人员效率优化的口号。各个测试团队积极响应,想出各种各样的办法来尝试节省人力。其中“外包资源池管理”是各个团队都没有放过的一种尝试手段。

    腾讯移动品质中心TMQ

扫码关注云+社区

领取腾讯云代金券