24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1347  |  回复: 5

wsjsmx

木虫 (正式写手)

[交流] 【求助】指数函数方程求解已有2人参与

形如a^x-b^x=c的方程能不能解啊?有不同的a,b,c值,可以组成一个方程组。a,b,c已知,其中a>b>1,c>0.牛人请指教,如果不能直接求解,采用计算机可不可以拟合出x的值啊?请指教。谢谢!

[ Last edited by javeey on 2010-6-9 at 14:25 ]
回复此楼
工作了,工作第一。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)


javeey(金币+1):谢谢提供帮助 2010-06-09 14:37:19
wsjsmx(金币+5):谢谢,你能介绍详细一点吗?我自己先试试。 2010-06-09 15:59:29
直接求解我不会。不过求数值解不难。单个的方程可以用牛顿法之类的迭代法求解,过定的方程组可以用曲线拟合来做,用Matlab的曲线拟合工具箱很容易可以求解。
2楼2010-06-09 14:35:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

wsjsmx(金币+5):谢谢 2010-06-10 10:13:37
引用回帖:
Originally posted by saladin983 at 2010-06-09 08:35:39:
直接求解我不会。不过求数值解不难。单个的方程可以用牛顿法之类的迭代法求解,过定的方程组可以用曲线拟合来做,用Matlab的曲线拟合工具箱很容易可以求解。

可以给出具体的问题。如果是用工具箱的话参照Curve fitting toolbox的说明文档,里面有很详尽的例子。a、b、c是常数,这个条件在你的问题里是满足的,再有几组数据就够了。

忘了说了,如果只是解单个的方程的话,可以用fzero函数,参见matlab的equation solving一节的说明文档。

[ Last edited by saladin983 on 2010-6-9 at 17:13 ]
3楼2010-06-09 16:48:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wsjsmx

木虫 (正式写手)

引用回帖:
Originally posted by saladin983 at 2010-06-09 16:48:23:


可以给出具体的问题。如果是用工具箱的话参照Curve fitting toolbox的说明文档,里面有很详尽的例子。a、b、c是常数,这个条件在你的问题里是满足的,再有几组数据就够了。

忘了说了,如果只是解单个的方程 ...


你好,这是我的原始数据,matlab我不太熟,方便的话你能帮我求解一下吗?谢谢
工作了,工作第一。
4楼2010-06-10 10:13:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

引用回帖:
Originally posted by wsjsmx at 2010-06-10 04:13:11:



你好,这是我的原始数据,matlab我不太熟,方便的话你能帮我求解一下吗?谢谢

这个问题跟你之前描述的差异太大了。三个变量,而且是过定的,需要花点时间,晚点再帮你看吧。
5楼2010-06-10 15:48:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

wsjsmx(金币+5):感激不尽。非常感谢 2010-06-11 10:36:13
用 fminunc(无约束最优化)求解以下函数的最小值:

function F = myfun(x)
F = (1^x(1)+125^x(2)+8^x(3)-0.99)^2 + (2^x(1)+125^x(2)+8^x(3)-1.08)^2 + (3^x(1)+125^x(2)+8^x(3)-1.20)^2 + ...
    (2^x(1)+65^x(2)+8^x(3)-0.74)^2 + (2^x(1)+85^x(2)+8^x(3)-0.82)^2 + (2^x(1)+105^x(2)+8^x(3)-0.85)^2 + ...
    (2^x(1)+145^x(2)+8^x(3)-1.04)^2 + (2^x(1)+165^x(2)+8^x(3)-1.12)^2 + (2^x(1)+125^x(2)+8^x(3)-0.98)^2 + ...
    (2^x(1)+125^x(2)+13^x(3)-1.14)^2 + (2^x(1)+125^x(2)+22^x(3)-0.98)^2;


执行命令 :
[x,fval,exitflag] = fminunc(@myfun,[0 0 0])


输出结果:

Optimization terminated successfully:
Current search direction is a descent direction, and magnitude of
directional derivative in search direction less than 2*options.TolFun

x =

   0.00844695734911  -3.99542414869667  -6.33066486406597


fval =

   0.20500498811704


exitflag =

     1

x是你要的解,fval是上述函数在解点的值,exitflag=1代表算法收敛。

PS:提问的时候最好用原始的问题发问,尤其是对数学的东西了解的不够的时候,自己随便总结可能会让问题本身走样。
6楼2010-06-10 16:37:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wsjsmx 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见