查看: 82|回复: 6|关注: 0

[已解决] 高次多项式相除

[复制链接]

入门

110 麦片

财富积分


50500


16

主题

46

帖子

0

最佳答案
本帖最后由 cdjy6481 于 2019-10-10 14:43 编辑

计算 x^100  除以  x^2-2*x-3  的 余式     (只需要知道余数)

为什么结果不对呢?大佬帮忙看一下,修改一下 ,谢谢

只需要余数




  1. a=[1:1:100]*0;
  2. a=[1,a];
  3. b=[1 -2 -3];
  4. [p,r]=deconv(a,b)
  5. r(end-3:end)   
复制代码





我的MATLAB版本如下:



------------------------------------------------------------------------------------------------
MATLAB 版本: 9.3.0.713579 (R2017b)
MATLAB 许可证编号: 123456
操作系统: Microsoft Windows 7 旗舰版  Version 6.1 (Build 7601: Service Pack 1)
Java 版本: Java 1.8.0_121-b13 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
------------------------------------------------------------------------------------------------
MATLAB                                                版本 9.3              (R2017b)

入门

75 麦片

财富积分


50500


2

主题

146

帖子

13

最佳答案
  • 关注者: 6
发表于 2019-10-10 10:03:54 | 显示全部楼层
本帖最后由 Leedear 于 2019-10-10 10:19 编辑

你的描述跟你写的代码有点出入:x的100次方对应的多项式表达式为[1,zeros(1,100)];你代码里写的是x的1000次方,其他的步骤是对的。

论坛优秀回答者

权威

3873 麦片

财富积分



3

主题

4086

帖子

862

最佳答案
  • 关注者: 183
发表于 2019-10-10 11:13:03 | 显示全部楼层
本帖最后由 maple1314168 于 2019-10-10 11:27 编辑

100次方,计算得到的系数很大,已经有浮点误差。
测试过 20左右还可以。
2018a以上的话用符号算法函数:polynomialReduce函数
  1. syms x
  2. a=x^100;b=x^2-2*x-3;
  3. [r,q] = polynomialReduce(a,b);
复制代码
余数:
r =128844380183002832759115282441405318175526880500*x + 128844380183002832759115282441405318175526880501
验证:
simplify(q*b+r)
提取:
coeffs



入门

110 麦片

财富积分


50500


16

主题

46

帖子

0

最佳答案
 楼主| 发表于 2019-10-10 14:45:08 | 显示全部楼层
maple1314168 发表于 2019-10-10 11:13
100次方,计算得到的系数很大,已经有浮点误差。
测试过 20左右还可以。
2018a以上的话用符号算法函数:pol ...

谢谢,给力,点赞,可惜我的是2017B版本。

入门

110 麦片

财富积分


50500


16

主题

46

帖子

0

最佳答案
 楼主| 发表于 2019-10-10 14:46:27 | 显示全部楼层
Leedear 发表于 2019-10-10 10:03
你的描述跟你写的代码有点出入:x的100次方对应的多项式表达式为[1,zeros(1,100)];你代码里写的是x的1000次 ...

谢谢你的指出,我已经改进了。

但是这个用deconv  这个函数运行太大。亲,有没有好的方法

入门

75 麦片

财富积分


50500


2

主题

146

帖子

13

最佳答案
  • 关注者: 6
发表于 2019-10-10 14:49:39 | 显示全部楼层
cdjy6481 发表于 2019-10-10 14:46
谢谢你的指出,我已经改进了。

但是这个用deconv  这个函数运行太大。亲,有没有好的方法 ...

我记得还有residue可以用。

论坛优秀回答者

权威

3873 麦片

财富积分



3

主题

4086

帖子

862

最佳答案
  • 关注者: 183
发表于 2019-10-10 15:01:22 | 显示全部楼层 |此回复为最佳答案
本帖最后由 maple1314168 于 2019-10-10 15:28 编辑
Leedear 发表于 2019-10-10 14:49
我记得还有residue可以用。

那个与这个关系不大,自己查看一下。
退一步来说也没有作用,都是双精度或者单精度的数值方法。
1、安装新的。
2、考虑替换一下符号工具箱中的“lib库”,再加上polynomialReduce的m函数。
3、使用其他软件/M的第三方工具箱。
4、自己用m函数,使用符号算法编写。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表