楼主: pkl
7420 10

[学习心得] 用mata中的程序解高阶一元方程,又快又准 [推广有奖]

  • 4关注
  • 11粉丝

已卖:256份资源

学科带头人

83%

还不是VIP/贵宾

-

威望
0
论坛币
11696 个
通用积分
264.2283
学术水平
43 点
热心指数
52 点
信用等级
36 点
经验
1906 点
帖子
1393
精华
0
在线时间
1114 小时
注册时间
2005-5-14
最后登录
2025-9-16

楼主
pkl 在职认证  发表于 2014-5-15 09:36:29 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在经济学、管理学的学习中,经常会碰到求解高阶一元方程的问题,如用内部收益率法求解教育收益率、用成本收益法求投资项目的内部收益率等,有时候会碰到高达20-30次方的一元方程,通常情况下,我们是通过matlab或maple采用迭代的方法求解,可能需要自己些一个小程序,有没有只要把方程输入就可以得出结果的简便方法呢?本人在学习stata中mata方法时,碰巧发现了一个可以直接求解高阶一元方程的程序,现发出来和大家分享,也与大家共勉,一起认真好好学习stata。
方法就是:mata中的polyroots程序,进入mata后,输入polytoots((a,b,c,......))就可以直接得到全部解,包括复数解。这里的a代表0阶系数,b代表一阶系数,c代表二阶系数。以指导手册中的例子为例,求方程3+5x+x^2的解,只需输入polyroots((3,5,1))就可以得到方程的跟为-4.303和-0.697。无论多高阶的一元方程都可以用该命令直接求得所有解(含复数根和实数根)。我做了个实验,求解-21103.15x^8+21305.52x^3-21.4x^2-89.2x+16162.91=0的解,用do文件表示如下:
mata                                                                                     //启动mata
mata clear                                                                             //清空mata内存中的变量和函数
polyroots((16162.91,-89.2,-21.4,21305.52,0,0,0,0,-21103.15))   //输入求解方程的系数
end
得到结果:                            1                           2
    +---------------------------------------------------------
  1 |                 1.09662013   -.818589097 - .695780877i
    +---------------------------------------------------------
                               3                           4
     ---------------------------------------------------------
  1    -.818589097 + .695780877i    .150795683 - .982459804i
     ---------------------------------------------------------
                               5                           6
     ---------------------------------------------------------
  1     .150795683 + .982459804i    .530423703 - .681080223i
     ---------------------------------------------------------
                               7                           8
     ---------------------------------------------------------+
  1     .530423703 + .681080223i                 -.821880713  |
     ---------------------------------------------------------+
表示该方程有8个根,其中有两个实根:1.09662013和-0.82188.713,还有六个共轭虚根。求解速度非常快。
今后碰到求解高阶一次方程的坛友都可以用此方法非常简便地得到结果。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATA Mat MATLAB Roots Stata 经济学 管理学 程序

已有 6 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
txje + 3 + 3 + 3 精彩帖子
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论
dxystata + 10 + 10 + 1 + 1 鼓励积极发帖讨论
╰不滅信念 + 1 + 1 + 1 精彩帖子
crystal8832 + 10 + 10 + 1 + 1 + 1 鼓励积极发帖讨论
ermutuxia + 50 + 1 + 1 鼓励积极发帖讨论

总评分: 经验 + 70  论坛币 + 20  学术水平 + 10  热心指数 + 10  信用等级 + 8   查看全部评分

本帖被以下文库推荐

沙发
╰不滅信念 学生认证  发表于 2014-5-17 15:01:24
好文,必须支持!
where there is a will there is a way

藤椅
martin-liao 学生认证  发表于 2014-5-28 15:44:08
你好,你所说的方法是线性运算,如果是矩阵运算应该怎么操作呢?

板凳
pkl 在职认证  发表于 2014-5-28 21:25:17
martin-liao 发表于 2014-5-28 15:44
你好,你所说的方法是线性运算,如果是矩阵运算应该怎么操作呢?
问的很好,但我现在还不会,正在学习中,有结果我再告诉你,我们一起努力吧!

报纸
martin-liao 学生认证  发表于 2014-5-29 12:52:38
pkl 发表于 2014-5-28 21:25
问的很好,但我现在还不会,正在学习中,有结果我再告诉你,我们一起努力吧!
好的,我其实也在思考如何用stata进行矩阵的高次运算,因为矩阵的高次运算牵涉的就不是二维三维这些东西了,很可能是一个混沌空间,matlab编程不是很会,哪天实验出了结果一起共享。

地板
carweed 发表于 2014-6-9 23:58:07
赞一个!!!有用!

7
颸若辰 学生认证  发表于 2014-10-29 20:56:49
刚刚试了一下,是这么回事儿

8
powelton 发表于 2014-10-29 21:17:26
多多交流!!!

9
主啊上帝 发表于 2015-7-7 18:56:27
请问楼主研究出mata的矩阵运算没有啊,是不是就可以解高次多元方程组啦,求教~~~

10
MILK$很好喝 学生认证  发表于 2016-3-14 18:31:28 来自手机
pkl 发表于 2014-5-15 09:36
在经济学、管理学的学习中,经常会碰到求解高阶一元方程的问题,如用内部收益率法求解教育收益率、用成本收 ...
好帖,多谢!

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-25 17:12