matlab radsimp,[转载]MATLAB学习笔记(八)

符号运算

符号运算分为以下几类:

符号表达式和符号矩阵的操作整体定义为

符号微积分

符号线性方程

符号微分方程

A、符号变量、符号表达式和符号方程的分解

一、 生成符号变量要使用sym和syms:

使用sym函数可以定义符号表达式,此时有两种定义方法:

1、使用sym函数将表达式中的每一个变量定义为符号变量;

2、使用sym函数将表达式整体定义为符号变量(但并没有将式子中的变量也定义为符号变量);

方式一的应用举例:

>> a=sym('a');

>>

b=sym('b');

>>

c=sym('c');

>>

x=sym('x');

>> f=a*x^2+b*c+c

f

=

a*x^2 + c +

b*c

方式二的应用举例:

>>

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

f

=

a*x^2 + c +

b*c

>>

g=f^2+4*f-2

g

=

4*c + 4*b*c + 4*a*x^2

+ (a*x^2 + c + b*c)^2 - 2

一、使用syms函数定义符号变量和符号表达式

Syms函数的功能比sym函数的功能更为强大,它可以一次创建多个符号变量;而且,使用的格式很简单:(即将sym函数进行系统化,对变量进行统一的转化)

Syms var1 var2 var3

………

应用实例:

>> syms a b c x

>>

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

f

=

a*x^2 + b*x +

c

>>

g=f^2+4*f-2

g

=

4*c + 4*b*x + 4*a*x^2

+ (a*x^2 + b*x + c)^2 - 2

三、符号方程的生成

方程与函数的区别在于一个有数字和变量组成的表达式,而方程则是由函数和等号组成的等式;

应用实例:

>> %符号方程的生成

>> %使用是sym函数生成符号方程

>>

fch=sym('sin(x)+cos(x)=1')

fch =

cos(x) + sin(x) =

1

B、符号变量的基本操作

一、findsym函数用于寻找符号变量

Fundsym函数用于寻找一个变量表达式中存在的符号变量,

实例应用:

>> syms x n

>> f=sym('x^n')

f

=

x^n

>>

syms a b t

>> g=sym('a*t+b')

g

=

b

+ a*t

>>

findsym(f)

ans

=

n,x

>> findsym(g)

ans

=

a,b,t

二、任意精度的符号表达式

MATLAB提高了digits和vpaliang函数来实现任意精度的符号运算

(1)、digits函数设定所使用的精度

单独使用digits命令将在‘命令’窗口中显示当前设定的精度值;

Digits(D)命令用于设定数值的精确度为D;

D=digits命令也是用于“命令”窗口中返回当前设定的数值精度;

(2)、vpa函数进行可控精度运算

R=vpa(s)命令用于将显示符号表达式s在当前精度D下的值,其中D是使用digits函数设定的精度值

Vpa(S,D)命令用于显示s值在当前精度D下的值;

应用实例:

>> digits

Digits = 32

>>

a=vpa(pi)

a

=

3.1415926535897931159979634685442

>>

b=vpa(pi,100)

b

=

3.141592653589793115997963468544185161590576171875

>>

digits(100)

>> b=vpa(pi,100)

b

=

3.141592653589793115997963468544185161590576171875

三、数值型变量与符号型变量的转换形式

对于任意数值型变量t,使用sym函数可以将其转换为4种形式的符号变量,分别为有理数形式:sym(t)或、sym(t,‘r’)

、浮点型sym(t,‘f’)

、指数型sym(t,‘e’)

、数值精度形式sym(t,‘d’)

应用实例:

>> t=0.01

t

=

0.0100

>> sym(t)

%有理数形式

ans =

1/100

>>

sym(t,'r')

%有理数形式

ans =

1/100

>>

sym(t,'f')

%浮点型形式

ans =

5764607523034235/576460752303423488

>>

sym(t,'e') %指数型形式

ans =

eps/1067 +

1/100

>>

sym(t,'d')

%数值精度形式

ans =

0.01000000000000000020816681711721685132943093776702880859375

使用如上所述的方法可以将数值型矩阵转换符号型矩阵,注意此时只能将其转换为有理数形式;

>> A=hilb(4)

A

=

1.0000

0.5000

0.3333

0.2500

0.5000

0.3333

0.2500

0.2000

0.3333

0.2500

0.2000

0.1667

0.2500

0.2000

0.1667

0.1429

>> A=sym(A)

%将矩阵中的每一个元素转换为有理数形式

A

=

[ 1,

1/2, 1/3, 1/4]

[ 1/2,

1/3, 1/4, 1/5]

[ 1/3,

1/4, 1/5, 1/6]

[ 1/4,

1/5, 1/6, 1/7]

C、符号表达式的操作

操作共包括:四则运算、合并同类型、多项式分解和简化

一、四则运算:

符号表达式的四则运算与通常的算术运算式一样,可以进行四则运算:

实例应用:

>> syms x y a b

>>

fun1=sin(x)+cos(x)

fun1 =

cos(x) +

sin(x)

>> fun2=a+b

fun2

=

a

+ b

>>

fun1+fun2

ans =

a

+ b + cos(x) + sin(x)

>>

fun1*fun2

ans =

(a

+ b)*(cos(x) + sin(x))

二、合并同类项

在MATlab中,使用collect函数来合并同类项,其使用格式如下:

Collect(S,V)命令用于将符号矩阵S中所有同类项合并,并以v为符号变量输出;

Collect(s)命令使用findsym函数规定的默认变量代替上式中的V;

应用实例:

>> syms x y

>>

collect(x^2*y+y*x-x^2-2*x)%此处默认x为符号变量

ans =

(y

- 1)*x^2 + (y - 2)*x

>>

collect(x^2*y+y*x-x^2-2*x,y)%此处修改为以y为符号变量

ans =

(x^2 + x)*y - x^2 -

2*x

>>

f=-1/4*x*exp(-2*x)+3/16*exp(-2*x);

>> collect(f)

ans =

(-1/(4*exp(2*x)))*x +

3/(16*exp(2*x))

使用horner函数进行多项式的因式分解

应用实例:

>> syms x

>>

fun1=3*x^3+5*x^2-14*x-26

fun1 =

3*x^3 + 5*x^2 - 14*x -

26

>>

horner(fun1)

ans = x*(x*(3*x + 5) -

14) - 26

四、符号多项式的简化

在MATLAB 7语言中,使用simplify函数和simple函数进行符号表达式的简化;

A、simplify函数的使用:

Simplify(S)命令将符号表达式S中的每一个元素进行简化,缺点是:即使多次使用simplify函数也不一定得道最简形式

用simple函数进行表达式简化得到的结果要比simplify函数得到的结果更加简化和合理,使用格式如下:

Simple(S)命令用于多种代数简化方法对符号表达式S进行简化,并显示其中最简化的结果;

[R,how]=simple(S)命令在返回最简单的结果的同时,返回一个描述简化方法的字符串how

应用实例:

>> syms x

>>

fun1=(1/x+5/x^2+9/x+2)^(1/4)

fun1 =

(10/x + 5/x^2 +

2)^(1/4)

>>

sfy1=simplify(fun1)

sfy1 =

((10*x + 5)/x^2 +

2)^(1/4)

>>

sfy2=simplify(sfy1)

sfy2 =

((10*x + 5)/x^2 +

2)^(1/4)

>>

simplify(sin(x)^2+cos(x)^2)

ans =

1

>>

s=2*cos(x)^2-sin(x)^2;

>> simple(s)

simplify:

2

- 3*sin(x)^2

radsimp:

2*cos(x)^2 -

sin(x)^2

simplify(100):

3*cos(x)^2 -

1

combine(sincos):

(3*cos(2*x))/2 +

1/2

combine(sinhcosh):

2*cos(x)^2 -

sin(x)^2

combine(ln):

2*cos(x)^2 -

sin(x)^2

factor:

2*cos(x)^2 -

sin(x)^2

expand:

2*cos(x)^2 -

sin(x)^2

combine:

2*cos(x)^2 -

sin(x)^2

rewrite(exp):

2*((1/exp(x*i))/2 +

exp(x*i)/2)^2 - (1/2*i*exp(i*x) - 1/2*i*exp(-i*x))^2

rewrite(sincos):

2*cos(x)^2 -

sin(x)^2

rewrite(sinhcosh):

2*cosh(-x*i)^2 +

sinh(-x*i)^2

rewrite(tan):

(2*(tan(x/2)^2 -

1)^2)/(tan(x/2)^2 + 1)^2 - (4*tan(x/2)^2)/(tan(x/2)^2 +

1)^2

mwcos2sin:

2

- 3*sin(x)^2

collect(x):

2*cos(x)^2 -

sin(x)^2

ans =

2

- 3*sin(x)^2

>>

[r,how]=simple(s)

r

=

2

- 3*sin(x)^2

how =

simplify

C、subs函数用于替换求值

使用subs函数可以将符号表达式中的字符型变量用数值型变量替换,格式如下:

Subs(s)命令用于将符号表达式中的所有符号变量用调用函数中的值或是MATLAB 7工作区间的值代替;

Subs(s,new)命令将符号表达式s中的自由符号变量用数值型变量或表达式new替换;

Subs(s,old,new)命令将符号变量s中的符号变量old用数值型变量或表达式new替换

应用实例:

>> syms x y

>>

f=x^2*y+3*x*sqrt(y)

f

=

x^2*y +

3*x*y^(1/2)

>>

subs(f,x,5)

ans =

25*y +

15*y^(1/2)

>>

subs(f)

ans =

x^2*y +

3*x*y^(1/2)

>>

subs(f,y,5)

ans =

5*x^2 +

3*5^(1/2)*x

>> findsym(f,1) %符号表达式f中系统默认的符号变量

ans

=

x

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/356747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows,python3.x下安装pyspider

由于是初学者,业余学习,习惯使用windows,初次了解到pyspider写代码和调试代码非常简便;作者binux是在Ubuntu下部署测试的。在作者的博客看到windows下安装的讨论。windows直接安装失败主要是lxml、pycurl安装失败,需要…

matlab实验符号计算答案,实验五matlab符号计算

实验五matlab符号计算 实验 5 符号计算 教师评分班级 学号 姓名实验日期 2014 年 6 月 17 日 星期 二 第 1 至 2 节课实验地点实验目的1. 掌握定义符号对象的办法2. 掌握符号表达式的运算法则以及符号矩阵运算3. 掌握求符号函数极限及导数的方法4. 掌握求符号函数定积分和不定积…

junit4 单元测试框架_超越JUnit –测试框架的替代方案

junit4 单元测试框架JUnit是事实上的Java单元测试框架,但是可能有一些新的(不是那么新的)框架可以用于Web开发。 在采用之前可能要问自己的问题: 它们是否快速,容易开发并因此成本低廉? 他们运行快并因此鼓…

Java学习笔记之:Java String类

一、引言 字符串广泛应用在Java编程中,在Java中字符串属于对象,Java提供了String类来创建和操作字符串。 创建字符串最简单的方式如下: String str "Hello world!"; String类型是特殊的引用类型,我们也可以通过实例化的方式来创建 …

java循环输入直到,使用循环接受其他用户输入,直到用户输入结束输入的值

我是Java的新手 . 我需要一些帮助,使用循环接受其他用户输入,直到用户输入结束输入的值 . 我的问题从语句“System.out.println(”你完成了吗?输入大写的Y / N)开始 . 下面是我的代码 .公共类EmployeeData {//declare variablesprivate Strin…

WildFly 10 CR 2发布– Java EE 7,Java 8,Hibernate 5,JavaScript支持热重载

昨天,WildFly团队发布了最新版本的WildFly 10 。 CR2很可能是预计于十月份发布最终版本之前的最后一个版本。 即使主要支持的Java EE规范是7,WildFly 8和WildFly 9仍具有许多新功能,该版本现在具有三个服务器版本,实现了Java EE 7…

php中什么时候用传值,php中传值与传引用的区别。什么时候传值什么时候传引用?...

java中的this与super的区别java中的this与super的区别 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base { Base() { System.out.pr ...php传值和传引用的区别php传值和传引用的区别所谓值传递,就是说仅将对象的值传递给目标对象,就相当于…

openshift 部署_OpenShift Express:部署Java EE应用程序(支持AS7)

openshift 部署在过去的几年中,我越来越多地听说过“云”服务。 最初,我并不是很想尝试一下。 但是几个月后(一年?),我决定看看这是怎么回事。 我从事Java EE开发已有7年以上,因此,我…

迪克逊准则matlab,浙江科技学院学报

引言传统的农业栽培需要遵循季节性及周期性的栽培规律,受外界环境的影响较大,相应的栽培技术无法得到良好的栽培结果[1]。而温室大棚通过环境控制器调节温室环境,为作物提供了合适的生长环境。因此,它在农业领域的应用越来越广泛,温室环境控制系统的研究成为人们关注的热点[2-5…

Linq表达式和Lambda表达式用法对比

什么是Linq表达式&#xff1f;什么是Lambda表达式&#xff1f;前一段时间用到这个只是&#xff0c;在网上也没找到比较简单明了的方法&#xff0c;今天就整理了一下相关知识&#xff0c;有空了再仔细研究研究 public Program() { List<Student> allStudent new List<…

使用FlexDeploy对融合中间件应用程序进行自动化软件测试

自动化软件测试是任何软件组织都应执行的强制性活动之一&#xff0c;以保证其产品质量。 但是&#xff0c;此过程通常变得非常复杂&#xff0c;尤其是涉及由多个不同部分组成的现代复杂系统的自动化测试时。 所有这些部分都基于不同的技术&#xff0c;显然&#xff0c;应该使用…

uploadify插件的使用

插件&#xff1a; uploadify.css jquery.uploadify.js bootstrap html代码&#xff1a; <input type"file" name"uploadify_coverimg" id"uploadify" /> <div id"the_coverimg"></div> js代码&#xff1a; $("…

wxlogin php,wxlogin.php

if($_GET[echostr]){echo $_GET[echostr];die();}/*** 开发规范&#xff1a;* 1.不同版本不同控制器以及模板* 2.不同版本不同数据库&#xff0c;但是对应数据表表结构必须一致* 3.不同版本共用service层&#xff0c;所以修改表结构必须所有版本统一*/// ---------------------…

关于人生倒计时的一个小玩意,纯属业余

人生倒计时 人生倒计时 出生年份&#xff1a; 出生月份&#xff1a; <!DOCTYPE html> <html id"spLianghui"> <head><meta http-equiv"Content-Type" content"text/html; charsetgb2312" /><title>人生倒计时<…

java 反编译项目_Java 7 –反编译项目硬币

java 反编译项目大家好&#xff0c;该是从2012年开始写作的时候了。正如您在其他博客中可能已经看到的那样&#xff0c;有一些更改可以使您使用Java编程时的开发人员生活变得更加轻松&#xff1a;Diamond运算符&#xff0c;Switchs中的Strings&#xff0c;尝试使用资源&#xf…

日期格式无法识别 oracle,Oracle时间统计 - 不以物喜-不以己悲的个人空间 - OSCHINA - 中文开源技术交流社区...

select count(*) from Member_user where to_char(CREATEDATE,yyyy-mm-dd)to_char(sysdate,yyyy-mm-dd); --今天select count(*) from Member_user where to_char(CREATEDATE,dd)to_char(sysdate,dd); --当天&#xff0c;所有月份的这个号select count(*) from Member_user whe…

JavaOne 2015继续,Java将永远存在(……也许是长篇大论)

好的。 也许我的标题太夸张了。 我确实相信Java&#xff0c;生态系统&#xff0c;社区&#xff0c;虚拟机和母编程语言将会存在很长一段时间。 有什么可以偏离的&#xff1f; 假设在我的酒店房间中花费大量时间&#xff0c;在我的演讲中增加技巧之间&#xff0c;我认为这将是一…

生产上oracle扩展表空间,oracle基于裸设备(raw device)扩充表空间

首先在oracle中查询表空间的使用情况&#xff0c;确认是哪个表空间不足。select df.tablespace_name “Tablespace”,df.bytes/(1024*1024) “Total Size(MB)”, sum(fs.bytes)/(1024*1024) “Free Size(MB)”, round(sum(fs.bytes)*100/df.bytes) “% Free”, round((df.bytes…

VC包含目录、附加依赖项、库目录及具体设置

包含目录&#xff1a;#include <headerfile.h>中headerfile.h的搜索目录。如果有XXX.h找不到&#xff0c;设置这个目录可以解决。附加依赖项&#xff1a;C的库会把函数、类的声明放在*.h中&#xff0c;实现放在*.cpp或*.cc中。编译之后&#xff0c;*.cpp&#xff0c;*.cc…

oracle catalog命令,db2 catalog tcpip 命令咨询?

使用 CLP 从客户机编目 TCP/IP 节点编目 TCP/IP 节点会在描述远程节点的 DB2 客户机节点目录添加一个条目。此条目指定客户机用来访问远程主机所选择的别名(node_name)、hostname(或 ip_address)和 svcename(或 port_number)。必须具有“系统管理”(SYSADM)或“系统控制器”(SY…