24小时热门版块排行榜    

查看: 2576  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

c736737270

新虫 (初入文坛)

[求助] mathematic中使用while循环求方程,出现超过 1024 的递归深度的问题。

求大神解决啊,代码如下,复制黏贴即可运

g[t_] := \!\(
\*SubsuperscriptBox[\(\[Integral]\), \(td\), \(t\)]\(\((0.2 +
     0.1 \((v - td)\))\) \[DifferentialD]v\)\)

m[nu_] := 1 - E^(-0.01*nu)

beta[x_] := E^-x

td := 1/24;

nu := 69.3147

newnu := nu; oldnu := newnu - 5

k := 120


c := 20

h := 3

DE := 1000

p := 35

PPi := 5

s := 4

\[CapitalLambda]1[t1_, T_, nu_] := ((p - c)*DE*(t1 + \!\(
\*SubsuperscriptBox[\(\[Integral]\), \(t1\), \(T\)]\(\((beta[
           T - t])\) \[DifferentialD]t\)\)) - k - (c + h*td)*DE*\!\(
\*SubsuperscriptBox[\(\[Integral]\), \(td\), \(t1\)]\(\((\((\(-1\) +
\*SuperscriptBox[\(E\), \(\(-0.008246527777777776`\)\
\*SuperscriptBox[\(E\), \(\(-0.01`\)\ nu\)]\)])\) +
         0.19583333333333333`\
\*SuperscriptBox[\(E\), \(\(-0.008246527777777776`\)\
\*SuperscriptBox[\(E\), \(\(-0.01`\)\ nu\)] - 0.01`\ nu\)]\ t +
         0.019175347222222222`\
\*SuperscriptBox[\(E\), \(\(-0.008246527777777776`\)\
\*SuperscriptBox[\(E\), \(\(-0.01`\)\ nu\)] - 0.03`\ nu\)]\ \((1.`\
\*SuperscriptBox[\(E\), \(0.01`\ nu\)] + 2.607514712539611`\
\*SuperscriptBox[\(E\), \(0.019999999999999997`\ nu\)])\)\
\*SuperscriptBox[\(t\), \(2\)] + 0.009791666666666667`\
\*SuperscriptBox[\(E\), \(\(-0.008246527777777776`\)\
\*SuperscriptBox[\(E\), \(\(-0.01`\)\ nu\)] -
            0.05`\ nu\)]\ \((0.12783564814814813`\
\*SuperscriptBox[\(E\), \(0.020000000000000004`\ nu\)] + 1.`\
\*SuperscriptBox[\(E\), \(0.030000000000000002`\ nu\)])\)\
\*SuperscriptBox[\(t\), \(3\)])\) \[DifferentialD]t\)\) +
    h*DE*td^2/2 - h*DE*td*t1 - h*DE*\!\(
\*SubsuperscriptBox[\(\[Integral]\), \(td\), \(t1\)]\(\((
\*SuperscriptBox[\(E\), \(\(-0.08`\)\ nu\)]\ \((1.`\
\*SuperscriptBox[\(E\), \(0.08`\ nu\)]\ t1 + 0.09791666666666667`\
\*SuperscriptBox[\(E\), \(0.07`\ nu\)]\
\*SuperscriptBox[\(t1\), \(2\)] + 0.006391782407407406`\
\*SuperscriptBox[\(E\), \(0.06000000000000001`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] + 0.016666666666666666`\
\*SuperscriptBox[\(E\), \(0.07`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] + 0.0003129310136959876`\
\*SuperscriptBox[\(E\), \(0.05`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)] + 0.002447916666666667`\
\*SuperscriptBox[\(E\), \(0.06`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)])\) +
\*SuperscriptBox[\(E\), \(\(-0.08`\)\ nu\)]\ \((\(-1.`\)\
\*SuperscriptBox[\(E\), \(0.08`\ nu\)] - 0.19583333333333333`\
\*SuperscriptBox[\(E\), \(0.07`\ nu\)]\ t1 - 0.019175347222222222`\
\*SuperscriptBox[\(E\), \(0.060000000000000005`\ nu\)]\
\*SuperscriptBox[\(t1\), \(2\)] - 0.0012517240547839502`\
\*SuperscriptBox[\(E\), \(0.05000000000000001`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] - 0.0032638888888888887`\
\*SuperscriptBox[\(E\), \(0.060000000000000005`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] - 0.00006128232351546424`\
\*SuperscriptBox[\(E\), \(0.04`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)] - 0.0004793836805555556`\
\*SuperscriptBox[\(E\), \(0.049999999999999996`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)])\)\ t +
\*SuperscriptBox[\(E\), \(\(-0.08`\)\ nu\)]\ \((0.09791666666666667`\
\*SuperscriptBox[\(E\), \(0.07`\ nu\)] + 0.019175347222222222`\
\*SuperscriptBox[\(E\), \(0.06`\ nu\)]\ t1 - 0.05`\
\*SuperscriptBox[\(E\), \(0.07`\ nu\)]\ t1 + 0.0018775860821759259`\
\*SuperscriptBox[\(E\), \(0.05`\ nu\)]\
\*SuperscriptBox[\(t1\), \(2\)] - 0.004895833333333334`\
\*SuperscriptBox[\(E\), \(0.060000000000000005`\ nu\)]\
\*SuperscriptBox[\(t1\), \(2\)] + 0.00012256464703092846`\
\*SuperscriptBox[\(E\), \(0.04000000000000001`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] + 5.421010862427522`*^-20\
\*SuperscriptBox[\(E\), \(0.05`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] - 0.0008333333333333334`\
\*SuperscriptBox[\(E\), \(0.060000000000000005`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] + 6.000560844222541`*^-6\
\*SuperscriptBox[\(E\), \(0.030000000000000002`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)] + 0.00003129310136959877`\
\*SuperscriptBox[\(E\), \(0.039999999999999994`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)] - 0.00012239583333333335`\
\*SuperscriptBox[\(E\), \(0.049999999999999996`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)])\)\
\*SuperscriptBox[\(t\), \(2\)] +
\*SuperscriptBox[\(E\), \(\(-0.08`\)\ nu\)]\ \((0.`  -
            0.006391782407407405`\
\*SuperscriptBox[\(E\), \(0.06`\ nu\)] + 0.03333333333333334`\
\*SuperscriptBox[\(E\), \(0.07`\ nu\)] - 0.0012517240547839504`\
\*SuperscriptBox[\(E\), \(0.05`\ nu\)]\ t1 + 0.009791666666666667`\
\*SuperscriptBox[\(E\), \(0.06`\ nu\)]\ t1 - 0.00012256464703092848`\
\*SuperscriptBox[\(E\), \(0.04000000000000001`\ nu\)]\
\*SuperscriptBox[\(t1\), \(2\)] + 0.0009587673611111112`\
\*SuperscriptBox[\(E\), \(0.05`\ nu\)]\
\*SuperscriptBox[\(t1\), \(2\)] - 8.000747792296719`*^-6\
\*SuperscriptBox[\(E\), \(0.030000000000000013`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] + 0.00004172413515946501`\
\*SuperscriptBox[\(E\), \(0.04000000000000001`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] + 0.00016319444444444446`\
\*SuperscriptBox[\(E\), \(0.05`\ nu\)]\
\*SuperscriptBox[\(t1\), \(3\)] - 3.9170327733119356`*^-7\
\*SuperscriptBox[\(E\), \(0.020000000000000004`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)] + 0.000023969184027777782`\
\*SuperscriptBox[\(E\), \(0.039999999999999994`\ nu\)]\
\*SuperscriptBox[\(t1\), \(4\)])\)\
\*SuperscriptBox[\(t\), \(3\)])\) \[DifferentialD]t\)\) - s*DE*\!\(
\*SubsuperscriptBox[\(\[Integral]\), \(t1\), \(T\)]\(\((\((T -
           t)\) beta[T - t])\) \[DifferentialD]t\)\) - PPi*DE*\!\(
\*SubsuperscriptBox[\(\[Integral]\), \(t1\), \(T\)]\(\((1 -
         beta[T - t])\) \[DifferentialD]t\)\) - T*nu)/T

While[Abs[newnu - oldnu] > 10^-4,
xx := FindRoot[{D[\[CapitalLambda]1[t1, T, nu], t1] == 0,
    D[\[CapitalLambda]1[t1, T, nu], T] == 0}, {t1, 0.2}, {T, 0.2}];
t1 := xx[[1, 2]]; T := xx[[2, 2]];
yy := FindRoot[D[\[CapitalLambda]1[t1, T, nu], nu] == 0, {nu,80}];
nu := yy[[1, 2]]; oldnu := newnu; newnu := nu]
回复此楼

» 猜你喜欢

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

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

c736737270

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by walk1997 at 2014-02-27 20:28:03
如果真是 递归或 迭代的深度 改变 $RecursionLimit 或 $IterationLimit 值就可以吧
不过 感觉 是代码的问题 不是深度不够的问题
代码太乱 copy过去还是乱

恩 已经解决了 谢谢回复  金币就给你吧  哈哈
3楼2014-02-28 18:05:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

walk1997

金虫 (著名写手)

如果真是 递归或 迭代的深度 改变 $RecursionLimit 或 $IterationLimit 值就可以吧
不过 感觉 是代码的问题 不是深度不够的问题
代码太乱 copy过去还是乱
2楼2014-02-27 20:28:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

c736737270

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by walk1997 at 2014-02-27 20:28:03
如果真是 递归或 迭代的深度 改变 $RecursionLimit 或 $IterationLimit 值就可以吧
不过 感觉 是代码的问题 不是深度不够的问题
代码太乱 copy过去还是乱

怎么不能给金币啊?
4楼2014-02-28 18:10:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见