文章目录
1. 基本运算
运算顺序
% 建议使用括号,清晰不容易出错
a=3*2>=4 %先乘法然后比较大小
b=5*3:19 %先乘法
c=2*4^2 %先乘方,再乘法
加减乘除
4 + 8
7 - 4
2 * 1
6 / 2
大于,小于,等于,不等于
a=7>5
b1=rand(2,2)
b2=b1>=0.6
b3=b1<=0.7
c1=eq(b2,b3)
c1=b2==b3
c2=b2~=b3 % ~= 不等于
与 或 非
A=rand(2,2)
B=A>0.8
C=A<0.2
d1=B&C
d2=B|C
d3=~B
d4=xor(B,C) % 异或
(a>0)&&(6/a>3) %逻辑与(快速),如果不满足第一个条件,则不看第二个条件
(a>0)&(6/a>4) %逻辑与
按位与
a=12
b=56
c1=dec2bin(a) % 转换为二进制数
c2=dec2bin(b)
d1=bitand(a,b) % 按位与
d2=dec2bin(bitand(a,b))
d3=dec2bin(bitor(a,b))
2. 微积分
定积分
%% quad函数求积分 单变量数值积分求解
syms x; % 自变量
f=inline('1./(sin(x)+exp(-x.^2))') %内联函数
y=quad(f,0,1.1) %积分求解
y1=quad(@myfun1,0,1.1) %函数句柄
y2=quad(@myfun1,0,1.1,1.e-10) %精度
%% quadl精度更高,速度更快
syms x;
f=inline('1./(sin(x)+exp(-x.^2))','x');
y=quadl(f,0,1.1)
y1=quadl(f,0,1.1,1.e-20)
二重定积分
syms x;
f=inline('x*cos(y)+y*sin(x)','x','y');
y=dblquad(f,pi,2*pi,0,pi)
y1=dblquad(@integrnd,pi,2*pi,0,pi)
y2=dblquad(@(x,y) x*cos(y)+y*sin(x),pi,2*pi,0,pi)
三重定积分
f=inline('z*cos(x)+y*sin(x)','x','y','z');
q=triplequad(f,0,pi,0,1,-1,1)
q1=triplequad(@(x,y,z) (y*sin(x)+z*cos(x)),0,pi,0,1,-1,1)
q2=triplequad(@(x,y,z) (y*sin(x)+z*cos(x)),0,pi,0,1,-1,1,1.e-10)
q3=triplequad(@(x,y,z) (y*sin(x)+z*cos(x)),0,pi,0,1,-1,1,1.e-10,@quad)
微分方程的通解
f1=dsolve('Dy-y=sin(x)') %默认情况下以t为自变量求解 求出的C2为积分常数
f2=dsolve('Dy-y=sin(x)','x') % 以x为自变量求解
微分方程的特解
dsolve('Dy=a*y','y(0)=b') %求微分方程的特解
微分方程组
z=dsolve('Dx=y','Dy=-x') % 默认t为自变量
z.x
z.y
常微分方程组的数值解
options=odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]); %设置参数
[t,y]=ode45(@rigid,[0 12],[0 1 1],options);
% 时间范围0到12,rigid是方程组,变量的初始值是 0 1 1
figure;
plot(t,y(:,1),'-',t,y(:,2),'--',t,y(:,3),':');
xlabel('Time');
legend('y1','y2','y3');
一元函数的最小值
[x,fval]=fminbnd(@cos,1,5) %函数句柄
多元函数的最小值
f=@(x)2*(x(2)-x(1)^2)^2+(2-x(1))^2;
[x,fval]=fminsearch(f,[-6.7 8]) %指定一个起始点 在某点附近寻找
一元函数的零点
f=@(x)sin(x)*cos(x);
figure;
fplot(f,[-5,5]);
xlabel('x');
ylabel('f(x)');
grid on;
x1=fzero(f,[-4,-2])
x3=fzero(f,-2)
[x4,fval]=fzero(f,[-3,-1])
版权声明:本文为qq_40002420原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。