#範例6-2:比較sympy與Maxima軟體在計算積分的準確率 from sympy import * from sympy.interactive import printing printing.init_printing(use_latex=True) x = symbols('x') y1 = Function('y')(x) #使用軟體或函數庫來計算微分都正確,但是若是計算積分,很多函數會算不出來 #微積分常用軟體Maxima在做積分時,經常會出現看不懂的函數結果,或是算不出答案 #(1).簡單積分 y1 = x/sqrt(1+x**2) print('1.簡單積分=',integrate(y1, x)) display(y1) #注意:最後的積分還要自己手動去加上任意常數C #(2).簡單積分 y1 = 1/x print('2.簡單積分=', integrate(y1, x)) display(y1) #注意:最後的積分還要自己手動去加上任意常數C #(3).sympy與Maxima軟體的結果一樣複雜 y1 = sqrt(1+x**2) print('3.sympy與Maxima軟體的結果一樣複雜=', integrate(y1, x)) display(y1) #結果:與Maxima軟體一樣,都會出現asinh(x)這個少見的函數 #(4).sympy可以積分出來,但Maxima軟體無法正確積分 y1 = sqrt(1+x**4) print('4.sympy可以積分出來,但Maxima軟體無法正確積分=\n', integrate(y1, x)) display(y1) #結果:若用Maxima軟體計算結果無法顯示答案,但若用sympy則可以顯示出答案 #計算0~1之間的面積(積分) print('5.計算0~1之間的面積=\n', integrate(y1,(x,0,1))) display(y1)