在校学习数学建模,整理的matlab相关笔记,按照学校授课时间顺序发布相关内容,做这个的初衷是为了方便自己学习,所以有些地方以教材为主,大家不要见怪。
希望能在这里分享学习的一些知识碎片,接触时间不长,如果文章有任何错误,欢迎大家指正。
如果喜欢我的文章还请大家不吝动手给我点赞收藏关注哦,留下你来过的足迹,让我眼熟你。
目录
1.1 控制流
1.1.1 for循环(固定次数)
for x=array
{commands}
end
array 数组 commands 命令串
例1 对n=1,2,...,10,分别求的值.
% 编写M文件for1.m
for n=1:10
x(n) = sin(n*pi/10);
end
x
注意:for循环内不能对变量重新赋值;for循环可按需嵌套;应用for循环时应预先分配数组
1.1.2 while循环 (不定次数)
while (expression)
{commends}
end
例2 设银行年利率为11.25%,将10000元钱存入银行,问多长时间会连本带利翻一番?
money = 10000;
years = 0
while money<20000
years = years + 1;
money = money *(1+11.25/100);
end
years
money
% years=7
% money=2.1091e+004
1.1.3 if-else-end结构
1)有一个选择的一般形式
if (expression)
{commands}
end
2) 有两个选择的一般形式
if (expression)
{commands1}
else
{commands2}
end
3 有三个或更多选择的一般形式
if (expression1)
{commands1}
else if (expression2)
{commands2}
else if ···
else
{commands}
end
···
end
% 有几个if,就有几个end
% 建立M文件fun1.m,后在命令窗口输出fun1(2),fun1(0.5),fun1(-1)
function f=fun1(x)
if x>1
f = x.^2+1
else if x<=0
f = x.^3
else
f = 2*x
end
end
2.1 MATLAB作图
2.1.1 二维图形
1)曲线图
画一个曲线图形之前,必须先取得该图形上的一系列点的坐标,然后将该点集的坐标传给MATLAB函数画图
plot(x,y,s)
plot(x,y)
plot(x,y1,s1,x,y2,s2,…,x,yn,sn)
x,y是向量,分别表示该点集的横坐标和纵坐标,命令plot(X,Y,S)描绘该点集所表示的曲线,其线型由S确定如下
y | 黄色 | . | 点 | - | 实线 |
m | 洋红 | o | 圈 | : | 短虚线 |
c | 蓝绿色 | × | 叉 | -. | 长短线 |
r | 红色 | + | 十字 | -- | 长虚线 |
- 在区间
画sinx;
- 在
用红线画sinx,用蓝绿圈画cosx.
x = linspace(0,2*pi,30);
y = sin(x);
plot(x,y)
x = linspace(0,2*pi,30);
y = sin(x);
z = cos(x);
plot(x,y,'r',x,z,'co')
% 注意:若用M文件,文件名不能以plot命名
2)符号函数(显函数、隐函数和参数方程)画图
无需数据准备,直接画出函数图形,通过“ezplot”或“fplot”来实现
ezplot(f)
% 表示在默认区间[-2pi,2pi]上绘制f=f(x)的图形
ezplot(f,[a,b])
% 表示在[a,b]上绘制
ezplot(f,[xmin,xmax,ymin,ymax])
% 表示在区间[xmin,xmax]和[ymin,ymax]上绘制隐函数f(x,y)=0的图形
ezplot(x,y,[tmin,tmax)
% 表示在区间[tmin,tmax]上绘制x=x(t),y=y(t)的图形
fplot(fun,lims)表示绘制字符串fun指定的函数在lims=[xmin,xmax]的图形.fun必须是M文件的函数名或独立变量为x的字符串,此字符串被送入函数eval.
命令fplot不能画参数方程和隐函数图形,但在一个图上可以画多个图形
例1 在上画y=sinx的图形
ezplot('sin(x)',[0,pi])
例2 在上画星形线
的图形.
ezplot('cos(t).^3','sin(t).^3',[0,2*pi])
例3 将x的取值范围限制在[-2,0.5],y的取值范围限制在[0,2],画隐函数的图形
ezplot('exp(x)+sin(x*y)',[-2,0.5,0,2])
例4 在[-1,2]上画的图形
ezplot('exp(2*x)+sin(3*(x.^2))',[-1,2])
例5 将x,y的取值范围都限制在,画函数tanh x,sin x,cos x的图形
fplot(@(x)[tanh(x),sin(x),cos(x)],2*pi*[-1 1])
% 此式应用于2016的版本,其余版本有可能不一样
以上题目有些可改用M文件或fplot解决,大家可自行尝试。