用Octave里的匿名函数计算溶液的量
其实不算「科学研究」,就是中学化学的水平😂,有人问到了,就算了一下。
问题描述:欲将5.0 × 10−2 M的储备溶液稀释成5.0 × 10−4、1.0 × 10−3、1.5 × 10−3、2.0 × 10−3、2.5 × 10−3、3.0 × 10−3、3.5 × 10−3、4.0 × 10−3 M的溶液,现在已经有若干个装有50 mL蒸馏水的烧杯,请问需要分别加入多少毫升储备溶液才能得到相应的浓度的溶液。注意:溶液为稀溶液,溶剂都是水。
思路:
因为$c_1 \times V_1 = c_2 \times V_2$,则
$$ V_1 = \frac{c_2}{c_1} \times V_2 = \frac{c_2}{c_1} \times (50 + V_1) $$
上式等价于
$$ V_1 - 50 \times \frac{c_2}{c_1} = \frac{c_2}{c_1} \times V_1 $$
即
$$ V_1 = \frac{50 \times \frac{c_2}{c_1}}{1 - \frac{c_2}{c_1}} $$
将$\frac{c_2}{c_1}$带入就可以求得相应的$V_1$了。
编程解决:
这里我可以用Octave里的匿名函数在一行内写出来(其实啰嗦半天就为了引出这一行代码)。
1 | (@(x) (50 .* x)./(1 - x)) ([5:5:40] * 1E-4 / 5E-2) |
后来我又化简了一下,发现不用这种方式也可以直接求得,代码是
1 | 50*(1 ./ (1 - [5:5:40] * 1E-4 ./ 5E-2) - 1) |
这个留给聪明的读者去化简罢。
或者您可以把评论发在别处,添加指向本页的连接,然后把网址告诉我:
本文标题:用Octave里的匿名函数计算溶液的量
文章作者:Chris
发布时间:2016-06-02
最后更新:2022-03-23
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
分享