裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

数学問題-7

2020年11月11日 | ブログラミング
Python では sympy を使う
WolframAlpha の「高等学校 数学」の例題を解いてみる

https://ja.wolframalpha.com/examples/mathematics/koukousugaku/math-iii/

問題 1 不定積分 ∫(1/(x(log x)^2))dx

>>> from sympy import *
>>> var('a:z')
(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z)

>>> integrate(1/(x*log(x)**2))
-1/log(x)

問題 2 定積分 ∫(0からlog3まで) dx/(e^x+5e^(-x)-2)

>>> a = 1/(exp(x) + 5*exp(-x) - 2)
>>> b1 = integrate(a)
>>> b1
RootSum(16*_z**2 + 1, Lambda(_i, _i*log(8*_i + exp(x) - 1)))
>>> simplify(b1)
-I*log(exp(x) - 1 - 2*I)/4 + I*log(exp(x) - 1 + 2*I)/4

>>> integrate(a, (x, 0, log(3)))
RootSum(16*_z**2 + 1, Lambda(_i, _i*log(2/15 - 8*_i/5))) - RootSum(16*_z**2 + 1, Lambda(_i, _i*log(4/5 - 8*_i/5)))
>>> integrate(a, (x, 0, log(3))).evalf()
0.392699081698724
>>> (b1.subs(x, log(3)) - b1.subs(x, 0)).evalf()
0.392699081698724

sympy では得られないが,integrate(a) の別の形

>>> b2 = -atan((1-exp(x))/2)/2
>>> # radsimp(diff(b2)) = radsimp(a) ゆえ,integrate(diff(b2)) = b2 = integrate(a)
>>> radsimp(diff(b2))
exp(x)/(exp(2*x) - 2*exp(x) + 5)
>>> radsimp(a)
exp(x)/(exp(2*x) - 2*exp(x) + 5)
>>> b2.subs(x, log(3)).evalf()
0.392699081698724
>>> (b2.subs(x, log(3)) - b2.subs(x, 0)).evalf()
0.392699081698724





コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 数学問題-6 | トップ | 数学問題-8 »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事