Matlab中使用solve函数得到root形式解决方案二

之前在

Matlab中solve函数得到的解出现root的情况_warnerchang的博客-CSDN博客_matlab结果出现rooticon-default.png?t=M1L8https://blog.csdn.net/weixin_43568289/article/details/121342712#comments_20216268中提到,可以换用vpasolve来求解以避免出现root形式的根,但是后续根据小伙伴的反应,即使换用vpasolve也会出现仍存在root形式根的情况,今天提供一个附加方法:

solve函数出现root形式根的情况,往往是我们提供的多项式自由度不够引起的,所以在使用solve求解中注意设置solve函数的自由度即可,例如如下例子:

% Matlab

clear all
syms a
b=9;h=0.1;
t2=a^4*b^3-b-h*(b^3-b^5*a^4)-(b^4*a^3-a-h*(a^3-b^4*a^5))

% sol=solve(t2,a)

sol = solve(t2, a, 'MaxDegree', 4) % 设置自由度

solNumeric = vpa(sol) % 转换为数值解

建议不要使用b和h这样的浮点型数据,因为solve函数求解精确解,提供浮点型数据输入应该采用vpasolve,可以将其替换为如下形式输入:

% Matlab

b = sym(9);
h = 1/sym(10);

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你可真搞笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值