您的位置:首页 > 编程语言 > MATLAB

matlab整理

2015-08-05 10:23 519 查看
                      matlab矩阵应用

clear

%建立矩阵的两种方式

A1 = [1 2 3 4 5; 6 7 8 9 10];

A2 = [

        1 2 3 4 5

        6 7 8 9 10

      ];

%一种是换行用引号,一种是自然写法

clear

A = [5 4 3 2 1; 6 7 8 9 10;1 2 3 4 5;24 24 24 24 24;25 25 25 25 25];

B = [5 4 3 2 1; 6 7 8 9 10;1 2 3 4 5;24 24 24 24 24;25 25 25 25 25];

A_sqare = [1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20;21 22 23 24 25];

k = 5;

X1 = A';   %A取转置

X2 = A + B; %求A和B矩阵的和

X3 = A - B; %求A和B矩阵的差

X4 = k * A; %数K乘以A矩阵

X5 = det(A_sqare); %求矩阵A的行列式(注A_sqare必须为方阵)

X6 = rank(A); %求矩阵A的秩

X7 = inv(A_sqare); %求矩阵A的逆(注A_sqare必须为方阵)

X8 = B / A; X8 = B * inv(A_sqare);  %A右除B = B右乘A的逆

X9 = B / A; X9 = inv(A_sqare) * B;  %A左除B = B左乘A的逆

A.*B    % .* 是A的每个元素和B相乘,非矩阵相乘,同理  ./ .^

A(2,:)   %  取A矩阵的第2行 然后 A(2,:) = [5 5 5 5 5]就对该行进行赋值

A(:,2)   %  取A矩阵的第2列 然后 A(:,2) = [5 5 5 5 5]就对该列进行赋值

A(2:1:4,3:1:4)  %取A矩阵中的一块,其语法为A(起始行:步长:终止行,起始列:步长:终止列)

zeros(5)   %生成n阶零矩阵

eye(5)     %生成n阶单位矩阵

eig(A)     %矩阵A的特征值

[X,D] = eig(A)   %矩阵A的  特征向量矩阵X  特征值组成的对角阵

A([1,2],:)   %1,2行互换

A(:,[2,3])   %1,2列互换

A(2,:) = 5 * A(2,:)  %第2行乘以5,列上的操作以此类推

K = [A B;B A]     %由几个小矩阵合成一个大矩阵

orth(A)      %非奇异矩阵正交化

a1 = A(2,:);

a2 = A(3,:);

a1*a2'       %两个向量内积

rref(A)     %A的极大无关向量组

                     matlab画图应用

%while循环

clear

sum = 0;k = 1;

while  k<101

  sum = sum+k;

  k = k + 1; 

end

sum

%for循环

clear

sum = 0;n = 1;

for n = 1:100

    sum = n + sum;

end

sum

%plot绘图

x = -10:0.1:10;

y = 3*x.^4+x.^2-1;

figure            %开启新绘图页面

plot(x,y)

%fplot绘图

clear

figure

fplot(@f1, [-10 10])     %调用f1.m里面的那个function

%ezplot绘图

clear

syms x

figure

y = 3*x^4 + x^2 - 1;

ezplot(y)

%螺旋线绘图  题目:x = cost , y = sint , z = t t属于[0,6pi]

clear

t = 0:0.1:6*pi;

x = cos(t);

y = sin(t);

z = t;

figure

plot3(x,y,z)

%空间曲线绘图  题目: z = sqrt(1 - x^2 - y^2) , (x - 1/2)^2 + y^2 = (1/2)^2

clear

t = 0:0.1:6;

x = 0.5*cos(t)+0.5;

y = 0.5*sin(t);

z = sqrt(1-x.^2-y.^2);

figure

plot3(x,y,z)

%二次曲面绘图  题目: x^2 + y^2 = z

clear

s = -10:1:10;

t = -10:1:10;

[x,y] = meshgrid(s,t);

z = x.^2 + y.^2;

figure

mesh(x,y,z);

%旋转曲面绘图  题目: y = 1/x  围绕y轴旋转

clear

s = -10:0.1:10;

t = -10:0.1:10;

[x,y] = meshgrid(s,t);

r = 1./x;

[x,y,z] = cylinder(r);

figure

mesh(x,y,z)

%输入数

clear

K = input('请输入数');    

                      matlab解方程应用

%常微分方程求解     详细参考PPT(7)

clear

y1 = dsolve('Dy=8-3*y','y(0)=2')

y2 = dsolve('D2y=2*x*Dy/(1+x^2)','y(0)=1,Dy(0)=3')

%微分方程组求解

clear

[X,Y] = dsolve('2*Dx+4*x+Dy-y=exp(t),Dx+3*x+y=0','x(0)=1.5,y(0)=0')

%线性方程组全部解

clear

format rat

A=[1 1 3 -1;0 1 -1 1;1 1 2 2;1 -1 1 -1];

B=[-2;1;4;0];

X = A/B

%方程求解

clear

X = solve('x-exp(-x)=0','x')

%区间里方程求解

%x=0:0.1:10;

%X = solve('5*x^2*sin(x)-exp(-x)','x')

%求微分方程的特解并且做出函数曲线

y0 = [1,0];

[t,x] = ode45(@vdp,[0,30],y0);   %从vdp.m这个文件里面读函数

y = x(:,1);

dy=x(:,2);

figure

plot(t,y,t,dy);

%解微分方程

fun=inline('-2*y+2*x*x+2*x');

[x,y]=ode23(fun,[0,0.5],1)

                     matlab微积分应用

                     %函数求导

clear

syms x y;     %将x y设为变量

f = cos(x)^3-cos(3*x);    %需要求导的式子

dy = diff(f,x);       %用diff 函数进行求导

%函数求极限

clear

syms x

f = x*log(1+x)/sin(x*x)

limit(f,'x',0,'left')    %语法为  limit(求极限的式子,求极限的变量,需要逼近的数字,从左还是从右逼近)

%函数求积分

clear

syms x

f = sym('x*exp(x)/(1+x)^2');

int(f)       %语法为  int(求极限的式子,下限,上限)  如果不加上限下限,就是函数式。

int(f,0,1) 

pretty(f)    %以自然函数形式呈现

%例-求z = x^2 + y^2 , z = 1 , z =2 围成的曲面

clear

syms x y z

z = x^2+y^2;

f = z;

I = int( int( f, y, sqrt(1-x^2), sqrt(2-x^2) ), x, 1, sqrt(2) )

%级数求和

clear

syms n

f = (n+1)/n*2^n;

j = symsum(f, n, 1, inf)    %级数求和,下限为1,上限为无穷大

%泰勒展开

clear

syms x

f = cos(x)

taylor(f, 10, x, pi/3)    %语法为taylor(待展开函数,取前几项, 变量名, 展开中心)

%求傅里叶系数

clear

syms x n

f = x^3+x^2;

n = 5;

a0 = int(f,x,-pi,pi)/pi

a1 = int(f*cos(1*x),x,-pi,pi)/pi

a2 = int(f*cos(2*x),x,-pi,pi)/pi

a3 = int(f*cos(3*x),x,-pi,pi)/pi

a4 = int(f*cos(4*x),x,-pi,pi)/pi

a5 = int(f*cos(5*x),x,-pi,pi)/pi

b1 = int(f*sin(1*x),x,-pi,pi)/pi

b2 = int(f*sin(2*x),x,-pi,pi)/pi

b3 = int(f*sin(3*x),x,-pi,pi)/pi

b4 = int(f*sin(4*x),x,-pi,pi)/pi

b5 = int(f*sin(5*x),x,-pi,pi)/pi

%求山地等三维图,高线图

x=0:10:1500;  

y=0:10:900;   

[x1,y1]=meshgrid(x,y)  ;

z= xlsread('ZZchazhi111.xls','sheet1','A1:CM151');     %读入excel文件数据

Z=z';

figure;

mesh(x1,y1,Z)     

figure;

contourf(x1,y1,Z,3)

%生成excel

clear all  

%list x,y,z 

x = xlsread('shandibiao.xls','sheet1','A3:A37'); 

y = xlsread('shandibiao.xls','sheet1','B2:AZ2'); 

z = xlsread('shandibiao.xls','sheet1','B3:AZ37');

Z = z';  

%cha zhi. jian ge 10

xx = 0:10:900;

yy = 0:10:1500;

[XX, YY] = meshgrid(xx, yy);

ZZ = interp2(x, y, Z, XX, YY, 'cubic');  

 xlswrite('chazhi10de',ZZ)                             %生成excel

%cha zhi. jian ge 1 

xxx = 0:1:900; 

yyy = 0:1:1500; 

[XXX, YYY] = meshgrid(xxx, yyy); 

ZZZ = interp2(xx, yy, ZZ, XXX, YYY, 'cubic');

%

clc一种长方体的绘制方法

clear all

x1=zeros(1,10);

y1=zeros(1,10);

z1=zeros(1,10);

x2=linspace(0,50,10);

y2=linspace(0,50,10);

z2=linspace(0,14,10);

x3=50*ones(1,10);

y3=50*ones(1,10);

z3=14*ones(1,10);

figure

plot3(x2,y1,z1,'b',x1,y1,z2,'b',x1,y2,z1,'b',x2,y1,z3,'b',x1,y3,z2,'b',x3,y2,z1,'b',...

x1,y2,z3,'b',x2,y3,z1,'b',x3,y1,z2,'b',x3,y3,z2,'b',x3,y2,z3,'b',x2,y3,z3,'b')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MATLAB