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

(一)前言

本文简单介绍如何使用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()。

你可能感兴趣的:(Matlab)