Matlab符号变量

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Matlab的符号运算功能强大,看了些资料,都比较啰嗦,然后再次总结为一个m 文件测试大部分符号运算功能%% 符号变量与符号表达式%%%%%%%%%%%%%%%%%%%%%%%%%%%

%1.符号变量与符号表达式

%%%%%%%%%%%%%%%%%%%%%%%%%%%

clear all ;

clc;

close all;

% f =sym( 'sin(x)+5x')

% f ——符号变量名

% sin(x)+5x——符号表达式

% ' '——符号标识

% 符号表达式一定要用' ' 单引号括起来matlab才能识别

% ' ' 的内容可以是符号表达式,也可以是符号方程。

% 例:

% f1=sym('a*x^2+b*x+c') ——二次三项式

% f2=sym('a*x^2+b*x+c=0' )——方程

% f3=sym('Dy+y^2=1') ——微分方程

% 符号表达式或符号方程可以赋给符号变量,以后调用方便;也可以不赋给符号变量直接参与运算

% syms 命令用来建立多个符号量,一般调用格式为:

% syms 变量1 变量2 ... 变量n

%% 符号矩阵的创建

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%2.符号矩阵的创建

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 数值矩阵A=[1,2;3,4]

% A=[a,b;c,d] ——不识别

% @1.用matlab函数sym创建矩阵(symbolic的缩写)

% 命令格式:A=sym('[ ]')

% ※ 符号矩阵内容同数值矩阵

% ※ 需用sym指令定义

% ※ 需用' '标识

% 例如:

A = sym('[a , 2*b ; 3*a , 0]')

% A =

% [ a, 2*b]

% [3*a, 0]

% 这就完成了一个符号矩阵的创建。

% 注意:符号矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的一个重要区别。%@2.用字符串直接创建矩阵(这种方法创建的没有什么用处)

% ※模仿matlab数值矩阵的创建方法

% ※需保证同一列中各元素字符串有相同的长度。

% 例:

A =['[ a,2*b]'; '[3*a, 0]']

% A =

% [ a, 2*b]

% [3*a, 0]

%@3.符号矩阵的修改

% a.直接修改

% 可用光标键找到所要修改的矩阵,直接修改

% b.指令修改

% ※用A1=sym(A,*,*,'new') 来修改。这个经过测试,不能运行% ※用A1=subs(A, 'new', 'old')来修改

% % 例如:A =[ a, 2*b]

% [3*a, 0]

A = sym('[a , 2*b ; 3*a , 0]')

% A1=sym(A,2,2,'4*b') %%等效于A(2,2)='4*b';

% A1 =[ a, 2*b]

% [3*a, 4*b]

A1=subs(A,'0','4*b')

A2=subs(A1, 'c', 'b')

% A2 =[ a, 2*c]

% [3*a, 4*c]

%@4.符号矩阵与数值矩阵的转换

% ※将数值矩阵转化为符号矩阵

% 函数调用格式:sym(A)

A=[1/3,2.5;1/0.7,2/5]

% A =

% 0.3333 2.5000

% 1.4286 0.4000

B=sym(A)

% ans =

% [ 1/3, 5/2]

% [10/7, 2/5]

% ※将符号矩阵转化为数值矩阵

% 函数调用格式: numeric(A)

% B =

% [ 1/3, 5/2]

% [10/7, 2/5]

%numeric(B) 这个函数不存在了

VPA(B,4) %发现这个函数可用

% R = VPA(S) numerically evaluates each element of the double matrix % S using variable precision floating point arithmetic with D decimal % digit accuracy, where D is the current setting of DIGITS.

% The resulting R is a SYM.

%

% VPA(S,D) uses D digits, instead of the current setting of DIGITS.

% D is an integer or the SYM representation of a number.

% ans =

% [ .3333, 2.500]

% [ 1.429, .4000]

%% 符号运算

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%3. 符号运算%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 例1:

f=sym( '2*x^2+3*x-5'); g=sym( 'x^2+x-7');

h= f+g

% h=

% 3*x^2+4*x-12

% 例2:

f=sym('cos(x)');g=sym('sin(2*x)');

f/g+f*g

% ans =

% cos(x)/sin(2*x)+cos(x)*sin(2*x)

%% 查找符号变量

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%4.查找符号变量%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% % findsym(expr) 按字母顺序列出符号表达式 expr 中的所有符号变量

% % findsym(expr, N) 列出 expr 中离 x 最近的 N 个符号变量

% 若表达式中有两个符号变量与 x 的距离相等,则ASCII 码大者优先。

% ※常量 pi, i, j 不作为符号变量

% 例:

f=sym('2*w-3*y+z^2+5*a');

findsym(f)

% ans =

% a, w, y, z

findsym(f,3)

% ans =

% y,w,z

findsym(f,1)

% ans =

相关文档
最新文档