在 MATLAB 中使用符号计算进行简单替换

计算科学 matlab 符号计算
2021-12-17 15:14:07

假设我有以下 MATLAB 代码。

syms a b c1 c2

c1 = a + b + pi*b
c2 = a + b + 0.5*b

然后 c 1被评估为a + b + pi*b, c 2被评估为a + (3*b)/2

但是,我需要 MATLAB 来计算系数的双精度值,ab不仅仅是符号表达式。

我该怎么做呢?例如,我希望 c 1被评估为a + 4.1416*b, c 2被评估为a + 1.5*b

另外,假设我对做 c 1 *c 2、 c 1 *5 之类的算术感兴趣,我希望将 和 的系数a评估b为数字。

我该怎么做?

1个回答

要对符号表达式进行数值计算,可以使用subs为符号变量插入数值:

>> subs(c1,{a,b},{1.1,1.2})

ans =

    6.0699

(请注意,只要a和/或是b符号变量,我看不到评估pi3/2数值的意义。但是,vpa似乎做你想要的。)