24小时热门版块排行榜    

查看: 3574  |  回复: 20

zrhcc

铁虫 (小有名气)

[求助] 新手求助mathmatica解方程组。。。。。。。。 已有4人参与

关于mathmatica解方程组

Solve[{σ*96485==(170000000+20*σ^2)*s*8.314*298/96485,  σ==-2*5*exp[μ]*sinh[d],   c==2*5*exp[μ]*cosh[d], 1.2==2*8.314*298/96485*abs[d+s],200==μ*c},{σ,s,μ,d,c}]
然后提示我 Solve 无法求解具有不精确系数的系统,请问我的哪里有问题,5个未知数5个方程,而且我也能用excel的规划求解解出来,为什么这个解不出来,还是我的书写有问题?。。。。。PS:我是mathmatica的新手。。。请多多指教。。。
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

xzczd

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
zrhcc: 金币+11, ★★★★★最佳答案, 看来我得细细琢磨琢磨了。。。。多谢指教。。。。 2016-01-12 16:28:15
引用回帖:
18楼: Originally posted by zrhcc at 2016-01-12 14:56:36
您好,关于解的个数。。。。。我图中的是电极阳极的情况,sigma代表电荷密度,所以为负,。。。在阴极,σ,d,s数值与阳极一样,但是符号相反,即σ,d,s有两个解,但是剩下的两个值c和miu都只有一个解。...

你不会问问题。
我可以解出完全符合你限制条件的解,不过和你算出的并不一样。具体原因是什么你自己慢慢分析吧。不要再追问,我也不会再爱了。
CODE:
eqlst = {σ*96485 == (170000000 + 20*σ^2)*s*8314/1000*298/96485,
   σ == -2*5*Exp[μ]*Sinh[d],
   c == 2*5*Exp[μ]*Cosh[d],
   12/10 == 2*8314/1000*298/96485*Abs[d + s],
   200 == μ*c};
(*虽然后续不会用到但是我依旧放这里了,这是可以分析出来的限制条件:*)
con = {c > 0, σ < 0, s < 0, 0 < μ < ProductLog[20], d > 0};
(*Solve在求解超越方程时经常有困难,那么先尽量消去易消的变量。*)
neweqlst = List @@ Eliminate[eqlst, {σ, s(*,μ,d*), c}](*//Simplify*)
(*{(-1210681647011250000000000 + 2217483639235220000000 d^2) μ Cosh[d] ==
  Sinh[d] (19604908166986645000000 d - 1596869827860870015625 E^μ Sinh[d] -
     1043521712581280000 d^2 E^μ Sinh[d] +
     230645978435137000 d E^(2 μ) Sinh[d]^2 +
     3351367881000000 E^(3 μ) Sinh[d]^3 - 6138363015184 d^2 E^(3 μ) Sinh[d]^3),

E^μ μ Cosh[d] ==
  20,

-19604908166986645000000 d E^μ Sinh[
     d] + (1596869827860870015625 + 1043521712581280000 d^2) E^(2 μ) Sinh[d]^2 -
   230645978435137000 d E^(3 μ)
     Sinh[d]^3 + (-3351367881000000 + 6138363015184 d^2) E^(4 μ) Sinh[d]^4 ==
  24213632940225000000000000 - 44349672784704400000000 d^2}
*)
(*惊讶地发现五个方程消三个变量后居然还剩三个方程,其中有一个特别简单。把它提出来求解:*)
sold = Solve[{d > 0, neweqlst[[2]]}, d, Reals][[1]]
(*{d -> ConditionalExpression[ArcCosh[(20 E^-μ)/μ], 0 < μ < ProductLog[20]]}
*)
(*于是获得了一个单变量超越方程。不过这个超越方程FindFit处理起来疑似有困难(我也不想继续试了)所以这里再度转换成求最小值的问题:*)
{$, nsolμ} =
NMinimize[{Subtract @@ neweqlst[[3]]^2 /. d -> sold[[1, -1, 1]],
   sold[[1, -1, -1]]}, μ, WorkingPrecision -> 16]
(*{0, {μ -> 0.1079199021290265}}
*)
nsold = sold /. solμ
(* {d -> 5.807316493056165} *)
eqlst /. nsold /. nsolμ
{Rule @@ %[[2]], Rule @@ %[[3]]}
(*{σ -> -1853.192811634474, c -> 1853.226291485000}*)
%% /. %
Solve[%[[1]]]
(*{{s -> -29.17333774289270}}*)
%% /. % // Flatten

小木虫Mathematica版块已毁(当然原本也不咋的),建议大家前往百度贴吧或Stackexchange。
19楼2016-01-12 16:03:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zho123855

新虫 (正式写手)

引用回帖:
5楼: Originally posted by zrhcc at 2016-01-11 22:23:28
您好,我即使用了NSlove也没有求出5个未知数的数值解答。。。。如图。。。。

屏幕快照 2016-01-11 下午10.19.38.png
...

说了首字母大写,你是直接跳过了我的回复吗?
被忽视了,再也不会爱了

发自小木虫Android客户端

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

9楼2016-01-12 13:41:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

zho123855

新虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
使用nsolve
字数太少居然不允许
但就是这么简单啊

发自小木虫Android客户端
2楼2016-01-11 12:30:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zho123855

新虫 (正式写手)

引用回帖:
2楼: Originally posted by zho123855 at 2016-01-11 12:30:57
使用nsolve
字数太少居然不允许
但就是这么简单啊

提示一下,mma自带的函数首字母均为大写

发自小木虫Android客户端
3楼2016-01-11 12:32:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zrhcc

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by zho123855 at 2016-01-11 12:30:57
使用nsolve
字数太少居然不允许
但就是这么简单啊

您好,我用的NSolve也没有求出5个未知数的数值解。。。如图
新手求助mathmatica解方程组。。。。。。。。
屏幕快照 2016-01-11 下午10.19.38.png

4楼2016-01-11 22:22:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zrhcc

铁虫 (小有名气)

引用回帖:
3楼: Originally posted by zho123855 at 2016-01-11 12:32:19
提示一下,mma自带的函数首字母均为大写
...

您好,我即使用了NSlove也没有求出5个未知数的数值解答。。。。如图。。。。
新手求助mathmatica解方程组。。。。。。。。-1
屏幕快照 2016-01-11 下午10.19.38.png

5楼2016-01-11 22:23:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
1stOpt求解:

sigma: 7.47555409301912E-15
s: 1.65229570538605E-16
mu: -268392899709.37
d: -23.3660212498365
c: -7.45176195855294E-10
6楼2016-01-12 10:12:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zrhcc

铁虫 (小有名气)

引用回帖:
6楼: Originally posted by dingd at 2016-01-12 10:12:27
1stOpt求解:

sigma: 7.47555409301912E-15
s: 1.65229570538605E-16
mu: -268392899709.37
d: -23.3660212498365
c: -7.45176195855294E-10

谢谢您的回复。。。。请问你是怎么解出来的?是我的书写有问题吗?。。。。
7楼2016-01-12 11:43:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Mr__Right

专家顾问 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
5楼: Originally posted by zrhcc at 2016-01-11 22:23:28
您好,我即使用了NSlove也没有求出5个未知数的数值解答。。。。如图。。。。

屏幕快照 2016-01-11 下午10.19.38.png
...


你的函数名都写错了, 大小写敏感

exp -> Exp
sinh -> Sinh
abs ->Abs

这问题本身很简单
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
8楼2016-01-12 13:31:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zrhcc

铁虫 (小有名气)

送红花一朵
引用回帖:
9楼: Originally posted by zho123855 at 2016-01-12 13:41:34
说了首字母大写,你是直接跳过了我的回复吗?
被忽视了,再也不会爱了
...

哦哦。。。我以为是只大写Solve活着NSolve。。。。。十分抱歉。。。还请你继续有爱。。。。。
10楼2016-01-12 13:48:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zrhcc 的主题更新
信息提示
请填处理意见