1 / 35

《 经济数学 》 实训课

《 经济数学 》 实训课. ------ 用 MATLAB 解决数学问题 任课老师 金慧萍. 主 要 内 容. 一、 Matlab 基本介绍 二、 Matlab 基本用法和常用的函数介绍 三、用 Matlab 解决经济数学中的数学问题. 使用 Matlab 软件时 , 需特别注意几点. ① 必须在 英文状态下 输入 ② clc 并回车 = 清屏 ③ clear 并回车 = 取消变量 ④ 乘法运算符号 * ,不能省略 ⑤ 分号 ; 表示先不运算 ⑥ inf = ⑦ pi= ⑧ Syms x y = 定义变量 x y.

gaurav
Télécharger la présentation

《 经济数学 》 实训课

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 《经济数学》实训课 ------用MATLAB解决数学问题 任课老师 金慧萍

  2. 主 要 内 容 • 一、Matlab基本介绍 • 二、Matlab基本用法和常用的函数介绍 • 三、用Matlab解决经济数学中的数学问题

  3. 使用Matlab软件时,需特别注意几点 ① 必须在英文状态下输入 ② clc并回车=清屏 ③ clear并回车=取消变量 ④ 乘法运算符号 * ,不能省略 ⑤ 分号 ;表示先不运算 ⑥ inf= ⑦ pi= ⑧ Syms x y =定义变量 x y

  4. 一、 MATLAB 的基本介绍 MATLAB 是Matrix Laboratory 的缩写, 是Mathworks 公司于1984 年推出的一套科学计算软件,分为总包和若干工具箱. 具有强大的矩阵计算和数据可视化能力. 一方面,可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、系统仿真等若干个领域的数学计算, 另一方面,可以实现二维、三维图形绘制、三维场景创建和渲染、科学计算可视化、图像处理、虚拟现实和地图制作等图形图象方面的处理. 同时,MATLAB 是一种解释式语言.简单易学、代码短小高效、计算功能强大、图形绘制和处理容易、可扩展性强.

  5. 其优势在于: • 矩阵的数值运算、数值分析、模拟; • 数据可视化、 2D/3D 的绘图; • 可以与FORTRAN、C/C++做数据链接; • 几百个核心内部函数; • 大量可选用的工具箱.

  6. 二、 Matlab基本用法和常用的函数介绍 1. Matlab的启动与退出 常用的进入 Matlab 方法是鼠标双击Windows 桌面上的Matlab 图标 。 在Matlab 的环境中,键入 quit(或 exit) 并回车,将退出Matlab,返回到Windows 桌面.

  7. 2. Matlab命令窗口的使用 下图展示了进入Matlab后的工作桌面(窗口). 在matlab命令窗口直接输入命令,再按回车键,则运行显示相应的结果.

  8. 3. 三角函数值的计算 在MATLAB 环境下,计算三角函数的一个值或一组值非常方便,只要给定自变量的数据并知道函数名就可以计算出对应函数值. 常用的三角函数和反三角函数为: 正弦函数: sin(x), 反正弦函数: asin(x), 余弦函数: cos(x),反余弦函数: acos(x), 正切函数: tan(x), 反正切函数: atan(x)。

  9. 注1:Matlab中的“角度”,采用弧度制,且用”pi”表示注1:Matlab中的“角度”,采用弧度制,且用”pi”表示 例1:计算sin30o的值。 只须在Matlab 环境下键入: sin(pi/6) 并回车,计算机屏幕将显示出计算结果: ans = 0.5000. 例2:计算sin30o ,sin45o ,sin60o的值。 键入: x=[pi/6,pi/4,pi/3];sin(x) 并回车,计算机屏幕将显示计算结果:ans = 0.5000 0.7071 0.8660. 或键入:sin([pi/6,pi/4,pi/3]),结果是一样的。 • 注2:Matlab中输入的命令,一定要在“英文半角的状态下”输入。

  10. 4. 其他函数值的计算 除了三角函数和反三角函数以外,Matlab 的内部函数还包括基本初等函数在内的一些函数.这些函数的使用如同正弦函数一样,需要给定自变量数据,然后键入函数名、括号、自变量名并回车,便可得对应的函数值数据. 常用基本函数有: 开平方:sqrt(x) 或 x^(1/2), x的n次幂:x^n; 以e为底的指数:exp(x) , 以a为底的指数函数:a^x; 自然对数: log(x), 以10为底的对数:log10(x) ; 最大值:max(x) , 最小值:min(x); 绝对值:abs(x) ; 取整:fix(x) ; 元素的总和:sum(x), 符号函数:sign(x) . 例3:计算log(1),log10(100),sqrt(16)=16^(1/2),3^10,sign(-5)等。

  11. 5.基本的数学运算 例4:计算(5×2+1.3-0.8)×102 ÷25 键入: (5*2+1.3-0.8)*10^2/25 并回车,得: ans =42 在Matlab下进行基本数学运算,只需将运算式直接打入提示号(>>)之后,并按回车键即可. Matlab会将运算结果直接存入一变数ans,代表Matlab运算后的答案(Answer)并显示其数值于屏幕上. 例4也可以用变量的方法做,如:

  12. 我们也可将上述运算式的结果设定给另一个变数x(定义变量) 例4:计算(5×2+1.3-0.8)×102 ÷25 键入: Syms x; x = (5*2+1.3-0.8)*10^2/25 回车得:x = 42 注3: Matlab认识所有一般常用到的加(+)、减(-)、乘(*)、除(/) 的数学运算符号,以及幂次运算(^). 注4: Matlab还会自动进行记忆体的使用和回收; 若不想让Matlab每次都显示运算结果,只需在运算式最后加上分号(;). 例5:计算 y=sinx e-0.3×16 ,当x=10时的值。 键入:Syms x y; x=10; y = sin(x)*exp(-0.3*16); >>y 回车得:y =-0.0045.

  13. 定义多个变量的情况: 例6:计算 , 当 时的值。 Syms x y z; x=2; y=4; z=x^2+exp(x+y)-y*log(x)-3 回车,可以运算出结果是401.6562。 注5:变量要区分字母的大小写,标点符号必须是在英文状态下输入。 注6:要清除前面定义的变量,只需要输入clear即可。但是输入了clear 后又必须要重新定义变量,否则变量无意义。如果没有清除变量,则表示该变量可以继续使用。

  14. 6. 解方程 命令格式: Solve (‘方程’,’变量’)。 例7:求方程x2=4的根。 >> solve ('x^2-4=0','x') ans = -2 2 例8:求方程x-sinx=1/2的根。 >> solve ('x-sin(x)=1/2','x') ans = 1.4973003890958923146815215409476 注7:方程与变量一定要用单引号‘ ’;方程中的“=0与变量x”可以省; 另外这个命令只适合求一元方程的根。

  15. 7. 求极限 命令格式: Syms x; Limit (函数名,变量,趋近值) 例9:求 。 >> syms x; >> limit(sin(x)/x) ans = 1 注8:当 时,变量和趋近值都可以不用写; 其他情况,必须写出变量和趋近值。

  16. 例10求: >> syms x; >> limit((x^2-1)/(x^2+3*x-4),x,1) ans = 2/5 例11 求: >> syms x; >> limit(exp(x),x,-inf) ans = 0

  17. 8.求导数 命令格式: syms x; diff(函数名)表示求函数的一阶导数; diff(函数名,变量名,n)表示函数对该变量求n阶导数。 例12:求 的一阶导数,10阶导数,11阶导数等。 >> syms x; >> diff(x^10) ans =10*x^9 >>diff(x^10,x,10) ans =3628800 >>diff(x^10,x,11) ans =0

  18. 的导数。 例13: 求函数 >> diff(x^x) 或diff(x^x,x,1) ans = x^x*(log(x)+1) 例14: 求函数 的导数。 >>diff((sin(1/x))^2) ans = -2*sin (1/x)* cos (1/x))/x^2 注9:当变量为x,并求1阶导数时,可省略”变量名”与”n”。

  19. 9. 绘平面图形 (1)linspace函数的使用 命令格式: Linspace(x1,x2,n) 表示:x1为首分量,x2为末分量的n维向量(即n-1等分)。 例15: >> linspace(0,100,5) ans = 0 25 50 75 100 >> linspace(0,-100,5) ans = 0 -25 -50 -75 -100 >> linspace(0,100,101) ans=1 2 3 --- 100 101 >> linspace(1,100) ans=1 2 3 ---99 100 注10:如果没有指明n,则默认100维向量(即99等分)。

  20. (2) 一元函数的绘图 命令格式: fplot(‘fun’,[a,b]) 例16: 画出 y=sinx的图像,x属于[0,2pi]. >> fplot('sin(x)',[0,2*pi])

  21. 例17 画出 在[-5,5]内的图像。 >> fplot('x*sin(1/x)',[-5,5]) 问:>> fplot(‘x*sin(1/x)’,[-0.1,0.1]) 图会如何?

  22. (3)多个函数的绘图 plot是Matlab的最基本的绘制二维图形指令。 其主要功能是根据函数自变量的一组值,绘制出函数的图形; 基本格式有下面几种: • plot(X,Y) • (2) plot(Y) • (3) plot(X1,Y1,X2,Y2) • (4) plot(x,y,’s’) s是控制图形的颜色及图形的连线方式(见下表)

  23. 表1-3 图形控制选项列表

  24. 例18: 绘制 y=sinx 在 [0,2pi] 内的图像 >>x=linspace(0,2*pi,100); >> y=sin(x); >> plot(x,y) 问: ① >>x=linspace(0,2*pi,5); >> y=sin(x); >> plot(x,y) ② >>x=linspace(0,2*pi,100); >> y=sin(x); >> plot(x) ④>>x=linspace(0,2*pi,100); >> y=sin(x); >> plot(x,y,‘r’) 它们的图形会如何? ③>>x=linspace(0,2*pi,100); >> y=sin(x); >> plot(x,y,‘s’)

  25. 例19: 在同一个坐标系内画出函数y=sinx和y=cosx在[-2pi,2pi]内的图像。 >>x=linspace(-2*pi,2*pi,200); y1=sin(x); y2=cos(x); plot(x,y1,x,y2)

  26. 例20: 在同一个坐标系内画出函数y=sinx和y=cosx在[0,2pi]内的图像;并且 正弦函数图像用红色的五角星表示,其余部分用实线连接;余弦函数的图像用黑色的加号表示,其余部分用虚线连接。 >> x=linspace(0,2*pi,50); y1=sin(x); y2=cos(x); plot(x,y1,'-rp',x,y2,'--k+')

  27. Matlab提供了许多很实用的绘制特殊二维图形的函数,常用的有如下表所列的函数。Matlab提供了许多很实用的绘制特殊二维图形的函数,常用的有如下表所列的函数。 注11:如需要具体了解某个函数的用法和效果,可以输入“help 函数名”即可。 如需要画柄状图,则输入“help pie”就可以查看。

  28. 例21: 绘制y=sinx在[0,2pi]内的条形图。 >> x=linspace(0,2*pi,20); y=sin(x); bar(x,y,'r')

  29. >> x=linspace(0,2*pi,40); y=sin(x); bar(x,y,'r')

  30. *(4)三维空间的绘图 Plot3 命令将绘制二维图形的函数plot的特性扩展到三维空间。 除了数据多了一维之外,它的格式与plot相同。具体的命令格式为: Plot3 (X1,Y1,z1,X2,Y2,z2)后面可以相应的加上控制组合。 *例22 绘制函数x=tsint,y=tcost,z=t的三维图形。 >> t=linspace(0,20*pi,1000); >> plot3 (t.*sin(t),t.*cos(t),t) >> t=linspace(0,20*pi,1000); plot3 (t.*sin(t),t.*cos(t),t); >> grid on

  31. Matlab中绘制带网格的曲面图使用mesh函数。 *例23:绘制 的图像。 syms x y z r >> x=linspace(-10,10,50); y=linspace(-10,10,50); [xx,yy]=meshgrid(x,y); >> r=sqrt(xx.^2+yy.^2); z=sin(r)./r; mesh(z)

  32. 三、用Matlab解决经济数学中的数学问题 例24.某厂生产一批产品,其固定成本为2000元,每生产一吨产品的成本为60元,对 这种产品的市场需求规律为 ( 为需求量, 为价格). 试求: (1)成本函数,收入函数; (2)产量为多少吨时利润最大?

  33. 解:(1)成本函数 . 因为 ,即 , 所以 收入函数 . (2)因为利润函数

  34. 得 故有最大利润为 用matlab计算如下: 1.求利润函数L(q)的导数。 >> syms p q; >> diff(-1/10*q^2+40*q-2000) ans = 40 - q/5 2.令L’(q)=0,解方程。 >> solve('40 - q/5') ans = 200

  35. 3.作出利润函数的图像,根据图像观察最值点。3.作出利润函数的图像,根据图像观察最值点。 >> fplot('-1/10*q^2+40*q-2000',[0,1000,0,3000])

More Related