【Matlab 控制】解方程solve() 或代入函数求值 eval() subs()

解方程用 solve()

syms x
eqn=sin(x)==1;
solve(eqn,x)

得出方程结果

ans =pi/2

From: MATLAB的solve函数


代入求值用 eval() 配合 subs()

(一)前言

本文简单介绍如何使用matlab中的 eval() 函数与 subs() 函数进行表达式(含参/不含参)的求值。

(二)不含参表达式

对于一个表达式的求值运算,我们使用 eval() 函数求解,如

eval('1+2*3')

可以算得式子的具体结果。

(三)含参表达式的符号运算

符号运算,即不代入具体的值进行符号间的运算,我们也可以用 eval() 求解,如

eval('a+a+b*c+a')

这样可能可以对一个表达式进行一定的简化,但是实际上可能用到的情况不多。

(四)含参表达式的数值代入运算

这才是主要想记录的地方,我们平时做题可能会先计算出一个带符号的表达式,后面再将具体的值代入,这该怎么做呢?

基本的运算过程就是将对应的符号用对应的数值代替,再用 eval() 进行求值,这个替换的过程可以用 subs() 函数。

subs() 调用的形式为:

subs(表达式, y, x)

调用例子如下:

1、直接对表达式求值:

subs(x^2+1,x,1)

得到的结果为2。

2、对变量表达式的代入:

f1=x+1; 
f2=x+2; 
f3=f1*f2; 
subs(f3,x,-4)

得到的结果为6。

3、多变量的代入:

f1=x+y; 
f2=x^2+y; 
f3=f1*f2; 
subs(f3,[x,y],[1,2])

得到的结果为9。

4、使用其它变量代入:

f1=x+y; 
f2=x^2+y; 
f3=f1*f2; 
a=1; 
b=2; 
subs(f3,[x,y],[a,b])

得到的结果为9。

5、直接使用eval()求解即可(5.26updata):

f=x+1; 
x=1; 
eval(f);

结果为2, 即使用 eval() 计算时会将值代入。

(五)说明:

函数调用的更多细节可以使用 help eval 或者 help subs()

From: Matlab进行表达式求值(含参变量代入求值)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhao-Jichao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值