| 查看: 2830 | 回复: 14 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
MATLAB求解一个比较复杂的方程
|
||
|
a/(1.0+exp(-b*(0.003-c)))-a/(1.0+exp(b*c))=1.460; a/(1.0+exp(-b*(0.012-c)))-a/(1.0+exp(b*c))=4.388; a/(1.0+exp(-b*(0.030-c)))-a/(1.0+exp(b*c))=5.455; 有谁知道上面的三个方程怎么解,初学MATLAB,还不会求解这种方程,谁能指导下我,谢谢~ 实际我是想用一个函数去拟合我的三个点。最后转化成上面的求解。 |
» 本帖已获得的红花(最新10朵)
» 猜你喜欢
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
孩子确诊有中度注意力缺陷
已经有12人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
论文投稿,期刊推荐
已经有4人回复
硕士和导师闹得不愉快
已经有13人回复
请问2026国家基金面上项目会启动申2停1吗
已经有5人回复
同一篇文章,用不同账号投稿对编辑决定是否送审有没有影响?
已经有3人回复

15楼2015-12-14 11:08:26
snowwinter10
木虫 (正式写手)
- 应助: 1 (幼儿园)
- 金币: 4180.3
- 散金: 2012
- 红花: 1
- 帖子: 607
- 在线: 155.6小时
- 虫号: 930945
- 注册: 2009-12-20
- 性别: GG
- 专业: 教学论
★ ★
xiegangmai(金币+2): 谢谢参与!鼓励讨论交流! 2011-06-30 11:04:10
xiegangmai(金币+2): 谢谢参与!鼓励讨论交流! 2011-06-30 11:04:10
|
试着写了一下,但是求解的结果很奇怪,不知道是数值参数还是方法的问题。希望有所参考价值。本人对matlab也是新手,我用的是非线性方程组求解函数solve,源码和结果如下。 clc clear all s1='a/(1.0+exp(-b*(0.003-c)))-a/(1.0+exp(b*c))=1.460'; s2='a/(1.0+exp(-b*(0.012-c)))-a/(1.0+exp(b*c))=4.388'; s3='a/(1.0+exp(-b*(0.030-c)))-a/(1.0+exp(b*c))=5.455'; [a b c]=solve(s1,s2,s3) 结果 a = 0. -0. b = (NaN)+(NaN)*i (NaN)+(NaN)*i c = (NaN)+(NaN)*i (NaN)+(NaN)*i |
2楼2011-06-30 10:53:22
【答案】应助回帖
★ ★ ★ ★ ★
臭水沟(金币+5): 谢谢应助~~ 2011-07-01 19:55:02
臭水沟(金币+5): 谢谢应助~~ 2011-07-01 19:55:02
|
尝试了一下用符号求解,找不到解析解。 得到: Warning: Explicit solution could not be found. > In solve at 81 ans = [ empty sym ] 改用数值解: (1)先写方程函数: (2)在命令窗口输入: 得到: Solver stopped prematurely. fsolve stopped because it exceeded the function evaluation limit, options.MaxFunEvals = 300 (the default value). X = 6.1816 5.8800 0.0390 Fval = -1.4331 -4.2800 -5.1839 exitflag = 0 求解失败。 可能方程组非线性太强了。 [ Last edited by xiegangmai on 2011-6-30 at 11:11 ] |

3楼2011-06-30 11:03:09
【答案】应助回帖
★ ★
cyzhixue(金币+10): 真的是太感谢你了。。崇拜中。。真的和我的点拟合的一模一样啊。 2011-06-30 17:21:47
臭水沟(金币+2): 谢谢应助~~ 2011-07-01 19:55:13
cyzhixue(金币+10): 真的是太感谢你了。。崇拜中。。真的和我的点拟合的一模一样啊。 2011-06-30 17:21:47
臭水沟(金币+2): 谢谢应助~~ 2011-07-01 19:55:13
|
呵呵,应该可以了,换用'levenberg-marquardt'算法,增加迭代次数。 用fsolve求解,初值选取有很大关系,当初值选为[ 100; 100; 0 ]时, [ X, Fval, exitflag ] = fsolve( @cyzhixue, [ 100; 100; 0 ], options ) 所得结果: X = 10.8784 182.8811 0.0001 Fval = 1.0e-009 * -0.1962 -0.2380 0.0061 exitflag = 1 应该能满足精度要求了。 |

4楼2011-06-30 11:15:59














回复此楼
lylpiao