数学分析
在这个例子中,我们将演示数学分析领域的几个简单问题的解决方案–切线的构造,方程的符号微分以及找到方程组的雅可比。
首先,使用代码运行准备单元格。
In [ ]:
Pkg.add(["Latexify", "Symbolics"])
In [ ]:
using Latexify
using Symbolics
using Plots
using Printf
plotlyjs();
建立切线
找到Y轴与点处与正弦波相切的线的交点 .
In [ ]:
a = pi/3
# 正弦波的曲线图
plot(sin, -pi:0.1:pi, framestyle = :origin, legend=false)
# 割线应该通过的点,图形
scatter!(sin, [a])
# Pi/3处正切方程
切线(x)=sin(a)+cos(a)*(x-a)
# Pi/3处切线的曲线图
阴谋!(切线,-3:2)
# 割线与y轴相交的点
散开!([0],[切线(0)],c=:黄色)
# 结果摘要(最后有几个空格)
annotate!(0, касательная(0), text(@sprintf("%.3f", касательная(0))*" ", :blue, :right, 8))
Out[0]:
In [ ]:
println("切线与纵坐标轴相交的点:(0, " * string(касательная(0)) * ")")
符号分化
区分功能 .
In [ ]:
@Symbolics.variables t
Df = Symbolics.Differential(t); # 让我们创建一个微分算子
z = t + t^2; # 让我们定义一个需要求导数的函数
# 让我们区分函数并简化结果。
expand_derivatives(Df(z))
Out[0]:
方程组的雅可比
找到线性函数系统的雅可比:
In [ ]:
@Symbolics.variables x_1 x_2 x_3 a_11 a_12 a_13 a_21 a_22 a_23 a_31 a_32 a_33 b_1 b_2 b_3
Symbolics.jacobian([ a_11*x_1 + a_12*x_2 + a_13*x_3 - b_1 ;
a_21*x_1 + a_22*x_2 + a_23*x_3 - b_2 ;
a_31*x_1 + a_32*x_2 + a_33*x_3 - b_3 ], [x_1, x_2, x_3])
Out[0]: