解方程用 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进行表达式求值(含参变量代入求值)