当使用matlab给出其他参数并且积分为零时,如何找到参数的值?

时间:2012-03-26 19:41:23

标签: matlab plot int

我有一个功能

function y = testf(x,F,phi,M,beta,alpha)
y = -((F+(1 + phi.*cos(2.*pi.*x))).*M.^3.*(cosh((1 + phi.*cos(2.*pi.*x)).*M)+M.*beta.*sinh((1 + phi.*cos(2.*pi.*x)).*M)))./((1 + phi.*cos(2.*pi.*x)).*M.*cosh((1 + phi.*cos(2.*pi.*x)).*M)+(-1+(1 + phi.*cos(2.*pi.*x)).*M.^2.*beta).*sinh((1 + phi.*cos(2.*pi.*x)).*M))- (alpha.*(M.^2.*(F+(1 + phi.*cos(2.*pi.*x))).*(-1+2.*(1 + phi.*cos(2.*pi.*x)).^2.*M.^2+ cosh(2.*(1 + phi.*cos(2.*pi.*x)).*M)-2.*(1 + phi.*cos(2.*pi.*x)).*M.*sinh(2.*(1 + phi.*cos(2.*pi.*x)).*M)))./(8.*((1 + phi.*cos(2.*pi.*x)).*M.*cosh((1 + phi.*cos(2.*pi.*x)).*M)+(-1+(1 + phi.*cos(2.*pi.*x)).*M.^2.*beta).*sinh((1 + phi.*cos(2.*pi.*x)).*M)).^2));

整合
q = quad(@(x) testf (x, F, phi,M, beta, alpha), 0, h);

当q = 0且x,F,phi,M,beta时,如何找到alpha并绘制流线?

1 个答案:

答案 0 :(得分:0)

如果你给出了一些数字会很棒,但这就是你如何开始这个。它假设您使用的是具有MuPad作为符号引擎的Matlab版本。

首先,我不会使用quad,因为会涉及符号表达式,而是使用int

如果我理解正确,请使用x, F, phi, M, beta的值,并在alpha

时为q = 0求解
%define the known variables first

syms alpha %defining symbolic object

现在,以下内容可能不起作用,因为它具有巨大的功能:

q = int(y,x,0,h)

如果确实如此,你所要做的就是解决并评估alpha的结果(这可能也行不通):

alpha = eval( solve( 'q' , alpha ) )

如果上述内容没有取得任何成果,您可以查看'IgnoreAnalyticConstraints'选项。

相关问题