我遇到了一个问题,你们可能对我有所帮助。
在Matlab中,我试图解决隐式函数,请参阅以下内容:
Cp = Cpi / ( sqrt(1 - M^2) + (M^2 / (sqrt(1-M^2))) * Cpi/2 )
在这里,我知道M和Cp的值,并想知道Cpi的值。此外,由于计算时间的考虑,我想避免在方法中使用循环。
最后,我知道这并不难解决,例如,可以使用''黄金双截面''方法来找到答案,但是我不知道如何在MATLAB中对此进行编码。有谁知道,或者有一段能够解决Cpi的代码?
谢谢你们!非常感谢您的帮助
答案 0 :(得分:3)
使用fzero
可以轻松完成。如果您将Cp
部分移至RHS,并尝试使用fzero
找到根,并使用Cpi
作为变量,则可以这样解决:
M = 0.4; Cp = 3;
f = @(Cpi) Cp - (Cpi / ( sqrt(1 - M^2) + (M^2 / (sqrt(1-M^2))) * Cpi/2 ));
fzero(f,0)
ans =
3.7250
当然,您不需要先将其分配给匿名函数,但在我看来,它更容易阅读。