MATLAB数值计算学习笔记(一)MATLAB程序设计基础

MATLAB语言数据类型

变量

符号型数据用于公式推导和数学问题解析解法,使用syms()函数
例如:syms a b;

字符串

字符串的定义:
1.直接用单引号赋值:s1=‘I love matlab’
2.利用char()函数结合ASCII码:s2=char([73 32 108 111 118 101 32 109 97 116 108 97 98])
3.字符数组生成字符串:s3=[‘I’, ’ ‘,‘l’,‘o’,‘v’,‘e’,’ ‘,’ ',‘m’ ,‘a’,‘t’,‘l’,‘a’,‘b’]
字符串拼接:用[ ]进行拼接,注意里边,和;的区别
用strcat()和strvcat()函数进行水平和垂直拼接。

元胞与结构

元胞数组:
定义:1.赋值语句,2.用cell()函数预先分配存储空间
调用:1.通过将索引括在圆括号 () 中可以引用元胞集;2.使用花括号 {} 进行索引来访问元胞的内容。
转换关系S2N:str2int, str2num, str2mat, sscanf
N2S: int2str, num2str, mat2str, sprintf

数值运算

矩阵运算

输入方法:
1.输入元素列表a=[1 2 3;3 4 5;4 5 6]
2.从外部数据文件中读取矩阵:load data.mat
3.内部函数和工具箱函数a=eye(4)
4.编写语句
代数运算:’ + - * / \ ^ .
逻辑云端:& | ~ xor
关系运算:==,~= ,> , < ,<= , >=

多项式运算

poly2sym(C,‘V’)
poly2str(C,‘V’)
C:多项式系数向量,降幂排列
V:指定变量,前者默认为x,后者必须指定。
基本运算:+,-,conv(乘),deconv(除),polyder(微分),polyint(积分),polyval(估值),roots(求根)。

复数运算

复数绘图:plot,polar
运算:real,imag,abs,angle,conj

留数运算

c=limit(F*(z-z0),z,z0) 单奇点
c=limit(diff(F*(z-z0)^m,z,m-1)/prod(1:m-1),z,a) m重奇点
prod连乘

符号运算

符号微积分

符号极限:limit()

调用:limit(F,x,a)或limit(F,x,a,‘right’或’left’)
F极限表达式,x为符号自变量,提前用syms x声明,right和left是单边极限

符号导数:diff()

调用:dF=diff(F,x,n)

符号积分int()

I=int(f,x)求不定积分
I=int(f,x,a,b)求不定积分

符号级数

taylor级数展开

单变量函数Taylor展开taylor():
r=taylor(f,x,n,a),单变量中x可以省略,n默认为6
多变量函数taylor展开mtaylor():
T=maple(‘mtaylor(f,[x1,x2,x3,…,xn],n’)原点
T=maple(‘mtaylor(f,[x1=a1,x2=a2,x3=a3,…,xn=an],n’)任意点

fourier级数展开
级数求和

symsum()函数用于求解已知通项的有穷或无穷级数的和
调用:r=symsum(s,v,a,b)
s通项,v级数自变量,a,b起点终点,可为inf,s中只有一个变量,可以省略v

符号积分变换

fourier变换

fourier()和ifourier()
调用:Fw=fourier(ft,t,w)和ft=ifourier(Fw,w,t)

laplace变换

laplace()和ilaplace()
调用:Fs=laplace(ft,t,s)和ft=ilaplacer(Fs,s,t)

Z变换

ztrans()和iztrans()
调用:FZ=ztrans(fn,n,z)和fn=iztrans(FZ,z,n)

符号方程求解

符号代数方程求解

线性方程,非线性方程,超越方程均可用solve()求解
调用:
S=solve(eqn1,eqn2,…eqnn,‘v1,v2,…,vn’)其中S是结构数组,要显示出显示解S.vi
[x1,x2,…,xn]=solve(eqn1,eqn2,…eqnn,‘v1’,‘v2’,…,‘vn’)

符号微分方程求解

用dsolve()函数求解有解析解的微分方程
sols=dsolve(‘eq1,eq2,…’,‘cond1,cond2,…’,‘v’)
eq微分方程组的表达式,cond初始条件,v符号自变量,缺省为t。

程序控制结构

顺序结构

数据输入input()

user_enter=input(‘prompt’)
user_enter=input(‘prompt’,‘s’)
prompt为提示信息,s用于指定输入内容为一个字符串

数据输出disp()

disp(X)

选择结构

条件语句if…end

开关语句switch

switch 开关表达式
          case 表达式1
               语句组1 
          case 表达式2
               语句组2
          otherwise
               语句组m
end

循环结构

for语句

for 循环变量=V
    循环体语句
end

while语句

while(条件)
      循环体语句
end

试探结构

try
   语句段1
catch
    语句段2
end

试探性执行语句段1,出现错误后执行语句段2

递归结构

M文件

M脚本文件中变量均为全局变量

M函数文件

function[输出变量列表]=函数名(输入变量列表)
        注释说明部分
        函数体语句
 return

特殊函数

inline()函数
匿名函数
feval()函数

图形绘制

二维图像

plot(),semilogx(),semilogy(),loglog()
调用
plot(Y)
plot(X,Y,LineSpec,…)
plot(X,Y,‘PropertyName’,PropertyValue,…)

三维图像

三维曲线图绘制
plot3()和line()调用同上
三维网格图绘制
mesh()函数和surf()函数(课绘制着色表面图)
mesh(Z)
mesh(X,Y,Z)
mesh(X,Y,Z,C)
mesh(X,Y,Z,‘PropertyName’,PropertyValue,…)

图像修饰

图形标注

使用text()和gtext()进行坐标轴窗口标注

text(x,y,‘string’)
text(x,y,z,‘string’)
text(x,y,z,‘string’,‘PropertyName’,PropertyValue)
gtext(‘string’)
gtext(‘string1’,‘string2’,‘string3’,…)
其中,x,y,z是标量或长度相等的向量,string是要添加的字符串

使用legend()进行图例添加

legend(‘string1’,‘string2’,‘string3’,…)
legend(h,‘string1’,‘string2’,‘string3’,…)
legend(‘mode’)或legend mode或legend(axes_handle,‘mode’)
legend(…,pos)

使用xlabel(ylabel和zlabel)进行坐标轴标注

xlabel(string,‘PropertyName’,PropertyValue,…)
PropertyName和PropertyValue是设置的树形及树形的值,成对出现,常见的有字体,字号

使用title()进行标题添加

title(string,‘PropertyName’,PropertyValue,…)

使用annotation()进行基本图形绘制

annotation(annotation_type,x,y)
annotation(…,‘PropertyName’,PropertyValue,…)

图形编辑

主要通过set和get函数实现精细图形绘制。用于查询和设置相关属性。
returned_value=get(object_handle,‘PropertyName’)查询句柄为object_handle的图形对象元素PropertyName属性取值。
set((object_handle,‘PropertyName’,NewPropertyValue)将句柄为object_handle的图形对象元素的PropertyName属性设置为NewPropertyValue。

函数绘图

fplot()函数

fplot(fun,limits,LineSpec)
fplot(fun,limits,tol,LineSpec)
fplot(fun,limits,n)
fplot(fun,limits,tol,n,LineSpec,p1,p2)
fun为需要绘制曲线的函数名称,limits,表示坐标轴取值范围:[xmin,xmax]和[xmin,xmax,ymin,ymax],tol表示函数相对误差精度,默认为2e-3,n表示最少绘图点为n+1,默认为1,LineSpec用于指定曲线的线型,颜色和标记符号。

ezplot()函数

ezpolt(fun,[min,max])
ezpolt(fun,[xmin,xmax,ymin,ymax])
ezplot(funx,funy,[tmin,tmax])
ezplot(…,figure_handle)
figure_handle是指定的图形窗口
三位曲线使用ezplot3()
ezplot3(funx,funy,funz,[tmin,tmax],‘animate’)

ezcontour()函数

ezcontour(fun,domain)
ezcontour(fun,domain,n)
n默认为60

专用图形绘图

条形图

bar(),bar3()(竖直)
barh(),bar3h()(水平)
bar(Y)
bar(x,Y)
bar(…,width)
bar(…,‘style’)
bar(…,‘bar_color’)
bar(…,‘PropertyName’,PropertyValue,…)
style:grouped和stacked

面积图

area(Y)
area(X,Y)
area(…,basevalue)
area(…,‘PropertyName’,PropertyValue,…)

饼图

pie(X)
pie(X,explode)
pie(…,labels)
用pie()和pie3()绘制二维和三维饼图,explode与x维数相等

举例

fplot([x^2,2-x^2],[-2 2 -0.5 2.5])%绘制曲线图
text([-1.4,-1.4],[2,0.05],{'\leftarrowy=x^2','\leftarrowy=2-x^2'})%添加标注
A=double(solve(x^2-(2-x^2)))%将符号型结果转换为浮点型
hold on 
xn=linespace(A(1),A(2),100)
fill([xn,fliplr(xn)],[xn^2,fliplr(2-xn^2),'b'])%填充积分区域
syms x y;
I=int(int(x^2,y,x^2,2-x^2),x,min(A),max(A))%嵌套调用求解重积分
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

祖国在我心中正版

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值