MATLAB符号变量的创建和简单运算

article/2025/9/18 22:00:34

声明:本文章中数据来自清风老师数学建模课程

文章目录

  • MATLAB符号变量的创建和简单运算
    • 1、符号变量
      • 1. 1 符号变量的创建
      • 1.2 符号方程的创建
      • 3 符号矩阵的创建
    • 2、符号运算
      • 2.1 简单运算
      • 2.2 表达式的整理
      • 2.3 因式分解
      • 2.4 多项式展开
      • 2.5 合并
      • 2.6 计算分子与分母
      • 2.7 让结果显示的更加自然

MATLAB符号变量的创建和简单运算

1、符号变量

1. 1 符号变量的创建

使用syms创建符号变量

syms x  		%  创建一个符号变量,sym是symbolic的缩写
syms a b c		%  创建多个符号变量

在这里插入图片描述

1.2 符号方程的创建

方法一:先创建符号变量后创建符号方程

syms a x		% 创建符号变量
y = a*x+x^2		% 创建符号方程

方法二:str2sym命令创建,在MATLAB 2017b后可以使用

y = str2sym('a*x+x^2') 

创建符号方程后,y的类型在工作区中观察到为1x1sym

3 符号矩阵的创建

%% 符号矩阵的创建
syms alpha
M = [cos(alpha)  -sin(alpha);sin(alpha)  cos(alpha)]

在这里插入图片描述

2、符号运算

了解如何符号变量后,我们可以使用符号变量进行一些简单的运算、多项式运算、分式运算等等

2.1 简单运算

%% 简单运算
syms a b c d e
y = a + b
% a + b
x = c - d
% c - d
y1 = x*y
% (a + b)*(c - d)
y2 = y1/y
% c - d
y3 = y1^3
% (a + b)^3*(c - d)^3
y4 = sqrt(y3)   
% ((a + b)^3*(c - d)^3)^(1/2)
y5 = exp(y4)
% exp(((a + b)^3*(c - d)^3)^(1/2))

2.2 表达式的整理

有时候我们的表达式是可以继续通分化简的,这时我们可以使用simplify命令来进行通分化简。如:

%% 符号表达式的整理
clear;clc% 化简
syms a
y=(cot(a/2)-tan(a/2))*(1+tan(a)*tan(a/2))
simplify(y)
% 2/sin(a)

2.3 因式分解

使用MATLAB中的factor命令可以对整数或者多项式进行因式分解

%% 因式分解
factor(12) % 对常数进行因式分解 
%      2     2     3
syms m n x
y = -24*m^2*x-16*n^2*x
factor(y)
% [ -8, x, 3*m^2 + 2*n^2]
y1=m^3-n^3
factor(y1)
% [ m - n, m^2 + m*n + n^2]		% 立方差公式的因式分解 
y2 = m^2-n^2
factor(y2)
% [ m - n, m + n]				% 平方差公式的因式分解

2.4 多项式展开

使用expand将因式展开为多项式

%% 多项式展开
syms a x
y = a*(x^2-a)^2+(x-2)
expand(y)
% a^3 - 2*a^2*x^2 + a*x^4 + x - 2

2.5 合并

使用collect命令可以进行类似合并同类项的操作

%% 合并
syms x y
z = (x+y)^2*y+5*y*x-2*x^3
% expand(z)   - 2*x^3 + x^2*y + 2*x*y^2 + 5*x*y + y^3
collect(z,x)
% y*x^2 - 2*x^3 + (2*y^2 + 5*y)*x + y^3
collect(z,y)
% y^3 + 2*x*y^2 + (x^2 + 5*x)*y - 2*x^3

2.6 计算分子与分母

使用numden来计算分式的分子和分母
返回值为两个[z1,z2],其中z1为分子,z2为分母

%% 计算分子与分母
% [z1,z2] = numden(2.5)  % 会报错,因为numden的输入变量不能是数值,只能是符号变量
% ans = sym(2.5);  % sym函数可以将数值2.5转换为符号
[z1,z2] = numden(sym(2.5)) % 对常数计算分子与分母
% z1 = 5
% z2 = 2
syms x y
z = 1/x*y+x/(x^2-2*y)
[z1,z2] = numden(z)  %z1分子,z2分母
% z1 = - x^2*y - x^2 + 2*y^2
% z2 = x*(- x^2 + 2*y)

2.7 让结果显示的更加自然

看下面命令

syms x y
M = (1/x*y+x/(x^2-2*y)-x^2/(3+y)^2)^2;
expand(M)  

通过expand命令对M进行展开,结果为:

y^2/x^2 + x^4/(y^4 + 12*y^3 + 54*y^2 + 108*y + 81) + (2*x^3)/(- x^2*y^2 - 6*x^2*y - 9*x^2 + 2*y^3 + 12*y^2 + 18*y) - (2*y)/(- x^2 + 2*y) + x^2/(x^4 - 4*x^2*y + 4*y^2) - (2*x*y)/(y^2 + 6*y + 9)

看到这样的结果你是不是非常绝望呢??????????????????
如果我们要把这样的结果转化为人们习惯的书写方式放到论文中,是不是会崩溃呢??????
其实我们可以利用MATLAB提供的mupad工具箱(一个商用计算机代数系统,“Multi Processing Algebra Data Tool”的缩写)来帮助我们
方法:在MATLAB中的命令行中输入mupad,回车打开工具箱,然后将上面M的展开结果复制到里面,回车就OK了
在这里插入图片描述
在这里插入图片描述

当然你可能会遇到这样的情况:
在这里插入图片描述
这是说明在后序的发行版本中可能会将该工具箱移除,建议我们使用通过新建实时脚本来解决。

创建实时脚本
在这里插入图片描述
将M的展开结果粘贴过去,运行
在这里插入图片描述


http://chatgpt.dhexx.cn/article/jedJFDj0.shtml

相关文章

第十一章:MATLAB:符号运算(符号与数值,符号矩阵)

第十一章:MATLAB符号运算 11.1. 符号与数值11.1.1. 符号与数值间的转换实例-数值与符号转换 11.1.2. 符号表达式与数值表达式的精度设置实例-魔方矩阵的数值解实例-稀疏矩阵的数值解实例-伴随矩阵的数值解实例-托普利兹矩阵的数值解 11.2. 符号矩阵11.2.1. 符号矩阵…

MATLAB的符号运算基础

在数学运算中,运算的结果如果是一个数值,可以称这类运算为数值运算;如果运算结果为表达式,在MATLAB中称为符号运算,符号计算是对未赋值的符号对象(可以是常数、变量、表达式)进行运算和处理。MATLAB具有符号数学工具箱…

MATLAB符号运算——积分

积分 积分是微积分学与数学分析里的一个核心概念。通常分为定积分和不定积分两种。直观地说,对于一个给定的正实值函数,在一个实数区间上的定积分可以理解为在坐标平面上,由曲线、直线以及轴围成的曲边梯形的面积值(一种确定的实…

MATLAB的符号计算

MATLAB的符号计算 matlab的符号计算是通过sym、syms 函数去创建符号对象或者符号表达式。例如一元二次函数我们便可以通过syms 函数创建。 syms a b c x y z f1 a * x^2 b * x c; f2 sin(x) * cos(y); f3 (x y)/z; 符号表达式常用运算函数 函数名说明函数名说明facto…

matlab中的符号对象与符号运算

符号对象(Symbolic Objects 不同于普通的数值计算)是Matlab中的一种特殊数据类型,它可以用来表示符号变量、表达式以及矩阵,利用符号对象能够在不考虑符号所对应的具体数值的情况下能够进行代数分析和符号计算(symbolic math operations),例如…

Matlab系列之符号运算(上)

Matlab系列之符号运算 前言创建符号对象基本操作符号变量的基本操作符号表达式的基本操作四则运算多项式的操作符号表达式化简符号表达式的替换反函数求解复合函数 更多精彩等你发现~ 前言 看到文章的名字,可能很多人都没懂意思,如果叫它的另一个名字&a…

MATLAB学习之符号运算

创建符号变量数值与符号的转换数值矩阵转换为符号矩阵符号替换 本文介绍MATLAB中的符号运算; 1. 创建符号变量 符号常量是不含变量的符号表达式,用 sym 命令来创建符号常量。 sym(‘常量’):创建符号常量。 asym(sin(2)) sym 命令也可以把…

MATLAB08:符号运算

pdf版本笔记的下载地址: MATLAB08_符号运算(访问密码:3834) MATLAB08:符号运算 创建符号变量创建符号数字创建符号变量 符号运算符号表达式的化简与代入符号表达式的化简符号表达式的代入 求方程的解析解解单变量方程解多变量方程解方程组 符…

MATLAB基础(三)符号运算

符号对象的建立 符号对象的建立:sym 和 syms sym 函数用来建立单个符号变量,一般调用格式为:符号变量 sym(A) 参数 A 可以是一个数或数值矩阵,也可以是字符串 例如:asym(a) a 是符号变量 bsym(1/3) …

MATLAB符号运算部分知识总结

1. 符号表达式的定义 1.1符号变量的定义 符号变量通过命令syms和sym定义,syms命令一次定义一个或多个符号变量,sym命令一次只能定义一个符号变量。定义好的符号函数可以通过命令symvar检查其自变量。 MATLAB系统有默认的符号自变量,主要为&am…

[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 数…

MATLAB符号运算

在数学、物理学及力学等各种学科和工程应用中,经常还会遇到符号运算的问题。在MATLAB中,符号运算是为了得到更高精度的数值解,但数值的运算更容易让读者理解,因此在特定的情况下,分别使用符号或数值表达式进行不同的运…

matlab 运算符

1、字符串 字符串是用单引号来标示的,例如:SI Have a Dream.,赋值号之后在单引号内的字符即是一个字符串,而S是一个字符串变量。 2、运算符 MATLAB 运算符分为算术运算符、关系运算符和逻辑运算符。 1、算术运算符 矩阵算术运算符 运算符…

将stylus 样式 转换成sass,scss

因为有一个项目使用的是 stylus. 后来的项目使用了 scss, 但是很多样式代码都可以共用的, 就是格式不太一样 要是一点一点来转化 就累死了 就想着网上找到一个工具也可以 能实现快速转换 没想到还真有 npm install -g stylus-converter mac sudo npm install -g s…

@import ‘./common/stylus/mixins.styl‘引起的一系列错误

import ./common/stylus/mixins.styl’引起的一系列错误 环境&#xff1a;vue-cli 4 代码&#xff1a; <template><div><h1>App 组件</h1><button class"btn btn1">按钮1</button><button class"btn btn2">按…

stylus的使用

欢迎访问我的博客地址 : 博客地址 stylus的使用 前提条件是已经有了vue项目&#xff0c;如果没有&#xff0c;请先建立&#xff0c;具体方法看这里https://cn.vuejs.org/v2/guide/installation.html 安装stylus 建立好项目后我们来安装stylus npm install -D stylus-loader s…

CSS预处理框架——Stylus

目录 内容介绍一、特征二、选择器&#xff08;Selectors&#xff09;  1、缩排 :book:  2、规则集  3、父级引用  4、消除歧义 三、变量&#xff08;Variables&#xff09;  1、变量 :mag:  2、标识符&#xff08;变量名&#xff0c;函数等&#xff09;  3、属性…

引入tinymce-vue后调试器报错 Refused to apply styl

今天在使用tinymce-vue的时候&#xff0c;遇到这些报错&#xff1a; 其中橙色框部分是因为没有引入对应插件导致的&#xff08;code , lineheight , indent2em&#xff09;;再我们下载的包中其实已经有了这些插件&#xff0c;只是页面没有引入&#xff0c;我们只需要页面引入就…

html list-style的作用,list-style是什么意思?list-style样式属性详解

本篇文章给大家带来的内容是关于list-style是什么意思?list-style样式属性详解&#xff0c;有一定的参考价值&#xff0c;有需要的朋友可以参考一下&#xff0c;希望对你有所帮助。 一、list-style作用与用处 list-style是设置列表li的样式。比如li前面为阿拉伯数字、圆点、实…

.styl格式的CSS样式文件是什么文件

.styl格式的CSS样式文件是什么文件 Stylus 是一个 基于Node.js的CSS的预处理框架 。可以说是一种新型语言&#xff0c;其本质上做的事情与sass/less等类似。Stylus 比less更强大&#xff0c;而且基于nodejs&#xff1b;比sass更符合我们的思路。 最近研究了一下vue.js项目的高…