24小时热门版块排行榜    

查看: 1887  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 洛羽 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿北京化工大学070300 学硕336求调剂 +3 vv迷 2026-03-21 4/200 2026-03-21 23:05 by f19980501
[考研] 材料工程专硕 348分求调剂 +3 冬辞. 2026-03-17 5/250 2026-03-21 18:47 by 学员8dgXkO
[考研] 材料学硕333求调剂 +3 北道巷 2026-03-18 3/150 2026-03-21 18:17 by 学员8dgXkO
[考研] 278求调剂 +9 烟火先于春 2026-03-17 9/450 2026-03-21 17:47 by 学员8dgXkO
[考研] 材料 271求调剂 +5 展信悦_ 2026-03-21 5/250 2026-03-21 17:29 by 学员8dgXkO
[考研] 306求0703调剂一志愿华中师范 +5 纸鱼ly 2026-03-21 5/250 2026-03-21 17:11 by 学员8dgXkO
[考研] 一志愿华中科技大学071000,求调剂 +3 沿岸有贝壳6 2026-03-21 3/150 2026-03-21 10:35 by 暮云清寒
[考研] 332求调剂 +3 凤凰院丁真 2026-03-20 3/150 2026-03-21 10:27 by luoyongfeng
[考研] 一志愿天津大学化学工艺专业(081702)315分求调剂 +12 yangfz 2026-03-17 12/600 2026-03-21 03:30 by JourneyLucky
[考研] 083200学硕321分一志愿暨南大学求调剂 +3 innocenceF 2026-03-17 3/150 2026-03-21 02:35 by JourneyLucky
[考研] 一志愿重庆大学085700资源与环境专硕,总分308求调剂 +3 墨墨漠 2026-03-18 3/150 2026-03-21 00:39 by JourneyLucky
[考研] 材料专硕英一数二306 +7 z1z2z3879 2026-03-18 7/350 2026-03-20 23:48 by JourneyLucky
[考研] 304求调剂 +7 司空. 2026-03-18 7/350 2026-03-20 23:08 by JourneyLucky
[考研] 一志愿苏州大学材料求调剂,总分315(英一) +5 sbdksD 2026-03-19 5/250 2026-03-20 22:10 by luoyongfeng
[考博] 招收博士1-2人 +3 QGZDSYS 2026-03-18 3/150 2026-03-20 11:58 by 呱呱呱呱叫
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-19 5/250 2026-03-19 23:51 by 23Postgrad
[考研] 081700化工学硕调剂 +3 【1】 2026-03-16 3/150 2026-03-19 23:40 by edmund7
[考研] 0854可跨调剂,一作一项核心论文五项专利,省、国级证书40+数一英一287 +8 小李0854 2026-03-16 8/400 2026-03-18 14:35 by 搏击518
[考研] 考研调剂 +3 淇ya_~ 2026-03-17 5/250 2026-03-17 09:25 by Winj1e
[考研] 中科院材料273求调剂 +4 yzydy 2026-03-15 4/200 2026-03-16 15:59 by Gaodh_82
信息提示
请填处理意见