matlab中的符号数学方程

matlab中的符号数学方程,matlab,Matlab,我试图在MATLAB中输入一个包含大约5个变量的方程。以下是我所做的: syms Pwf Pr Qo J Qmax Pwf = Pr((1.266 - (1.25*Qo/Qmax))^2) - 0.125 我想运行它,以便每次可以为不同的变量输入不同的值,但它会给出一个错误: 无效的索引或函数定义 我该怎么做? 谢谢据我所知,您正在尝试创建一个名为Pwf的函数,该函数的值随Pr、Qo和Qmax的值而变化 syms Pwf(Pr, Qo, Qmax) Pwf(Pr,Qo,Qmax) = Pr*(

我试图在MATLAB中输入一个包含大约5个变量的方程。以下是我所做的:

syms Pwf Pr Qo J Qmax
Pwf = Pr((1.266 - (1.25*Qo/Qmax))^2) - 0.125
我想运行它,以便每次可以为不同的变量输入不同的值,但它会给出一个错误:

无效的索引或函数定义

我该怎么做?

谢谢

据我所知,您正在尝试创建一个名为
Pwf
的函数,该函数的值随
Pr
Qo
Qmax
的值而变化

syms Pwf(Pr, Qo, Qmax)
Pwf(Pr,Qo,Qmax) = Pr*((1.266 - (1.25*Q0./Qmax))^2) - 0.125;
如果是这种情况,您可以在MATLAB中使用
syms
命令来创建具有自变量
Pr
Qo
Qmax

syms Pwf(Pr, Qo, Qmax)
Pwf(Pr,Qo,Qmax) = Pr*((1.266 - (1.25*Q0./Qmax))^2) - 0.125;
这将创建符号函数
Pwf
和sumbolic变量
Pr
Qo
Qmax
。然后,您可以为变量分配不同的值,并调用函数
Pwf

Pr = 1; 
Qo = 2;
Qmax = 10; 
Pwf(Pr, Qo, Qmax)
这将产生一个分数结果,如下所示

ans = 113407/125000
您可以使用
double()
vpa()


您提到了另一个变量
J
,该变量未在方程中使用,可以以类似的方式添加到函数中。每次更改变量值时,只需调用函数
Pwf(Pr,Qo,Qmax)

第一个操作是乘法,即
Pr*(…)
?如果是这样,您必须编写
*
,否则MATLAB会将其解释为函数调用或矩阵索引。谢谢HBaders。这是可行的…但是我现在如何输入值呢?您想只给变量赋值吗?我明白你的意思了吗?所以你可以写syms=15;Pr=2,如果我误解了你,请更详细地解释你真正想要什么!KiW你好:我想给Qo PR和Qmax赋值……这样我就可以得到Pwf的解决方案。我尝试了类似Q=sym(1200)的东西,但它返回了错误