1 求导与解方程
在求解博弈模型时,经常要用到函数求导和方程求解。求导可以用求导函数D[],方程求解可以用Solve[]函数。二者的基本用法如下:
D[f(x), x],将函数f(x)对变量x求导;
Solve[equation, variable],equation为要求解的等式,variable为要求解的变量。
下边是一个具体例子:
例1:联立求解和,
(*定义函数*)
f1 = a*x^2 + b*x + c;
f2 = a*y^2 + p*y + q;
(*联立求解*)
Solve[{D[f1, x] == 0, D[f2, y] == 0}, {x, y}]
输出结果:
2 一维曲线图
在观察均衡解的性质和做数值实验的过程中都需要绘制一些函数曲线,这就需要用到Plot[]函数。Plot[]函数的基本语法为:Plot[f[x], {x, a, b}],f[x]表示需要绘制的函数,{x, a, b}表示变量x的取值范围。如果需要对函数图像进行美化,还需要加入其他一些属性,函数图像美化将在后续文章中详细介绍。以下是一个具体应用的例子:
例2:将 f1 和 f2 的函数图像绘制在同一张图中。
(*定义函数*)
f1 = x^2;
f2 = x;
(*绘制图像*)
Plot[
{f1,f2},(*要绘制的函数*)
{x,0,2},(*x的取值范围*)
PlotStyle->{Directive[Black,Dashed],Directive[Red,DotDashed] },(*线的颜色和线形*)
PlotLegends->Placed[{f1,f2},Right],(*图例和要放置的位置*)
FrameLabel->{x,y},(*横纵坐标名称*)
Frame->True,(*图像边框*)
AspectRatio->1,(*宽高比*)
ImageSize->300(*图像尺寸*)
]
绘图结果如下:
3 二维不等式区域图
有时候在比较两个或多个均衡解的时候,需要同时对两个参数进行分析,这就需要用到RegionPlot[]函数来绘制区域图。下边是一个具体的例子:
例3:比较三个函数f1、f2、f3的大小,并绘制成一个二维区域图。
(*定义函数*)
f1=3*x+y;
f2=x+3*y;
f3=x^2+y^3;
(*绘制区域*)
RegionPlot[
{f1 >= f2 && f1 >= f3, f2 >= f3 && f2 >= f1, f3 >= f2 && f3 >= f1},(* 定义3个区域,&&相当于“且” *)
{x, 0, 4}, {y, 0, 4},(*定义x和y的取值范围*)
FrameLabel -> {"x", "y"},(*定义横纵坐标名称*)
PlotLabels -> Placed[{"f1", "f2", "f3"}, Center],(*定义3个区域的名称,分别为f1、f2、f3*)
BoundaryStyle -> Directive[Black, Thickness[0.001]],(*定义区域边界线的样式*)
AspectRatio -> 1,(*宽高比*)
ImageSize -> 300(*图像尺寸*)
]
绘图结果如下: