《数学实验》在线习题答案 二、程序阅读理解(30分)

1个回答

  • 到MATLAB中运行一下就清楚了.

    2.1

    syms x y %定义两个符号变量;

    y = dsolve('Dy=1/(1+x^2)-2*y^2','y(0) = 0','x') %解符号微分方程;

    dy/dx = 1/(1+x^2) - 2*y^2 ;

    y(0) = 0;

    这就是程序所求解的数学问题,即一个初值微分方程问题.

    y =

    x/(1+x^2)

    是matlab运行的结果.此即该方程的解.

    ezplot(y) %做y = x/(1+x^2) 的函数图像.

    pretty(y) %以通常纸面书写形式显示y;

    运行结果为:

    x

    ------

    2

    1 + x

    2.2

    [x,y]=meshgrid(-8:.5:8);

    定义了一个网格;即x-y平面上的自变量范围;x取值为-8到8;离散化后,是每0.5取一点;y与x同.

    r=sqrt(x.^2+y.^2)+eps;

    中间变量;

    eps 表示matlab中绝对值最小的数.这样下面定义z时,就不会出现0做除数的情况了.

    z=sin(r)./r;

    定义二元函数z=sin(x^2+y^2) / (x^2+y^2);

    mesh(x,y, z)

    作图;

    colormap([1 0 0])

    设置颜色.

    >> whos

    Name Size Bytes Class

    r 33x33 8712 double array

    x 33x33 8712 double array

    y 33x33 8712 double array

    z 33x33 8712 double array

    各变量的类型与大小显示得很清楚.

    当然,这种简单的程序,不运行,也很容易分析.初学者可以自己分析,与运行结果对照,加深理解.

    设ABCD各生产x1,x2,x3,x4,单位是吨;

    目标:y=MIN(100*x1+300*x2+400*x3+75*x4)

    约束:x1+5*x2+10*x3+0.5*x4>10000000;

    另外,x1,x2,x3,x4,均大于等于0.