24小时热门版块排行榜    

查看: 2143  |  回复: 7

洛羽

木虫 (小有名气)

[求助] 如何用求解一元二次加对数函数的方程 已有1人参与

如何求解一元二次加对数函数的方程,方程如下:
Dmix0^2+Pmix+Tmix*(log(1-Dmix0)+(1-1/rmix)*Dmix0)=0
其中Dmix0为所求,Pmix、Tmix、rmix为常数,log即为ln函数。
最好是matlab求解,不是说下思路也好的。
Pmix=0.0036;Tmix=0.4881;rmix=17845是常数的一组取值。
回复此楼

» 猜你喜欢

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

笑笑而已
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
洛羽: 金币+30, ★★★★★最佳答案, thx 2015-04-03 09:55:42
CODE:
function solve_eq
clear all;clc
format long
x0=0.9;
option=optimset('TolFun',1e-12);
[x fval]=fsolve(@obj,x0,option)


function f= obj(x)
Pmix=0.0036;Tmix=0.4881;rmix=17845;
Dmix0=x;
f=Dmix0^2+Pmix+Tmix*(log(1-Dmix0)+(1-1/rmix)*Dmix0);

计算结果:
x =

   0.935003106080314


fval =

   -1.377786773559819e-013
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2015-04-02 19:07:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

洛羽

木虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-04-02 19:07:55
function solve_eq
clear all;clc
format long
x0=0.9;
option=optimset('TolFun',1e-12);
=fsolve(@obj,x0,option)


function f= obj(x)
Pmix=0.0036;Tmix=0.4881;rmix=17845;
Dmix0=x;
f=Dmix0^2+Pmi ...

[code]
function test
Pmix=0.0036;Tmix=0.4881;rmix=17845;
tic;
        Dmix0=0.9999;
        ss=1;
        while ss==1
            Dmix=Dmix0-(Dmix0^2+Pmix+Tmix*(log(1-Dmix0)+(1-1/rmix)*Dmix0))/(2*Dmix0+Tmix*(-1/(1-Dmix0)+1-1/rmix));
            if abs(Dmix-Dmix0)>=0.0001
                Dmix0=Dmix;
            else
                PRD=Dmix;
                ss=2;
            end
        end
toc;
disp(PRD);
disp(Dmix-Dmix0);
[code]
笑笑而已
3楼2015-04-03 10:45:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

洛羽

木虫 (小有名气)

CODE:
function test
Pmix=0.0036;Tmix=0.4881;rmix=17845;
tic;
        Dmix0=0.9999;
        ss=1;
        while ss==1
            Dmix=Dmix0-(Dmix0^2+Pmix+Tmix*(log(1-Dmix0)+(1-1/rmix)*Dmix0))/(2*Dmix0+Tmix*(-1/(1-Dmix0)+1-1/rmix));
            if abs(Dmix-Dmix0)>=0.0001
                Dmix0=Dmix;
            else
                PRD=Dmix;
                ss=2;
            end
        end
toc;
disp(PRD);
disp(Dmix-Dmix0);

运行上述代码时间在 0.000002~ 0.000005 seconds之间;

而用
CODE:
function solve_eq
x0=0.9999;
option=optimset('TolFun',1e-4);
tic;
[x fval]=fsolve(@SLEquation,x0,option);
toc;
disp(x);
disp(fval);

CODE:
function f=SLEquation(x)
Pmix=0.0036;Tmix=0.4881;rmix=17845;
Dmix0=x;
f=Dmix0^2+Pmix+Tmix*(log(1-Dmix0)+(1-1/rmix)*Dmix0);

代码运行时间为 0.011605 seconds.
所以用fsolve()来解反而运算时间更长?
笑笑而已
4楼2015-04-03 10:54:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

洛羽

木虫 (小有名气)

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-04-02 19:07:55
function solve_eq
clear all;clc
format long
x0=0.9;
option=optimset('TolFun',1e-12);
=fsolve(@obj,x0,option)


function f= obj(x)
Pmix=0.0036;Tmix=0.4881;rmix=17845;
Dmix0=x;
f=Dmix0^2+Pmi ...

不知是否可以帮忙解释下4楼的疑问
笑笑而已
5楼2015-04-03 10:57:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
5楼: Originally posted by 洛羽 at 2015-04-03 10:57:31
不知是否可以帮忙解释下4楼的疑问...

您好!我没有研究过算法的效率问题,所以无法回答您。
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
6楼2015-04-03 11:20:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

月只蓝

主管区长 (职业作家)

引用回帖:
4楼: Originally posted by 洛羽 at 2015-04-03 10:54:50
function test
Pmix=0.0036;Tmix=0.4881;rmix=17845;
tic;
        Dmix0=0.9999;
        ss=1;
        while ss==1
            Dmix=Dmix0-(Dmix0^2+Pmix+Tmix*(log(1-Dmix0)+(1-1/rmix)*Dmix0))/(2*Dmix ...

而且个人觉得,您设计的算法属于直接迭代法,该算法对于较为简单的方程能迅速得到结果,但因为该方法属于比较初级的方法,其也有不少劣势:1.需要人为判断方程的形式,写出合适的迭代方程,如果迭代方程形式不对,无法收敛;2.对初值的依赖性更大,您可以试试用您的代码,Dmix0的初值取为其他数值,比如0.8,您看能不能得到解;3.用这种方法求解非线性方程组,将更麻烦。

» 本帖已获得的红花(最新10朵)

MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
7楼2015-04-03 11:34:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

洛羽

木虫 (小有名气)

送红花一朵
引用回帖:
7楼: Originally posted by 月只蓝 at 2015-04-03 11:34:41
而且个人觉得,您设计的算法属于直接迭代法,该算法对于较为简单的方程能迅速得到结果,但因为该方法属于比较初级的方法,其也有不少劣势:1.需要人为判断方程的形式,写出合适的迭代方程,如果迭代方程形式不对, ...

谢谢!
主要因为计算中可能会有大量循环,希望效率高点,因为对计算这块也不了解所以问问。
笑笑而已
8楼2015-04-03 12:40:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 洛羽 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 BnSlaJi8z5Vo 2026-08-17 3/150 2026-08-17 17:38 by CBFiACZS7HAK
[基金申请] 感觉是下周放榜了 +4 angus9576 2026-08-17 8/400 2026-08-17 17:26 by angus9576
[博后之家] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 6GojgJvkDudM 2026-08-16 7/350 2026-08-17 16:14 by CBFiACZS7HAK
[基金申请] 时间戳变了,能看出什么问题? +4 基诺咪客 2026-08-17 4/200 2026-08-17 16:10 by Vivilian
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +12 Ldrop2023 2026-08-13 15/750 2026-08-17 15:02 by 小豌豆_发芽
[考博] 售一区SCI文章T0P,我:8O.551.O54,科目全,可十急 +3 6GojgJvkDudM 2026-08-16 4/200 2026-08-17 13:49 by EYK67XJMj64E
[基金申请] 今天系统多次维护,明天很可能放榜! +8 zju2000 2026-08-16 9/450 2026-08-17 12:20 by lmz0216
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 i7NFEVbjQMM5 2026-08-16 4/200 2026-08-17 12:10 by 4GBAYCdVQoK3
[考研] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 6GojgJvkDudM 2026-08-16 4/200 2026-08-17 11:46 by 4GBAYCdVQoK3
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +3 6GojgJvkDudM 2026-08-16 3/150 2026-08-17 09:49 by xLVPIRuSvCUe
[论文投稿] 岩土工程学报什么时候才能终审完呐 25+3 yeager111 2026-08-10 4/200 2026-08-16 20:42 by tfang
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 各位道友,我要去昆明玩几天,回来见。 +7 Tide man 2026-08-14 8/400 2026-08-15 01:11 by arzu_hma
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] Filecode 又变了,巨变 +3 WH3796 2026-08-12 4/200 2026-08-13 14:13 by 小木虫6752397
[基金申请] 结合人工智能,周易传统文化,filecode打分制来了,3分以上希望很大。 +3 Tide man 2026-08-12 4/200 2026-08-13 08:35 by ZJTJZ
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
信息提示
请填处理意见