胡良剑 matlab 数学实验常用指令整理

合集下载

matlab常用指令

matlab常用指令

matlab常用指令MATLAB是一款非常实用的科学计算软件,在使用过程中,一些常用的指令是非常必要的。

在本篇文章中,我们将会介绍MATLAB常用指令,以使你更加熟练掌握MATLAB的使用。

一、基本数学运算+ 加- 减* 乘/ 除^ 幂(指数)sqrt 平方根exp 取指数log 取自然对数log10 取以10为底的对数sin 正弦cos 余弦tan 正切asin 反正弦acos 反余弦atan 反正切abs 绝对值rem 模运算fix 向零取整floor 向负无穷取整ceil 向正无穷取整round 四舍五入mod 取摸余数二、变量与矩阵1、赋值:通过等号将数值赋给变量,如:a=3;b=2.1;c=2+3i;2、数列:建立一个等差数组,例如:d=1:10; %1到10的等差数列e=linspace(0,2*pi,100); %0到2*pi之间的100个等间距点 a=[1 2 3;4 5 6;7 8 9];b=zeros(2,3);c=ones(3,2);d=rand(3,3);e=eye(4);4、矩阵元素操作:通过下标访问矩阵中的元素,例如:a(1,2) %输出a矩阵第一行第二列的元素b(2,3)=7 %将b矩阵第二行第三列的元素赋为75、矩阵运算:矩阵加减乘除,如:a+b %对应元素相加a-b %对应元素相减a*b %矩阵乘法a/b %矩阵除法a' %矩阵转置6、矩阵函数:除了使用基本操作外,还能使用各种矩阵相关函数完成矩阵计算,例如:inv(a) %矩阵求逆det(a) %矩阵求行列式trace(a) %矩阵求迹eig(a) %求特征值rank(a) %矩阵的秩size(a) %返回矩阵的大小max(a) %求矩阵元素最大值min(a) %求矩阵元素最小值sum(a) %求矩阵元素的和prod(a) %求矩阵所有元素的乘积mean(a) %求矩阵元素的平均值三、绘图1、二维绘图:绘制二维函数的曲线、散点图等,例如:x=linspace(-3,3,100); %生成-3到3之间的100个等间距点y=sin(x);plot(x,y); %绘制正弦函数曲线plot(x,y,'r--'); %绘制红色的正弦函数曲线,形状为虚线xlabel('x values');ylabel('y values');title('sine function');grid on;四、数据处理1、数据导入:在MATLAB中,可以通过各种方式将数据导入,如:a=load('filename.txt'); %从文件中载入数据b=xlsread('filename.xls'); %从Excel文件中载入数据五、编程1、条件语句:通过条件语句实现程序的分支结构,例如:if(a<0)disp('a is negative');elseif(a==0)disp('a is zero');elsedisp('a is positive');endfor i=1:10disp(i);end3、函数:在MATLAB中,可以自定义函数,函数调用格式为:function [out1,out2,...]=function_name(in1,in2,...)%函数说明%计算过程end4、脚本:在MATLAB中,脚本是一些命令或函数的集合,可以将脚本保存到文件中执行,例如:%脚本说明a=1;b=2;c=a+b;disp(c);以上便是MATLAB一些常用指令的详细介绍。

MATLAB常用指令(全)(print)

MATLAB常用指令(全)(print)

persistent 定义永久变量 script MATLAB 命令文件 3.4 宗量处理(Augument handling) inputname 实际调用变量名 nargchk 输入变量个数检查 nargin 函数输入宗量的个数 nargout 函数输出宗量的个数 nargoutchk 输出变量个数检查 varagin 输入宗量 varagout 输出宗量 3.5 信息显示(Message display) disp 显示矩阵和文字内容 display 显示矩阵和文字内容的重载函数 error 显示错误信息 fprintf 把格式化数据写到文件或屏幕 lasterr 最后一个错误信息 lastwarn 最后一个警告信息 sprintf 按格式把数字转换为串 warning 显示警告信息 3.6 交互式输入(Interactive input) input 提示键盘输入
singular values) condeig 矩阵各特征值的条件数 eig 矩阵特征值和特征向量 eigs 多个特征值 gsvd 归一化奇异值分解 hess Hessenberg 矩阵 poly 特征多项式
ispc MATLAB 为 PC(Windows)版本则为 ( ),{ },. 下标赋值
helpbrowser 超文本文档帮助信息

( ),{ },. 下标标识
helpdesk 超文本文档帮助信息
isunix MATLAB 为 Unix 版本则为真
subsindex 下标标识
helpwin 打开在线帮助窗
cplxpair 复数阵成共轭对形式排列 imag 复数虚部 isreal 若是实数矩阵则为真 real 复数实部 unwrap 相位角 360°线调整 5.4 圆整和求余函数(Rounding and

胡良剑 matlab课后习题整理

胡良剑 matlab课后习题整理

(一)P20.T1(1)指令行:[1 2;3 4]+10-2i(3) 指令行:[1 2;3 4].\[20 10;9 2] (5) 指令行:exp([1 2;3 4])(7) 指令行:prod([1 2;3 4])(9) 指令行:abs([1 2;3 4]-pi)(11) 指令行:find([10 20;30 40]>=[40,30;20,10]) (13) 指令行:all([1 2;3 4]>1)(15) 指令行:linspace(3,4,5)P20.T2(1) 指令行:clear;a=1,b=num2str(a),c=a>0,a==b,a==c,b==c(2) 指令行:clear;fun='abs(x)',x=-2,eval(fun),double(fun)P20.T3指令行:T='log(r)/(n*log(1+0.01*p))';r=2;p=0.5;n=12;eval(T)(二)P40.T2指令行:clear;s=0;n=0;s=s+log(1+n); while s<=100n=n+1;s=s+log(1+n); m=n;endm结果:m =37P40.T3指令行:clear; F(1)=1;F(2)=1;k=2;x=0; e=1e-8; a=(1+sqrt(5))/2;while abs(x-a)>ek=k+1;F(k)=F(k-1)+F(k-2);x=F(k)/F(k-1);enda,x,kP40.T5指令行:clear;x=0:24;y=[15 14 14 14 14 1516 18 20 22 23 2528 31 32 31 29 2725 24 22 20 18 17 16];plot(x,y);P40.T6(1)指令行:x=-2:0.1:2y=x.^2.*sin(x.^2.-x-2);plot(x,y,':ro');hold on;fplot(inline('x^2*sin(x^2-x-2)'),[-2,2 ]);hold off;(2)指令行:xa=-3:3;ya=-3:3;[x,y]=meshgrid(xa,ya); z=x.^2+y.^2;mesh(x,y,z)(5) 指令行:clear;close;t=0:0.1:2*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z);(7)指令行:x=0:0.1:2*pi;subplot(1,3,1);y1=sin(x);plot(x,y1);subplot(1,3,2);y2=sin(x).*sin(10*x);plot(x,y2);subplot(1,3,3);y3=-sin(x);plot(x,y3);P41.T7指令行:x=-2:0.05:2;y=1.1*(x>1.1)+x.*(x<=1.1).*(x>=-1.1)-1 .1*(x<-1.1);plot(x,y)(三)P59 T2指令行: A=[4 1 -1;3 2 -6;1 -5 3];B=[9;-2;1];A\B;[rank(a),rank([a,b])]由于方程有3个未知数,且)()(ArAr==3,所以方程解唯一。

matlab常用指令

matlab常用指令

matlab常用指令1. **基本数学运算**:+ `+`:加+ `-`:减+ `*`:乘+ `/`:除+ `^`:次方2. **矩阵和向量操作**:+ `eye(n)`:创建 n×n 单位矩阵+ `ones(n)`:创建 n×n 全 1 矩阵+ `zeros(n)`:创建 n×n 全 0 矩阵+ `A * B`:矩阵乘法+ `A\B`:矩阵求逆+ `size(A)`:获取矩阵 A 的大小+ `length(v)`:获取向量 v 的长度3. **绘图指令**:+ `plot(x, y)`:绘制 x 对 y 的曲线+ `subplot(m, n, p)`:创建 m×n 子图,并选择第 p 个子图 + `title('')`:设置图形标题+ `xlabel('')`:设置 x 轴标签+ `ylabel('')`:设置 y 轴标签+ `legend('')`:添加图例4. **数据分析**:+ `mean(x)`:计算向量 x 的平均值+ `std(x)`:计算向量 x 的标准差+ `sort(x)`:对向量 x 进行排序+ `max(x)`:找出向量 x 中的最大值+ `min(x)`:找出向量 x 中的最小值5. **文件操作**:+ `load('file.mat')`:加载 MAT 文件+ `save('file.mat', A)`:将矩阵 A 保存到 MAT 文件+ `fopen('file.txt', 'r')`:以只读方式打开文本文件+ `fscanf(fid, '%f', [n, m])`:从文件中读取数据并存储在矩阵中这只是 MATLAB 中一些常用指令的一小部分,MATLAB 提供了广泛的功能和指令,可以满足各种数学计算、数据分析和可视化需求。

Matlab常用指令总结

Matlab常用指令总结

format long显示更多位数format short显示少位数format hex将数字显示为十六进制浮点数,(3fb999999999999a,a-f代表十六进制数,前三字符为)double()将数字转化为双精度浮点数ezplot(f,0,4)绘制f函数[0,4]图像plot(x,y)绘制点或者连线zeros(n,1)产生n维0向量fibonacci(n)产生N个斐波那契数求解矩阵sum(A)对每一列的矩阵元素求和a’为将矩阵A转置sum(diag(A))矩阵A主对角元素之和flipud(A)将A翻过来(上下)det(A)求A行列式的解inv(A)求A的逆矩阵norm(A)矩阵范数eig(A)特征值svd(A)奇异值a=A(:,[1 3 2 4]) 交换矩阵二、三列AX=B可以为X=A\BxA=B可以为X=B/Anorm(x,1)计算x的一阶范数即所有数的和norm(x,2)方均根norm(x,inf)取最大值插值v=polyinterp(x,y,u)(基于拉格朗日)可以计算xy组成的点阵插值结果,u为输出v对应的取得x 的值u=[,]完整次数插值symx=sym(‘x’)创建符号变量symx=polyinterp(x,y,symx)利用符号变量求解pretty(p)让p变得规整simplify(p)化简pv=piecelin(x,y,u)线性分段插值v=pchip(x,y,u)v=pchiptx(x,y,u)为分段三次埃米特插值及其简化版v=spline(x,y,u)v=splinetx(x,y,u)为三次样条插值及其简化版interpgui(x,y)可以绘制上述四种插值图像,直观方程求根【M=2a=1k=0;while b-a>epsx=(a+b)/2;if x^2 > Mb=xelsea=xendk=k+1;end】牛顿法,求一次导法k=0;x=10;/初值xprev=12;/初值的初值while abs(x-xprev)>eps*abs(x)xprev=x;x=0.5*(x+2/x);/x-f(x)/ f(x)的导数。

(完整版)MATLAB数学实验第二版答案(胡良剑)

(完整版)MATLAB数学实验第二版答案(胡良剑)

数学实验答案Chapter 1Page20,ex1(5) 等于[exp(1),exp(2);exp(3),exp(4)](7) 3=1*3, 8=2*4(8) a为各列最小值,b为最小值所在的行号(10) 1>=4,false, 2>=3,false, 3>=2, ture, 4>=1,ture(11) 答案表明:编址第2元素满足不等式(30>=20)和编址第4元素满足不等式(40>=10)(12) 答案表明:编址第2行第1列元素满足不等式(30>=20)和编址第2行第2列元素满足不等式(40>=10)Page20, ex2(1)a, b, c的值尽管都是1,但数据类型分别为数值,字符,逻辑,注意a与c相等,但他们不等于b(2)double(fun)输出的分别是字符a,b,s,(,x,)的ASCII码Page20,ex3>> r=2;p=0.5;n=12;>> T=log(r)/n/log(1+0.01*p)Page20,ex4>> x=-2:0.05:2;f=x.^4-2.^x;>> [fmin,min_index]=min(f)最小值最小值点编址>> x(min_index)ans =0.6500 最小值点>> [f1,x1_index]=min(abs(f)) 求近似根--绝对值最小的点f1 =0.0328x1_index =24>> x(x1_index)ans =-0.8500>> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点>> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点f2 =0.0630x2_index =65>> x(x2_index)ans =1.2500>> z=magic(10)z =92 99 1 8 15 67 74 51 58 4098 80 7 14 16 73 55 57 64 414 81 88 20 22 54 56 63 70 4785 87 19 21 3 60 62 69 71 2886 93 25 2 9 61 68 75 52 3417 24 76 83 90 42 49 26 33 6523 5 82 89 91 48 30 32 39 6679 6 13 95 97 29 31 38 45 7210 12 94 96 78 35 37 44 46 5311 18 100 77 84 36 43 50 27 59>> sum(z)>> sum(diag(z))>> z(:,2)/sqrt(3)>> z(8,:)=z(8,:)+z(3,:)Chapter 2Page 45 ex1先在编辑器窗口写下列M函数,保存为eg2_1.m function [xbar,s]=ex2_1(x)n=length(x);xbar=sum(x)/n;s=sqrt((sum(x.^2)-n*xbar^2)/(n-1));例如>>x=[81 70 65 51 76 66 90 87 61 77];>>[xbar,s]=ex2_1(x)Page 45 ex2s=log(1);n=0;while s<=100n=n+1;s=s+log(1+n);endm=nPage 40 ex3clear;F(1)=1;F(2)=1;k=2;x=0;e=1e-8; a=(1+sqrt(5))/2;while abs(x-a)>ek=k+1;F(k)=F(k-1)+F(k-2); x=F(k)/F(k-1);enda,x,k计算至k=21可满足精度clear;tic;s=0;for i=1:1000000s=s+sqrt(3)/2^i;ends,toctic;s=0;i=1;while i<=1000000s=s+sqrt(3)/2^i;i=i+1;ends,toctic;s=0;i=1:1000000;s=sqrt(3)*sum(1./2.^i);s,tocPage 45 ex5t=0:24;c=[15 14 14 14 14 15 16 18 20 22 23 25 28 ...31 32 31 29 27 25 24 22 20 18 17 16];plot(t,c)Page 45 ex6(1)x=-2:0.1:2;y=x.^2.*sin(x.^2-x-2);plot(x,y)y=inline('x^2*sin(x^2-x-2)');fplot(y,[-2 2]) (2)参数方法t=linspace(0,2*pi,100);x=2*cos(t);y=3*sin(t); plot(x,y)(3)x=-3:0.1:3;y=x;[x,y]=meshgrid(x,y);z=x.^2+y.^2;surf(x,y,z)(4)x=-3:0.1:3;y=-3:0.1:13;[x,y]=meshgrid(x,y);z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6;surf(x,y,z)(5)t=0:0.01:2*pi;x=sin(t);y=cos(t);z=cos(2*t);plot3(x,y,z)(6)theta=linspace(0,2*pi,50);fai=linspace(0,pi/2,20); [theta,fai]=meshgrid(theta,fai);x=2*sin(fai).*cos(theta);y=2*sin(fai).*sin(theta);z=2*cos(fai);surf(x,y,z)(7)x=linspace(0,pi,100);y1=sin(x);y2=sin(x).*sin(10*x);y3=-sin(x);plot(x,y1,x,y2,x,y3)page45, ex7x=-1.5:0.05:1.5;y=1.1*(x>1.1)+x.*(x<=1.1).*(x>=-1.1)-1.1*(x<-1.1);plot(x,y)page45,ex9clear;close;x=-2:0.1:2;y=x;[x,y]=meshgrid(x,y);a=0.5457;b=0.7575;p=a*exp(-0.75*y.^2-3.75*x.^2-1.5*x).*(x+y>1);p=p+b*exp(-y.^2-6*x.^2).*(x+y>-1).*(x+y<=1);p=p+a*exp(-0.75*y.^2-3.75*x.^2+1.5*x).*(x+y<=-1);mesh(x,y,p)page45, ex10lookfor lyapunovhelp lyap>> A=[1 2 3;4 5 6;7 8 0];C=[2 -5 -22;-5 -24 -56;-22 -56 -16];>> X=lyap(A,C)X =1.0000 -1.0000 -0.0000-1.0000 2.0000 1.0000-0.0000 1.0000 7.0000Chapter 3Page65 Ex1>> a=[1,2,3];b=[2,4,3];a./b,a.\b,a/b,a\bans =0.5000 0.5000 1.0000ans =2 2 1ans =0.6552 一元方程组x[2,4,3]=[1,2,3]的近似解ans =0 0 00 0 00.6667 1.3333 1.0000矩阵方程[1,2,3][x11,x12,x13;x21,x22,x23;x31,x32,x33]=[2,4,3]的特解Page65 Ex 2(1)>> A=[4 1 -1;3 2 -6;1 -5 3];b=[9;-2;1];>> rank(A), rank([A,b]) [A,b]为增广矩阵ans =3ans =3 可见方程组唯一解>> x=A\bx =2.38301.48942.0213(2)>> A=[4 -3 3;3 2 -6;1 -5 3];b=[-1;-2;1];>> rank(A), rank([A,b])ans =3ans =3 可见方程组唯一解>> x=A\bx =-0.4706-0.2941(3)>> A=[4 1;3 2;1 -5];b=[1;1;1];>> rank(A), rank([A,b])ans =2ans =3 可见方程组无解>> x=A\bx =0.3311-0.1219 最小二乘近似解(4)>> a=[2,1,-1,1;1,2,1,-1;1,1,2,1];b=[1 2 3]';%注意b的写法>> rank(a),rank([a,b])ans =3ans =3 rank(a)==rank([a,b])<4说明有无穷多解>> a\bans =110 一个特解Page65 Ex3>> a=[2,1,-1,1;1,2,1,-1;1,1,2,1];b=[1,2,3]';>> x=null(a),x0=a\bx =-0.62550.6255-0.20850.4170x0 =11通解kx+x0Page65 Ex 4>> x0=[0.2 0.8]';a=[0.99 0.05;0.01 0.95];>> x1=a*x, x2=a^2*x, x10=a^10*x>> x=x0;for i=1:1000,x=a*x;end,xx =0.83330.1667>> x0=[0.8 0.2]';>> x=x0;for i=1:1000,x=a*x;end,xx =0.83330.1667>> [v,e]=eig(a)v =0.9806 -0.70710.1961 0.7071e =1.0000 00 0.9400>> v(:,1)./xans =1.17671.1767 成比例,说明x是最大特征值对应的特征向量Page65 Ex5用到公式(3.11)(3.12)>> B=[6,2,1;2.25,1,0.2;3,0.2,1.8];x=[25 5 20]'; >> C=B/diag(x)C =0.2400 0.4000 0.05000.0900 0.2000 0.01000.1200 0.0400 0.0900>> A=eye(3,3)-CA =0.7600 -0.4000 -0.0500-0.0900 0.8000 -0.0100-0.1200 -0.0400 0.9100>> D=[17 17 17]';x=A\Dx =37.569625.786224.7690Page65 Ex 6(1)>> a=[4 1 -1;3 2 -6;1 -5 3];det(a),inv(a),[v,d]=eig(a) ans =-94ans =0.2553 -0.0213 0.04260.1596 -0.1383 -0.22340.1809 -0.2234 -0.0532v =0.0185 -0.9009 -0.3066-0.7693 -0.1240 -0.7248-0.6386 -0.4158 0.6170d =-3.0527 0 00 3.6760 00 0 8.3766(2)>> a=[1 1 -1;0 2 -1;-1 2 0];det(a),inv(a),[v,d]=eig(a) ans =1ans =2.0000 -2.0000 1.00001.0000 -1.0000 1.00002.0000 -3.0000 2.0000v =-0.5773 0.5774 + 0.0000i 0.5774 - 0.0000i-0.5773 0.5774 0.5774-0.5774 0.5773 - 0.0000i 0.5773 + 0.0000id =1.0000 0 00 1.0000 + 0.0000i 00 0 1.0000 - 0.0000i(3)>> A=[5 7 6 5;7 10 8 7;6 8 10 9;5 7 9 10]A =5 76 57 10 8 76 8 10 95 7 9 10>> det(A),inv(A), [v,d]=eig(A)ans =1ans =68.0000 -41.0000 -17.0000 10.0000-41.0000 25.0000 10.0000 -6.0000-17.0000 10.0000 5.0000 -3.000010.0000 -6.0000 -3.0000 2.0000v =0.8304 0.0933 0.3963 0.3803-0.5016 -0.3017 0.6149 0.5286-0.2086 0.7603 -0.2716 0.55200.1237 -0.5676 -0.6254 0.5209d =0.0102 0 0 00 0.8431 0 00 0 3.8581 00 0 0 30.2887(4)(以n=5为例)方法一(三个for)n=5;for i=1:n, a(i,i)=5;endfor i=1:(n-1),a(i,i+1)=6;endfor i=1:(n-1),a(i+1,i)=1;enda方法二(一个for)n=5;a=zeros(n,n);a(1,1:2)=[5 6];for i=2:(n-1),a(i,[i-1,i,i+1])=[1 5 6];enda(n,[n-1 n])=[1 5];a方法三(不用for)n=5;a=diag(5*ones(n,1));b=diag(6*ones(n-1,1));c=diag(ones(n-1,1));a=a+[zeros(n-1,1),b;zeros(1,n)]+[zeros(1,n);c,zeros(n-1,1)] 下列计算>> det(a)ans =665>> inv(a)ans =0.3173 -0.5865 1.0286 -1.6241 1.9489-0.0977 0.4887 -0.8571 1.3534 -1.62410.0286 -0.1429 0.5429 -0.8571 1.0286-0.0075 0.0376 -0.1429 0.4887 -0.58650.0015 -0.0075 0.0286 -0.0977 0.3173>> [v,d]=eig(a)v =-0.7843 -0.7843 -0.9237 0.9860 -0.92370.5546 -0.5546 -0.3771 -0.0000 0.3771-0.2614 -0.2614 0.0000 -0.1643 0.00000.0924 -0.0924 0.0628 -0.0000 -0.0628-0.0218 -0.0218 0.0257 0.0274 0.0257d =0.7574 0 0 0 00 9.2426 0 0 00 0 7.4495 0 00 0 0 5.0000 00 0 0 0 2.5505Page65 Ex 7(1)>> a=[4 1 -1;3 2 -6;1 -5 3];[v,d]=eig(a)v =0.0185 -0.9009 -0.3066-0.7693 -0.1240 -0.7248-0.6386 -0.4158 0.6170d =-3.0527 0 00 3.6760 00 0 8.3766>> det(v)ans =-0.9255 %v行列式正常, 特征向量线性相关,可对角化>> inv(v)*a*v 验算ans =-3.0527 0.0000 -0.00000.0000 3.6760 -0.0000-0.0000 -0.0000 8.3766>> [v2,d2]=jordan(a) 也可用jordanv2 =0.0798 0.0076 0.91270.1886 -0.3141 0.1256-0.1605 -0.2607 0.4213 特征向量不同d2 =8.3766 0 00 -3.0527 - 0.0000i 00 0 3.6760 + 0.0000i>> v2\a*v2ans =8.3766 0 0.00000.0000 -3.0527 0.00000.0000 0.0000 3.6760>> v(:,1)./v2(:,2) 对应相同特征值的特征向量成比例ans =2.44912.44912.4491(2)>> a=[1 1 -1;0 2 -1;-1 2 0];[v,d]=eig(a)v =-0.5773 0.5774 + 0.0000i 0.5774 - 0.0000i-0.5773 0.5774 0.5774-0.5774 0.5773 - 0.0000i 0.5773 + 0.0000id =1.0000 0 00 1.0000 + 0.0000i 00 0 1.0000 - 0.0000i>> det(v)ans =-5.0566e-028 -5.1918e-017i v的行列式接近0, 特征向量线性相关,不可对角化>> [v,d]=jordan(a)v =1 0 11 0 01 -1 0d =1 1 00 1 10 0 1 jordan标准形不是对角的,所以不可对角化(3)>> A=[5 7 6 5;7 10 8 7;6 8 10 9;5 7 9 10]A =5 76 57 10 8 76 8 10 95 7 9 10>> [v,d]=eig(A)v =0.8304 0.0933 0.3963 0.3803-0.5016 -0.3017 0.6149 0.5286-0.2086 0.7603 -0.2716 0.55200.1237 -0.5676 -0.6254 0.5209d =0.0102 0 0 00 0.8431 0 00 0 3.8581 00 0 0 30.2887>> inv(v)*A*vans =0.0102 0.0000 -0.0000 0.00000.0000 0.8431 -0.0000 -0.0000-0.0000 0.0000 3.8581 -0.0000-0.0000 -0.0000 0 30.2887本题用jordan不行, 原因未知(4)参考6(4)和7(1)Page65 Exercise 8只有(3)对称, 且特征值全部大于零, 所以是正定矩阵. Page65 Exercise 9(1)>> a=[4 -3 1 3;2 -1 3 5;1 -1 -1 -1;3 -2 3 4;7 -6 -7 0]>> rank(a)ans =3>> rank(a(1:3,:))ans =2>> rank(a([1 2 4],:)) 1,2,4行为最大无关组ans =3>> b=a([1 2 4],:)';c=a([3 5],:)';>> b\c 线性表示的系数ans =0.5000 5.0000-0.5000 1.00000 -5.0000Page65 Exercise 10>> a=[1 -2 2;-2 -2 4;2 4 -2]>> [v,d]=eig(a)v =0.3333 0.9339 -0.12930.6667 -0.3304 -0.6681-0.6667 0.1365 -0.7327d =-7.0000 0 00 2.0000 00 0 2.0000>> v'*vans =1.0000 0.0000 0.00000.0000 1.0000 00.0000 0 1.0000 v确实是正交矩阵Page65 Exercise 11设经过6个电阻的电流分别为i1, ..., i6. 列方程组如下20-2i1=a; 5-3i2=c; a-3i3=c; a-4i4=b; c-5i5=b; b-3i6=0;i1=i3+i4;i5=i2+i3;i6=i4+i5;计算如下>> A=[1 0 0 2 0 0 0 0 0;0 0 1 0 3 0 0 0 0;1 0 -1 0 0 -3 0 0 0; 1 -1 0 0 0 0 -4 0 0;0 -1 1 0 0 0 0 -5 0;0 1 0 0 0 0 0 0 -3; 0 0 0 1 0 -1 -1 0 0;0 0 0 0 -1 -1 0 1 0;0 0 0 0 0 0 -1 -1 1];>>b=[20 5 0 0 0 0 0 0 0]'; A\bans =13.34536.44018.54203.3274-1.18071.60111.72630.42042.1467Page65 Exercise 12>> A=[1 2 3;4 5 6;7 8 0];>> left=sum(eig(A)), right=sum(trace(A))left =6.0000right =6>> left=prod(eig(A)), right=det(A) 原题有错, (-1)^n应删去left =27.0000right =27>> fA=(A-p(1)*eye(3,3))*(A-p(2)*eye(3,3))*(A-p(3)*eye(3,3)) fA =1.0e-012 *0.0853 0.1421 0.02840.1421 0.1421 0-0.0568 -0.1137 0.1705>> norm(fA) f(A)范数接近0ans =2.9536e-013Chapter 4Page84 Exercise 1(1)roots([1 1 1])(2)roots([3 0 -4 0 2 -1])(3)p=zeros(1,24);p([1 17 18 22])=[5 -6 8 -5];roots(p)(4)p1=[2 3];p2=conv(p1, p1);p3=conv(p1, p2);p3(end)=p3(end)-4; %原p3最后一个分量-4roots(p3)Page84 Exercise 2fun=inline('x*log(sqrt(x^2-1)+x)-sqrt(x^2-1)-0.5*x');fzero(fun,2)Page84 Exercise 3fun=inline('x^4-2^x');fplot(fun,[-2 2]);grid on;fzero(fun,-1),fzero(fun,1),fminbnd(fun,0.5,1.5)Page84 Exercise 4fun=inline('x*sin(1/x)','x');fplot(fun, [-0.1 0.1]);x=zeros(1,10);for i=1:10, x(i)=fzero(fun,(i-0.5)*0.01);end;x=[x,-x]Page84 Exercise 5fun=inline('[9*x(1)^2+36*x(2)^2+4*x(3)^2-36;x(1)^2-2*x(2)^2-20*x(3);16*x(1)-x(1)^3-2*x(2)^ 2-16*x(3)^2]','x');[a,b,c]=fsolve(fun,[0 0 0])Page84 Exercise 6fun=@(x)[x(1)-0.7*sin(x(1))-0.2*cos(x(2)),x(2)-0.7*cos(x(1))+0.2*sin(x(2))];[a,b,c]=fsolve(fun,[0.5 0.5])Page84 Exercise 7clear; close; t=0:pi/100:2*pi;x1=2+sqrt(5)*cos(t); y1=3-2*x1+sqrt(5)*sin(t);x2=3+sqrt(2)*cos(t); y2=6*sin(t);plot(x1,y1,x2,y2); grid on; 作图发现4个解的大致位置,然后分别求解y1=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.5,2])y2=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[1.8,-2])y3=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[3.5,-5])y4=fsolve('[(x(1)-2)^2+(x(2)-3+2*x(1))^2-5,2*(x(1)-3)^2+(x(2)/3)^2-4]',[4,-4])Page84 Exercise 8(1)clear;fun=inline('x.^2.*sin(x.^2-x-2)');fplot(fun,[-2 2]);grid on; 作图观察x(1)=-2;x(3)=fminbnd(fun,-1,-0.5);x(5)=fminbnd(fun,1,2);fun2=inline('-x.^2.*sin(x.^2-x-2)');x(2)=fminbnd(fun2,-2,-1);x(4)=fminbnd(fun2,-0.5,0.5);x(6)=2feval(fun,x)答案: 以上x(1)(3)(5)是局部极小,x(2)(4)(6)是局部极大,从最后一句知道x(1)全局最小,x(2)最大。

MATLAB操作命令大全

MATLAB操作命令大全

MATLAB操作命令大全1.基本操作:- clear: 清除工作区中的所有变量。

- clc: 清除命令窗口的内容。

- close all: 关闭所有图形窗口。

- help function-name: 显示与函数相关的帮助文档。

- who: 显示当前工作区中的所有变量。

- save file-name: 保存当前工作区中的所有变量到指定的文件。

- load file-name: 从文件中加载变量到当前工作区。

2.变量操作:-=:赋值操作符,将右边的值赋给左边的变量。

-+:加法操作符。

--:减法操作符。

-*:乘法操作符。

-/:除法操作符。

-^:幂运算操作符。

- sqrt(x): 计算 x 的平方根。

- abs(x): 计算 x 的绝对值。

- max(x): 返回 x 中的最大值。

- min(x): 返回 x 中的最小值。

- sum(x): 计算 x 中所有元素的和。

3.数组操作:- zeros(m, n): 创建一个 m 行 n 列的全零数组。

- ones(m, n): 创建一个 m 行 n 列的全一数组。

- eye(n): 创建一个 n 行 n 列的单位矩阵。

- size(x): 返回 x 的维度。

- length(x): 返回 x 的长度。

- reshape(x, m, n): 将 x 重新排列为一个 m 行 n 列矩阵。

- transpose(x): 将 x 的行和列互换。

4.控制流程:- if-else: 条件语句,根据条件执行不同的代码块。

- for loop: 循环语句,执行指定次数的代码块。

- while loop: 循环语句,根据条件反复执行代码块。

- break: 在循环中使用,用来跳出当前循环。

- continue: 在循环中使用,用来跳过当前循环的剩余部分。

5.统计分析:- mean(x): 计算 x 的平均值。

- median(x): 计算 x 的中位数。

- std(x): 计算 x 的标准差。

matlab指令大全

matlab指令大全

分享我的分享当前分享返回分享首页»分享 matlab命令,应该很全了!来源:李家叶的日志matlab命令一、常用对象操作:除了一般windows窗口的常用功能键外。

1、!dir 可以查看当前工作目录的文件。

!dir& 可以在dos状态下查看。

2、who 可以查看当前工作空间变量名, whos 可以查看变量名细节。

3、功能键:功能键快捷键说明方向上键 Ctrl+P 返回前一行输入方向下键 Ctrl+N 返回下一行输入方向左键 Ctrl+B 光标向后移一个字符方向右键 Ctrl+F 光标向前移一个字符Ctrl+方向右键 Ctrl+R 光标向右移一个字符Ctrl+方向左键 Ctrl+L 光标向左移一个字符home Ctrl+A 光标移到行首End Ctrl+E 光标移到行尾Esc Ctrl+U 清除一行Del Ctrl+D 清除光标所在的字符Backspace Ctrl+H 删除光标前一个字符Ctrl+K 删除到行尾Ctrl+C 中断正在执行的命令4、clc可以命令窗口显示的内容,但并不清除工作空间。

二、函数及运算1、运算符:+:加,-:减, *:乘, /:除, \:左除 ^:幂,‘:复数的共轭转置,():制定运算顺序。

2、常用函数表:sin( ) 正弦(变量为弧度)Cot( ) 余切(变量为弧度)sind( ) 正弦(变量为度数)Cotd( ) 余切(变量为度数)asin( ) 反正弦(返回弧度)acot( ) 反余切(返回弧度)Asind( ) 反正弦(返回度数)acotd( ) 反余切(返回度数)cos( ) 余弦(变量为弧度)exp( ) 指数cosd( ) 余弦(变量为度数)log( ) 对数acos( ) 余正弦(返回弧度)log10( ) 以10为底对数acosd( ) 余正弦(返回度数)sqrt( ) 开方tan( ) 正切(变量为弧度)realsqrt( ) 返回非负根tand( ) 正切(变量为度数)abs( ) 取绝对值atan( ) 反正切(返回弧度)angle( ) 返回复数的相位角atand( ) 反正切(返回度数)mod(x,y) 返回x/y的余数sum( ) 向量元素求和3、其余函数可以用help elfun和help specfun命令获得。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章
1、多项式 P63 y=polyval (p, x) 求得多项式 p 在 x 处的值 y,x 可以是一个或多个点 p3=conv(p1,p2) 返回多项式 p1 和 p2 的乘积 [p3,r]=deconv(p1,p2) p3 返回多项式 p1 除以 p2 的商, r 返回余项 x=roots(p) 求得多项式 p 的所有复根. p=polyfit(x,y,k)用 k 次多项式拟合向量数据(x, y), 返回多项式的降幂系数 2、函数零点 P65 ( 1) 、x=fzero(Fun, x0) 一元函数求实根:返回一元 函数 Fun 的一个零点, 其 中 Fun 为函数 (三种形式) x0 为标量时, 返回函数在 x0 附近的零点; x0 为区间[a, b]时, 返回在[a,b]中的零点 (2) 、[x,f,h]=fsolve(Fun, x0), 方程(组)数值求解 P x: 返回一元或多元函数 Fun 在 x0 附近的一个零点,其中 x0 为迭代初值向量; f:返回 Fun 在 x 的函数值, 应该接近 0;
5、矩形区域重积分 P87 z=dblquad(Fun,a,b,c,d) 求得二元函数 Fun(x,y) 的重积分, a、b 为变量 x 的下、上限;c、d 为变量 x 的下、上限. z=triplequad(Fun,a,b,c,d,e,f) 求 得 三 元 函 数 un(x,y,z) 的 重 积分 , 格 式 类 似 dblquad。
第五章
1、数值差分 P84 n 维向量 x=(x1, x2, , xn) 的差分定义为 n-1 维向量 x = (x2-x1, x3-x2, , xnxn-1)。 diff(x) 如果 x 是向量,返回向量 x 的差分,如果 x 是矩阵,则按各列作差分。 diff(x, k) k 阶差分,即差分 k 次 例:x=[1 2 3 4 5]; diff(x), diff(x,2) A=[1 2;3 4; 5 6],diff(A), diff(A,2) 2、数值导数和梯度 P84 q=polyder(p) 求得由向量 p 表示的多项式导函数的向量表示 q. 例:p=[1 2 3 4];q=polyder(p) Fx=gradient(F,x) 返回向量 F 表示的一元函数沿 x 方向的导函数 F ’(x).其中 x 是与 F 同维数的向量. [Fx,Fy]=gradient(F,x,y) 返回矩阵 F 表示的二元函数的数值梯度 (F ’x,F’y), 当 F 为 m×n 矩阵时, x,y 分别为 n 维和 m 维的向量. 3、梯形积分法 z=trapz(x,y) 返回积分的近似值,其中 x 表示积分区间的离散化向量; y 是与 x 同维数的向量,表示被积函数 。 4、高精度数值积分 P86 quad(Fun,a, b) 自适应步长 Simpson 积分法求得 Fun 在区间[a, b]上的定积分 z=quadl(Fun,a,b) 高精度 Lobatto 积分法.格式同 quad. 注意:trapz,quad,quadl 均不能用于求解反常积分以及一些奇异积分。
h: 返回值如果大于 0,说明计算结果可靠,否则计算结果不可靠。 3、函数极值 P68 min(y) 返回向量 y 的最小值 max(y) 返回向量 y 的最大值 [x,f]=fminbnd(fun,a,b) x 返回一元函数 y=f(x)在区间[a,b]内的局部极小值点, f 返回局部极小值,fun 为函数句柄或匿名函数或 inline 函数。 [x,f]=fminsearch(fun,x0) x 返回多元函数 y=f(x)在初始值 x0 附近的局部极小值 点,f 返回局部极小值. x, x0 均为向量。 注意:在使用 fsolve 和 fminserrch 等指令时,多变量必须合写成一个向量变量, 如用 x(1),x(2) 4、最小二乘法 P69 c= lsqnonlin (Fun,c0) 使用迭代法搜索最优参数 c. 其中 Fun 是以参数 c(可以是向量)为自变量的函数, c0 为参数 c 的近似初值(与 c 同维向量), 表示误差向量 y-f(c,x)(x, y 为数据向量), 作为迭代初值。 c=lsqcurvefit(Fun2,c0, x, y) 从外部输入数据, 这里 Fun2 为两变量 c 和 x 的函数 f(c, x)。
第一章
1、数组表示方法 P9 a=[1,2,3;4,5,6;7,8,9] 或者 a=[1 2 3 456 7 8 9]; 2、等差数列构造一维数组 P9 b=0:3:10(0 3 6 9) b=0:10(0-10,增量默认为 1) b=linspace(0,10,4)(将区间[0,10]等分为 4-1=3 份) 3、数组的提取和拼接 P10 b([1,end]) 提取数组 b 的首尾元素 d=a(2,1:3) 提取 a 的第二行,1-3 列,可简写为 d=a(2,:) [s,t]=max(b) 》s=10 t=4,s 为最大值,t 为最大值的编址 4、数组运算 P12 数组加减 A+B,A-B 数组乘数组 A.*B 数组除法 左除 A.\B,右除 B./A 数与数组的混合运算 k+A,k-A,k*A,A*k,A.^k,k.^A,k./A 注意:点运算只有点乘、点乘方、点除三个,表示元素之间的运算。 左除 A.\B 是 B 除以 A 中对应元素,右除则反之 5、数学函数 P14 exp 指数函数 log 自然对数 ln log10 以 10 为底的对数
ห้องสมุดไป่ตู้
第七章
1、符号对象的定义 P117 s=sym(str) 将数值或字符串 str 转化为符号对象 s, 数值为有理表示; s= sym(num,’d’) 将数值表达式转化为符号表达式,数值用十进制表示; syms var1 var2 定义 var1, var2, 为符号变量 subs(s, old, new) 将符号表达式 s 中的符变量 old 用 new 代替 2、计算精度和数据类型转换 P118 digits(n) 将数值计算精度设为 n 位; x=vpa(s) 求 s 的数值结果 x=vpa(s,n) 采用 n 位计算精度求 s 的数值结果 double(s) 将符号对象转化为双精度数值 char(s) 将符号对象转化为字符串 数据类型转换图指令详解 P118 3、符号函数计算 P120 factor(expr) 对 expr 作因式分解 expand(expr) 将 expr 展开 collect(expr,v) 将 expr 按变量 v 合并同类项 simple(expr) 将 expr 化简 g=finverse(f,v) 求函数 f(v)的反函数 g(v) fg=compose(f, g) 求函数 f(v)和 g(v)的复合函数 f(g(v)) [n,d]=numden(expr) 分式通分,n 返回分子,d 返回分母 funtool 函数分析图形界面 4、极限和级数及微分 P122 limit(s,x,a) 返回符号表达式 s 当 x->a 时的极限 limit(s,x,a,’right’) 返回 s 当 x->a 时的右极限 limit(s,x,a,’left’) 返回 s 当 x->a 时的左极限 symsum(s,n,a,b) 返回符号表达式 s 表示的通项当自变量 n 由 a 到 b 的和 diff(s,x) 返回符号表达式 s 对 x 的导函数 diff(s,x,n) 返回 s 对 x 的 n 阶导函数。 taylor(s,n,a,x) 返回符号表达式 s 在 a 点 aylor 展开到 n-1 次式.自变量为 x taylortool Taylor 分析图形界面 jacobian(f,x) 返回向量函数 f 的 Jacobian 矩阵 5、积分 P124 int(s) 符号表达式 s 的不定积分.
第三章
1、特殊矩阵生成 P46 zeros(m,n) m 行 n 列的零矩阵; ones(m,n) m 行 n 列的元素全为 1 的阵;
eye(n) n 阶单位矩阵; rand(m,n) m 行 n 列[0,1]上均匀分布随机数矩阵 2、矩阵分析 P48 rank(A) 秩 det(A) 行列式; inv(A) 逆矩阵; null(A) Ax=0 的基础解系; 例:A=[1 2 3; 4 5 6; 7 8 9], rank(A), det(A), inv(A), null(A) 3、特征值与标准形 P49 eig(A) 方阵 A 的特征值 [V, D]=eig(A)返回方阵 A 的特征值和特征向量。 其中 D 为的特征值构成的对角阵, 每个特征值对应的 V 的列为属于该特征值的一个特征向量。 [V, J]=jordan(A) 返回 A 的相似变换矩阵和约当标准形 例:A=[1 2; 3 4]; t= eig(A), [V, D]=eig(A) 注意:矩阵是一个二维数组,它的加减数乘运算与数组运算是一致的,但有两点 需要注意:1、对于乘法、乘方和除法等三种运算,矩阵运算与数组运算符及含 义都不同。矩阵运算按线性变换定义,符号中无点;数组运算按对应元素运算定 义,使用点运算。2、数与矩阵加减、矩阵除法在数学上没有一一,MATLAB 中 定义了这两类运算,数与矩阵加减与数组相同,A\B 和 B/A 分别表示 AX=B 和 XA=B 的解。 4、判断一个矩阵是否可以相似对角化,求出其特征向量,若线性无关即可。
inline 内嵌函数 feval 函数求值 使用格式 fun=inline(‘expr’,arg1,arg2,……) fun=@(arg1,arg2,……)expr,这里 expr 为函数表达式,arg1,arg2 为自变量名字符 串。 如,计算 s
n
n 1
100
1
2
>>fname=inline(‘sum(1./(1:m).^2)’,’m’) >>feval(fname,100) 二、作图 1、曲线图 P31 plot(x,y) 以数据(x(i), y(i))为节点的折线图, 其中 x, y 为同长度的向量 fplot(‘fun’,[a,b]) 函数 fun 在区间[a,b] 上的函数图 plot3(x,y,z) 空间曲线图, 其中 x, y, z 为同长度的向量 图形导出: file→Save; Edit →Copy figure 折线图:plot([1 2 3 4],[2 1 8 3]) 曲线图: fplot(‘sin(x)’,[0,2*pi]) 曲线图: x=0:pi/50:2*pi; y=sin(x); plot(x,y) 2、曲面图 P33 [x,y]=meshgrid(xa,ya)当 xa, ya 分别为 m 维和 n 维行向量, 得到 x 和 y 均为 n 行 m 列矩阵。meshgrid 常用于生成 X-Y 平面上的网格数据。 mesh(x,y,z) 绘制网面图,是最基本的曲面图形命令,其中 x,y,z 是同阶矩阵,表示曲 面三维数据。 surf(x,y,z) 绘制曲面图,与 mesh 用法类似 contour(x,y,z) 绘制等高线图,与 mesh 用法类似。 contour3(x,y,z) 绘制三维等高线图,与 mesh 用法类似。 3、一些图例和说明 P34 title(‘字符串’) 图像标题说明; xlabel,ylabel,zlabel 坐标轴 x,y,z 说明; hold on/hold off 保留/释放现有图形 axis([a,b,c,d]) 确定坐标轴范围 a<x<b,c<y<d axis([a,b,c,d,e,f]) 定制 3 维坐标轴范围 figure\close 开\关一个新图形窗口 subplot(m,n,k) 将图形窗口分为 m*n 个子图,指向第 k 幅图 legend(str1,str2, ...) 图例
相关文档
最新文档