[MATLAB]符号计算
符号计算
- 一、数值微积分
- 1.1 数值计算与符号计算的区别
- 1.2 符号对象
- 1.3 符号常量
- 1.4 符号变量
- 1.4.1 符号变量的创建
- 1.4.2 创建符号矩阵
- 1.4.3 自由符号变量
- 1.5 符号表达式
- 1.6 符号计算的运算符
- 1.7 符号运算中的函数运算
- 1.8 符号计算与数值计算的区别
- 二、符号数字及表达式
- 2.1 数值数字变符号数字
- 2.2 符号数字变数值数字
- 2.2.1 符号数值变数值数字
- 2.2.2 符号矩阵转化为数值矩阵
- 2.2.3 符号计算精确度转化函数vpa(x,n)
- 2.3 化简各种表达式simplify
- 2.4 符号表达式的置换操作
- 2.4.1 子表达式置换操作subexpr(自动替换)
- 2.4.2 子表达式置换操作subs(人为操作)
- 三、符号微积分
- 3.1 符号表达式F的极限limit
- 3.2 符号表达式F的求导diff
- 3.3 符号表达式F的积分int
- 3.4 级数求和symsum
- 3.5 泰勒级数taylor
- 四、符号方程求解
- 4.1 符号方程
一、数值微积分
1.1 数值计算与符号计算的区别
数值计算:必须先对变量赋值,然后才能参与运算,运算结果是数值
符号计算:无须事先对变量赋值,而将所得到的结果以标准的符号形式来表示
符号计算的特点:
- 运算对象可以是没有赋值的符号变量
- 以推理解析的方式进行运算,因此不受计算误差累积所带来的困扰
1.2 符号对象
任何符号对象都必须借助专门的sym或syms定义
syms % 是定义符号变量
sym % 是将字符或者数字转换为字符
sys('a+b') % 就是将a+b转化为符号表达式
任何包含符号对象的表达式、方程也一定是符号对象
1.3 符号常量
当数值常量作为sym()的输入参量时,就建立了符号常量
虽然看上去是一个数值量,但已经是一个符号对象了
1.4 符号变量
符号变量是内容可变的符号对象
符号变量的命名规则和数值变量的命名规则相同
1.4.1 符号变量的创建
- 单个符号变量创建函数sym
x = sym('a') % 符号变量x的值为a,默认为复数(flag)
x = sym('value', 'flag') % 符号变量x的值为value,flag为数值域(复数、实数、正数)
real -> 实数
positive -> 正数
- 多个符号变量创建函数syms
syms x a b real
1.4.2 创建符号矩阵
>> A = sym('[a,b;c,d]')
A =[ a, b]
[ c, d]>> syms a b c d
>> B = [a, b ; c, d]B =[ a, b]
[ c, d]>> B = [a b ; c d]B =[ a, b]
[ c, d]
1.4.3 自由符号变量
解题围绕该变量进行
ax²+bx+c = 0
默认自由符号变量为x
1.5 符号表达式
- 符号表达式是由符号常量、符号变量、符号函数运算符以及专用函数连接起来的符号对象
- 符号表达式包括:符号函数与符号方程
- 区别:符号函数不带等号,符号方程带等号
1.6 符号计算的运算符
关系运算符只有:
== 与 ~=
1.7 符号运算中的函数运算
- 三角函数和双曲函数
除atan2外语数值运算相同 - 指数和对数函数
没有log2和log10 - 复数运算
没有提供相角的命令 - 矩阵代数命令
与数值运算相同
>> syms a11 a12 a21 a22
>> A = [a11 a22 ; a21 a22]A =[ a11, a22]
[ a21, a22]>> det(A) % 计算行列式的值ans =a11*a22 - a21*a22>> A' % 计算转置ans =[ conj(a11), conj(a21)]
[ conj(a22), conj(a22)]>> eig(A) % 计算特征值ans =a11/2 + a22/2 - (a11^2 - 2*a11*a22 + a22^2 + 4*a21*a22)^(1/2)/2a11/2 + a22/2 + (a11^2 - 2*a11*a22 + a22^2 + 4*a21*a22)^(1/2)/2>>
1.8 符号计算与数值计算的区别
(1)数值计算保留8位有效位数,每一次数值计算有一定的截断误差,重复的多次数值计算就可能会造成很大的累积误差;符号计算不进行数值计算,无截断误差。
(3)符号计算的时间较长,而数值计算速度快。
(4)数值计算中必须先对变量赋值;符号计算无须事先对变量赋值,但必须先定义,计算结果以标准的符号表达式形式给出。
二、符号数字及表达式
2.1 数值数字变符号数字
S = sym(A)
Sc = sym(A, flag)
flag:
有理分数'r'
十进制数'd'
浮点数'f'
估计误差'e'
2.2 符号数字变数值数字
2.2.1 符号数值变数值数字
number = double(number_sys)
2.2.2 符号矩阵转化为数值矩阵
B = eval(A)
2.2.3 符号计算精确度转化函数vpa(x,n)
vpa(x,n)
x是符号或者数值,有效位数是n位(默认是32)
2.3 化简各种表达式simplify
simplify(S)
将S转化为最简短形式
>> syms x;
>> f=(1/x^3+6/x^2+12/x+8)^(1/3);
>> simplify(f)ans =((2*x + 1)^3/x^3)^(1/3)
2.4 符号表达式的置换操作
2.4.1 子表达式置换操作subexpr(自动替换)
[RS,ssub]=subexpr(S,ssub)
从表达式S中自动提取公因子,记为ssub;
并将ssub置换S中的因子因子,重写S为RS
2.4.2 子表达式置换操作subs(人为操作)
R=subs(S,Old,New)
新符号变量New替代原来符号表达式S中的变量Old
数值代替所有符号变量则结果转化为数值数据。
>> syms x y
>> ss=x-sin(x)-1/sin(x);
>> subs(ss, sin(x), y)ans =x - y - 1/y
多重替换
R=subs(S,{Old1, Old2…},{New1, New2…})
三、符号微积分
3.1 符号表达式F的极限limit
limit(F,x,a) % 默认自变量x趋近于a的极限
>> syms k t
>> ss = sin(k*t) / (k*t);
>> limit(ss, t, 0)ans =1>> syms k x
>> ss = (1-1/x)^(k*x);
>> limit(ss, x, inf)ans =exp(-k)
3.2 符号表达式F的求导diff
diff(F,v,n) % 自变量v的n阶导
>> syms x t
>> f=[t^3-exp(x),t/x;t*cos(x),log(x)]f =[ t^3 - exp(x), t/x]
[ t*cos(x), log(x)]>> diff(f,x,1)ans =[ -exp(x), -t/x^2]
[ -t*sin(x), 1/x]>> diff(f,t,2)ans =[ 6*t, 0]
[ 0, 0]>> diff(diff(f, t, 1), x, 1)ans =[ 0, -1/x^2]
[ -sin(x), 0]
>> syms x y
>> g=(x^3*y-5*y)/(2*x^2+7);
>> gy = diff(g, y, 1);
>> subs(gy, [x, y], [1, 2]) % 用1,2去替换x,yans =-4/9
3.3 符号表达式F的积分int
int(F,v,a,b) % 自变量v从a到b的定积分
int(F,v) % 自变量v的不定积分
>> syms x
>> int(x*log(x), x, 1, 10)ans =50*log(10) - 99/4
>> syms a b x
>> f = [a*x, b*x; 1/x, sin(x)];
>> int(f, x)ans =[ (a*x^2)/2, (b*x^2)/2]
[ log(x), -cos(x)]
>> syms x y z
>> f = x^2 + y^2 + z^2;
>> int(int(int(f,x),y),z)ans =(x*y*z*(x^2 + y^2 + z^2))/3
3.4 级数求和symsum
symsum(F,v,a,b) % 变量v从a到b的和
symsum(F) % 默认自变量x的区间[0, v-1]求和
>> syms n
>> f = 1 / (2*n-1)f =1/(2*n - 1)>> r = symsum(f, n, 1, 100);
>> double(r) % 将符号数字转化为数值数字ans =3.2843
3.5 泰勒级数taylor
r=taylor(f,v,a,'Order',n) % 表达式f对自变量v在a处的n阶泰勒展开式。
>> syms x
>> taylor(exp(x), x, 100, 'order', 5)ans =exp(100) + exp(100)*(x - 100) + (exp(100)*(x - 100)^2)/2 + (exp(100)*(x - 100)^3)/6 + (exp(100)*(x - 100)^4)/24
四、符号方程求解
4.1 符号方程
字符串型
s=solve(‘eq1’,’eq2’,…,’eqn’,’var1’,’var2’,…,’varn’)
符号型
s=solve(exp1, exp2,…, expn,var1,var2,…,varn)
‘eq1’,…,’eqn’:字符串表达的方程 ;
exp1,…,expn:符号表达方程 ;
’var1’,…,’varn’:求解变量名, 省略时symvar确定n个变量;
S:方程组的解,是一个架构数组
若字符串表达的方程 eqn 中不含等号,则表示解方程 f=0
[x,y,z] = solve('s+y+z=1', 'x-y+z=2', '2*x-y-z=1',x,y,z)x =1 - s/2y =-(3*s)/4z =1 - s/4
[MATLAB]符号计算相关推荐
- matlab二阶导数表示,【单选题】在MATLAB符号计算中,y的二阶导数表示为( )。...
[单选题]在MATLAB符号计算中,y的二阶导数表示为( ). 更多相关问题 关于个性化的形成机制,以下理解正确的是(). 评述颜之推的家庭教育思想. 目前主要的移动服务平台有哪几类() 在一个简单的 ...
- Matlab符号计算结果过长无法在屏幕中显示的问题
1.输出到'txt'文件. 要输出为txt文件,用到fopen.fprintf和fclose命令. fopen命令用来新建文件,并用参数w表示无条件写入内容. fprintf直接开始写入内容,fclo ...
- 用符号方法求下列极限或导数matlab,实验7答案 Matlab符号计算
matlab实验报告答案 实验7 Matlab符号计算 实验目的: 1. 掌握定义符号对象的方法: 2. 掌握符号表达式的运算法则以及符号矩阵运算. 3. 掌握求符号函数极限及导数的方法. 4. 掌握 ...
- matlab实验符号计算答案,实验五matlab符号计算
实验五matlab符号计算 实验 5 符号计算 教师评分班级 学号 姓名实验日期 2014 年 6 月 17 日 星期 二 第 1 至 2 节课实验地点实验目的1. 掌握定义符号对象的办法2. 掌握符 ...
- matlab实验符号计算答案,实验7 Matlab符号计算.doc
实验7 Matlab符号计算 实验目的: 掌握定义符号对象的方法: 掌握符号表达式的运算法则以及符号矩阵运算. 掌握求符号函数极限及导数的方法. 掌握求符号函数定积分和不定积分的方法. 实验内容: 已 ...
- 第9章matlab符号计算答案,第9章 MATLAB符号计算_MATELAB课程设计_ppt_大学课件预览_高等教育资讯网...
第 9章 MATLAB符号计算 9.1 符号对象 9.2 符号微积分 9.3 级 数 9.4 符号方程求解 9.1 符号对象 9.1.1 建立符号对象 1.建立符号变量和符号常量 MATLAB提供了两 ...
- matlab第七章符号对象,MATLAB语言:第七章 MATLAB符号计算
<MATLAB语言:第七章 MATLAB符号计算>由会员分享,可在线阅读,更多相关<MATLAB语言:第七章 MATLAB符号计算(33页珍藏版)>请在人人文库网上搜索. 1. ...
- matlab符号计算实验心得,Matlab符号计算总结
第六章 Matlab符号计算 在科学研究和工程应用中,除了存在大量的数值计算外,还有对符号对象进行的运算,即直接对抽象的符号对象进行的计算,并将所得到的结果以标准的符号形式来表示.符号计算可以得到比数 ...
- matlab 的 符号,MATLAB符号计算
<MATLAB符号计算>由会员分享,可在线阅读,更多相关<MATLAB符号计算(33页珍藏版)>请在人人文库网上搜索. 1.第7章 MATLAB符号计算,7.1 符号计算基础, ...
- matlab 符号计算,第3章 MATLAB符号计算
第3章MATLAB符号计算 符号计算则是可以对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理.MATLAB具有符号数学工具箱(Symbolic Math Toolbox),将符号运算结合到 ...
最新文章
- GPB编辑部招聘启事 2019 Impact Factor破7;CiteScore破10
- Linux下C/C++编译环境搭建
- Apache Struts2(S2-045)漏洞反思总结
- Requirejs2.0笔记
- golang相关在线学习文档
- 新手入门 | 上链第一步,如何完成XuperChain环境、服务部署
- 【百度地图API】自行获取区域经纬度的工具
- Lambdas:来到您附近的Java 8!
- LeetCode LCP 30. 魔塔游戏(优先队列)
- C语言 NULL 和 0 区别 - C语言零基础入门教程
- qq for android 1.0,QQ for Pad 1.0正式发布 Android专版
- android listview删除刷新,如何刷新Android ListView?
- ftp扫描工具,ftp扫描工具如何使用?ftp工具很多用户选iis7服务器管理工具
- R语言基础 期中考试
- python统计英文文本词频和提取文本关键词
- 安卓执法仪录像之进程间共享内存
- 为什么wps数字前面有撇号_excel表格中数据前有撇号-Excel 如何去除数字前面的撇号...
- originpro2021导入excel(.xls)
- js(对象一行拆分为多行)
- 蓝牙连接音箱抓空包、HCI、sitalog