24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1044  |  回复: 4

没有实力

银虫 (小有名气)

[求助] 初学mathematica,琢磨了一天实在不行了,求教高手!

先把我写的内容直接贴出来,问题在后面:

y1 = 40; y2 = 20; b = 0.18;
Subscript[c, 1] = 10^-3; Subscript[c, 2] = 10^-4;
Subscript[d, 1] = Subscript[d, 2] = 40;
e = 1;
g = 0.72;
h = 10^-14;
(*前面是已知的常数*)
f[x_, y1_,
   y2_] = (y1/b)/(
    1 + Subscript[c, 1]/x +
     Subscript[c, 1]*Subscript[d, 1]*e/(b*x)) + (y2/b)/(
    1 + Subscript[c, 2]/x +
     Subscript[c, 2]*Subscript[d, 2]*e/(b*x)) == g + h/x - x;
t = x /. Solve[f[x, y1, y2]][[4]];
pH = -Log10[t]
(*这里得出我要的结果*)
Ai1 = (y1/b)/(
  1 + Subscript[c, 1]/t + Subscript[c, 1]*Subscript[d, 1]*e/(b*t));
Ai2 = (y2/b)/(
  1 + Subscript[c, 2]/t + Subscript[c, 2]*Subscript[d, 2]*e/(b*t));
y1 = t*Ai1/Subscript[c, 1] + Ai1;
y2 = t*Ai2/Subscript[c, 2] + Ai2;
(*这里重新得到新的y1和y2*)
f[x_, y1_,
   y2_] = (y1/b)/(
    1 + Subscript[c, 1]/x +
     Subscript[c, 1]*Subscript[d, 1]*e/(b*x)) + (y2/b)/(
    1 + Subscript[c, 2]/x +
     Subscript[c, 2]*Subscript[d, 2]*e/(b*x)) == g + h/x - x;
t = x /. Solve[f[x, y1, y2]][[4]];
pH = -Log10[t]
(*这里重复了一次,继续得到我要的结果*)

前面是直接复制出来的,不知道高手们能不能用,我再传一个图片。

我的问题是,我需要重复计算这个pH值,重复两百次,然后画出pH值随重复次数的变化曲线图,目前方程可能还有点问题,得到的曲线图不一定好看。关键问题是现在我一不会写循环语句,二不会写作图的命令。初学mathematica,请勿见笑,麻烦高手指教!如果能帮上忙仅有的三十余枚金币全部奉上。多谢帮助!

截图mathematica

[ Last edited by 没有实力 on 2012-5-24 at 10:56 ]
回复此楼

» 猜你喜欢

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

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

wangww2011

木虫 (著名写手)

循环的话可以用Table,楼主可以看mathematica的自带帮助,非常全的,呵呵
绘图检索plot就给出一堆有有用的绘图函数
2楼2012-05-24 19:56:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)



就像二楼说的,很容易就出来了,这个真没啥难度
3楼2012-05-24 22:36:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaoqing8569

铁杆木虫 (著名写手)

奥林匹亚光学院院长

【答案】应助回帖

感谢参与,应助指数 +1
y1 = 40; y2 = 20; b = 0.18;
Subscript[c, 1] = 10^-3; Subscript[c, 2] = 10^-4;
Subscript[d, 1] = Subscript[d, 2] = 40;
e = 1;
g = 0.72;
h = 10^-14;
(*前面是已知的常数*)
DD = (yy1/b)/(1 + Subscript[c, 1]/x +
       Subscript[c, 1]*Subscript[d, 1]*e/(b*x)) + (yy2/b)/(1 +
       Subscript[c, 2]/x + Subscript[c, 2]*Subscript[d, 2]*e/(b*x)) ==
    g + h/x - x;
phData = {};
For[i = 1, i <= 200, i++,
t = x /. Solve[Evaluate[DD /. {yy1 -> y1, yy2 -> y2}]][[4]];
pH = -Log[10, t]; phData = Append[phData, pH];
Ai1 = (y1/b)/(1 + Subscript[c, 1]/t +
     Subscript[c, 1]*Subscript[d, 1]*e/(b*t));
Ai2 = (y2/b)/(1 + Subscript[c, 2]/t +
     Subscript[c, 2]*Subscript[d, 2]*e/(b*t));
y1 = t*Ai1/Subscript[c, 1] + Ai1;
y2 = t*Ai2/Subscript[c, 2] + Ai2]
phData;
ListLinePlot[phData, PlotStyle -> Directive[Red, Thickness[.0035]],
Joined -> True, PlotRange -> All, AspectRatio -> .5]
Export["D:\\pH.gif", %, ImageSize -> {900, 650}]


4楼2012-05-24 22:47:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
5楼2012-05-25 12:03:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 没有实力 的主题更新
信息提示
请填处理意见