首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Matlab求解一个不等式

用Matlab求解一个不等式
EN

Stack Overflow用户
提问于 2016-03-17 13:29:08
回答 1查看 289关注 0票数 0

我必须解决一个不平等问题,但这太难了。因此,我想使用Matlab。让a = [(k-3)*sqrt(v)]/sb = 1.08148*a^2-epsilonepsilon = 10^(-6)。需要解决的不平等是:

代码语言:javascript
复制
q(a,b) < s*sqrt(v)

其中sv是已知的。更准确地说,我想解决k的上述不等式(发生在ab中)。现在,问题是q(a,b)是四次多项式的最大实根:

代码语言:javascript
复制
(48*a^2+16*b)*x^4 - (40*a^3+168*a*b)*x^3+(-45*a^4+225*a^2*b+72*b)*x^3+(27*a^2*b-162*a*b^2)*x+27*b^3

我试过这样做:

代码语言:javascript
复制
syms x z
  av = ((x-3)*sqrt(v))/s;
 Q = max(roots([48*z^2+16*(1.08148*z-eps), -40*z^3-168*z*(1.08148*z-eps), -45*z^4+225*z^2*(1.08148*z-eps)+72*(1.08148*z-eps)^2, 27*z^3*(1.08148*z-eps)-162*z*(1.08148*z-eps)^2, 27*(1.08148*z-eps)^3]));
 F = compose(Q,av);
solve(F-skew*sqrt(var)<0, x)

但是Matlab不断地给出以下错误:

使用sym/max (第97行)输入参数时出错必须转换为浮点数. 测试T(第13行)R=max(根(2048,-6912*((x-3)sqrt(var)/skew)^2,8088((x-3)sqrt(var)/skew)^4,-3600((x-3)sqrt(var)/skew)^6,375((x-3)*sqrt(Var)/skew)^8)中的错误;

也许有人有更好的办法解决这个问题?最好的方法是,如果我对a和b的四次函数的最大实根q有一个显式表达式,那么这个显式表达式就太长了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-17 13:37:55

错误信息似乎表明max()函数不支持sym。

因为返回的根()结果包含x和z.But,所以Matlab不知道x和z的值,所以不能计算根的值,然后不能比较它们。

也许你应该改进你的算法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36062006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档