---------------------利用MATLAB画图-------------------------
一般绘制公式对应的图形是二维的,就只介绍一下二维绘图函数吧,三维绘图原理类似。
常用的二维绘图函数:
plot(x,y,‘s’)
x,y是向量,分别表示点集的横坐标和纵坐标,s表示线型、颜色、点形
(1)图形标记
•title(‘加图形标题');
•xlabel('加X轴标记');
•ylabel('加Y轴标记');
•text(X,Y,'添加文本');
•grid on 加网格线
•text(x,y,‘string’) adds the string in quotes(引号) to the location specified by the
point (x,y).
•ullet ·
•pi π
•
ightarrow
右箭头
•EdgeColor -- Color of the rectangle's edge
(none by default).
•‘EdgeColor’ ,‘red’
(2)坐标轴设置
•axis([xmin xmax ymin ymax]) 设定最大和最小值
•axis (’auto’)
将坐标系统返回到自动缺省状态
•axis (’square’) 将当前图形设置为方形
•axis (’equal’) 两个坐标因子设成相等
•axis (’off’) 关闭坐标系统
•axis (’on’) 显示坐标系统
(3)添加图例
legend('图例说明','图例说明');
2.符号函数画图
(1)ezplot(‘f(x)’,[a,b])
表示在a<x<b绘制显函数f=f(x)的函数图
(2)fplot(‘fun’,lims)
表示绘制字符串fun指定的函数在lims=[xmin,xmax]的图形.或
lims=[xmin,xmax,
ymin,ymax]
(3)subplot(m,n,p)
表示将当前图形窗口分成m×n个绘图区,即每行n个,共m行,区号按行优先编号,且选定第p个区为当前活动区
3.对数坐标画图
(1)loglog(Y) 表示 x、y坐标都是对数坐标系
(2)semilogx(Y) 表示 x坐标轴是对数坐标系
semilogy(…) 表示y坐标轴是对数坐标系
(3)plotyy
有两个y坐标轴,一个在左边,一个在右边
4.其他画图函数
(1)stairs(x,y) 绘制阶梯图形
(2)bar(x,y) 绘制条形图形
(3)fill(x,y,’c’) 绘制并填充二维多边图形,x和y为二维多边形顶点坐标向量
用到的不会用的函数可以百度搜“matlab (那个函数)",就可以找到许多用法的实例,英文好的话直接看matlab 帮助里的用法解释。
-------------hold on和hold off的用法-----------------
hold off 使当前轴及图形不在具备被刷新的性质
前者的意思是,你在当前图的轴(坐标系)中画了一幅图,再画另一幅图时,原来的图还在,与新图共存,都看得到
后者表达的是,你在当前图的轴(坐标系)中画了一幅图,此时,状态是hold off,则再画另一幅图时,原来的图就看不到了,在轴上绘制的是新图,原图被替换了
>> t=(0:pi/100:pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,y1,'r:',t,y2,'-bo')
hold on
plot(t3,y3,'s','MarkerSize',10,'MarkerEdgeColor',[0,1,0],'MarkerFaceColor',[1,0.8,0])
axis([0,pi,-1,1])
hold off
图形
>> t=(0:pi/100:pi)';
y1=sin(t)*[1,-1];
y2=sin(t).*sin(9*t);
t3=pi*(0:9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,y1,'r:',t,y2,'-bo')
plot(t3,y3,'s','MarkerSize',10,'MarkerEdgeColor',[0,1,0],'MarkerFaceColor',[1,0.8,0])
axis([0,pi,-1,1])
hold off
去掉hold on后的图形,只显示最后的一次数据
-----------------求不定积分---------------------
求函数“xe^x”的不定积分。
我们要用到"int"命令,具体操作见下图。
*****命令开始*****
syms x C
int( f(x) ) +C
*****命令结束******
当然上面命令中的f(x)为你自己指定
下面我们用matlab来求一下函数“sin(x)/x".的不定积分。
看下图的结果.
1、首先举一个比较简单的例子
求函数"x^2*e^x"在(0到1)上的积分
输入命令:
*****命令开始*****
syms x
int( x^2*exp(x), 0, 1 )
*****命令结束******
命令见下图:
2、函数“x^2*e^x” 在(0到1)的定积分的结果见下图
3、实际上,我们要求f(x)的在(a到b)的定积分,只需在matlab中输入如下命令:
*****命令开始*****
syms x
int( f(x) , a, b )
*****命令结束******
当然上面命令中的f(x)为你自己指定
a为积分下限,b为积分上限。
matlab求导命令diff调用格式:
diff(函数) , 求的一阶导数;
diff(函数, n) , 求的n阶导数(n是具体整数);
diff(函数,变量名), 求对的偏导数;
diff(函数, 变量名,n) ,求对的n阶偏导数;
matlab求雅可比矩阵命令jacobian,调用格式:
jacobian([函数;函数; 函数], [])给出矩阵:
另外
解微分方程可以用desolve
例
>> x=solve('x^2=y','x')
x =
y^(1/2)
-y^(1/2)
x' = (x - x0)*cosA - (y - y0)*sinA
y' = (y - y0)*cosA + (x - x0)*sinA