24小时热门版块排行榜    

CyRhmU.jpeg
查看: 5814  |  回复: 9

自己的歌

银虫 (初入文坛)

[求助] 幂函数方程 求解

各位虫友:

本人最近编写一计算程序,遇到一问题。问题整理出来就是要求解一个包括幂函数的方程。经简化后,方程如下:
         X^1.05 = 3 - 5 * X (X为正实数)

本人之前是采用牛顿下山法和二分法求解。但由于要解的方程较多,因此数值解法存在计算速度的问题。

本人才疏学浅,想直接求解未遂,虫友们能否直接解出这个方程?不生感谢哈。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖置顶 ( 共有1个 )

cars

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
自己的歌: 回帖置顶 2012-04-05 10:48:37
首先解近似为0.5
将X^1.05=X^(21/20)在X0=0.5附近talyor展开,
给出前5项,其中X=0.5+x
1/4*2^(19/20)+21/40*2^(19/20)*x+21/800*2^(19/20)*x^2-133/8000*2^(19/20)*x^3+5187/320000*2^(19/20)*x^4
近用x的一次项,则
0.4830+1.0142x-0.5+5x=0;
即X=0.5+x=0.5028,能精确到4位,如果要求更高,如果x最高项为4次,
可有求根公式,如果更高阶,可用多项式的解的算法。
5楼2012-03-09 15:58:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

nandehutu9327

至尊木虫 (职业作家)

【答案】应助回帖


感谢参与,应助指数 +1
小雨萌萌(金币+1): 感谢应助! 2012-03-09 11:01:03
matlab中的SOLVE和fsolve命令,1stopt软件解方程效果更好。
2楼2012-03-09 08:29:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自己的歌

银虫 (初入文坛)

引用回帖:
: Originally posted by nandehutu9327 at 2012-03-09 08:29:05:
matlab中的SOLVE和fsolve命令,1stopt软件解方程效果更好。

谢谢回复!用软件来解这个方程应该不是很复杂,只是我是要把解方程的算法编入自己的程序里面,因此可能只是幻想,但希望能有一个公式~
3楼2012-03-09 08:36:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nandehutu9327

至尊木虫 (职业作家)

【答案】应助回帖

用牛顿法就可以,牛顿法速度很快。
4楼2012-03-09 11:12:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hdu016

至尊木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
自己的歌: 金币+30, ★★★★★最佳答案, helpful! 2012-04-05 10:46:13
先用matlab等工具得到解的范围,然后分区间,用二分法求解,这样在算法中可很简单的实现。
所谓运气,就是你自己的气自己在运,如果运的好就叫运气好。我们一生的努力只在证明我们有没有成功的运气。
6楼2012-03-09 21:50:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自己的歌

银虫 (初入文坛)

引用回帖:
: Originally posted by cars at 2012-03-09 15:58:24:
首先解近似为0.5
将X^1.05=X^(21/20)在X0=0.5附近talyor展开,
给出前5项,其中X=0.5+x
1/4*2^(19/20)+21/40*2^(19/20)*x+21/800*2^(19/20)*x^2-133/8000*2^(19/20)*x^3+5187/320000*2^(19/20)*x^4
近用x的一次 ...

cars你说得很详细,我得消化一小下。我不清楚的是第一步的近似解如何获得呢,因为需要程序来自己计算。
7楼2012-03-13 17:05:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

华丽的飘过

版主 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
Mathematica FindRoot命令,电脑应该是使用牛顿法计算出结果
FindRoot[x^(105/100 == 3 - 5*x, {x, 1}]

结果是0.502832
8楼2012-03-15 16:12:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cars

金虫 (小有名气)

用X代替X^1.05可得近似解
9楼2012-04-04 20:04:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

自己的歌

银虫 (初入文坛)

引用回帖:
9楼: Originally posted by cars at 2012-04-04 20:04:30:
用X代替X^1.05可得近似解

是很不错的方法!用泰勒展开的方法确实可以解决。
多谢!
10楼2012-04-05 10:43:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 自己的歌 的主题更新
信息提示
请填处理意见