MATLAB实验矩阵代数

MATLAB实验矩阵代数
MATLAB实验矩阵代数

实验名称:矩阵代数

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

数学实验答案 Chapter 1 Page20,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.0328 x1_index = 24 >> x(x1_index) ans = -0.8500 >> x(x1_index)=[];f=x.^4-2.^x; 删去绝对值最小的点以求函数绝对值次小的点 >> [f2,x2_index]=min(abs(f)) 求另一近似根--函数绝对值次小的点 f2 = 0.0630 x2_index = 65 >> x(x2_index) ans = 1.2500

数学实验练习题(MATLAB)

注意:在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上). 第一次练习题 1.求解下列各题: 1)30sin lim x mx mx x ->- 2)(4)cos ,1000.0=x mx y e y 求 3)21/2 0mx e dx ?(求近似值,可以先用inline 定义被积函数,然后用quad 命令) 4)4 224x dx m x +? 5 0x =展开(最高次幂为8). 2.对矩阵21102041A m -?? ?= ? ?-?? ,分别求逆矩阵,特征值,特征向量,行列式,并求矩阵,P D (D 是对角矩阵),使得1A PDP -=。 3. 已知2 1(),()2f x e x μσ=--分别在下列条件下画出)(x f 的图形: (1)/600m σ=,μ分别为0,1,1-(在同一坐标系上作图); (2)0μ=,σ分别为1,2,4,/100m (在同一坐标系上作图). 4.画 (1)sin 020cos 02100x u t t y u t u t z m ??=≤≤?=?≤≤??=?

(2) sin()03,03z mxy x y =≤≤≤≤ (3)sin()(/100cos )02cos()(/100cos )02sin x t m u t y t m u u z u π π=+?≤≤?=+?≤≤?=? 的图(第4题只要写出程序). 5.对于方程50.10200 m x x --=,先画出左边的函数在合适的区间上的图形,借助于软件中的方程求根的命令求出所有的实根,找出函数的单调区间,结合高等数学的知识说明函数为什么在这些区间上是单调的,以及该方程确实只有你求出的这些实根。最后写出你做此题的体会. 第二次练习题 判断迭代收敛速度的程序 x0=1;stopc=1;eps=10^(-8);a=1;c=1;b=2*c;d=a;k=0; f=inline('(a*x+b)/(c*x+d)'); kmax=100; while stopc>eps&k

matlab矩阵操作汇总

matlab矩阵操作大全 1.1.1数值矩阵的生成 1.实数值矩阵输入 MATLAB的强大功能之一体现在能直接处理向量或矩阵。当然首要任务是输入待处理的向量或矩阵。 不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。所有元素处于一方括号([])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多 重的方括号。如: >> Time = [11 12 1 2 3 4 5 6 7 8 9 10] Time = 11 12 1 2 3 4 5 6 7 8 9 10 >> X_Data = [2.32 3.43 ; 4.37 5.98] X_Data = 2.43 3.43 4.37 5.98 >> vect_a = [1 2 3 4 5] vect_a = 12~ 3 4 5 >> Matrix_B = [1 2 3 ; >> 2 3 4 ; 3 4 5] Matrix_B = 1 2 3 2 3 4 3 4 5 >> Null_M = [ ] %生成一个空矩阵

2 .复数矩阵输入 复数矩阵有两种生成方式: 第一种方式 1/ 13

例1-1 >> a="2".7。b=13/25 >> C 二[1,2*a+i*b,b*sqrt(a) 5.4000 + 0.5200i 0.8544 5.3000 4.5000 第2种方式 例1-2 >> R=[1 2 3 。 4 5 6], M=[11 12 13 。 14 15 16] R = I 2 3 4 5 6 M = II 12 13 14 15 16 >> CN="R"+i*M CN = 1.0000 +11.0000i 2.0000 +12.0000i 3.0000 +13.0000i 4.0000 +14.0000i 5.0000 +15.0000i 6.0000 +16.0000i si n(pi/4),a+5*b,3.5+1] C= 1.0000 0.7071

matlab考试题及答案

%1、编制一个解数论问题的函数文件:取任意整数,若是偶数,则用2除,否则乘3加1,重复此过程,直到整数变为1。 function f=NO_1(X); Y(1)=X;k=1; while (X~=1) k=k+1; if (mod(X,2)==0) X=X/2; else X=3*X+1; end Y(k)=X; end plot(Y,'b.') end % 2、编制程序产生一个数组,满足:a1=1,a2=1,从第三个元素开始,每个元素等于前两个元素的和,直到数组的前后两个元素的比值比小于1e-4,并且以红色点线的形式画出这个数组。 clear; A(1)=1; A(2)=1; i=3; Z=1; while (abs(Z)>=1e-4) A(i)=A(i-1)+A(i-2); Z=A(i-1)/A(i); i=i+1; end plot (A,'r.') % 3、编写一个函数,能够产生分段函数。function y=test_3_1(X) if (X<=2) y=*X; elseif (X>6) y=; else y=调用分段函数,绘制曲线。 clear; i=1; for j=0::2; x(i)=j;y(i)=test_3_1(j)*test_3_1(j+2); i=i+1; end plot(x,y) % 4、在2pi周期内画正弦函数曲线,并加注坐标轴标识和标题,然后在3pi/4,pi,5pi/4处分别加入带箭头的说明性文本,最后加注图例。 clear; t = 0:pi/50:2*pi; n = length(t); y = sin(t); plot(t,y,'-bo','linewidth',1) xlabel('X');ylabel('Y'); title('正弦函数曲线'); text,, ' \leftarrow 3pi/4','FontSize',18); text,, ' \leftarrow 3pi/4','FontSize',18); text,,' \leftarrow 3pi/4','FontSize',18); hleg1 = legend('sin(x)'); % 5、A为任意一个n*m矩阵,写程序来计算A 中有多少个零元素,并输出个数。 A=input('输入一个矩阵 A = ') n=length(find(A==0)) % 6、A为任意一个向量,写程序找出A中的最小元素,并且输出这个最小元素。 A=input('输入一个向量 A = '); x=length(A); i=1; y=A(i); while (iA(i)) y=A(i); end end disp('最小元素是:') disp(y) % 7、某系统由四个典型环节构成,试根据四阶龙格—库塔公式,求输出量y的阶跃响应,取仿真时间Tf=10s, %步长h=。

MATLAB回归预测模型

MATLAB---回归预测模型 Matlab统计工具箱用命令regress实现多元线性回归,用的方法是最小二乘法,用法是:b=regress(Y,X) [b,bint,r,rint,stats]=regress(Y,X,alpha) Y,X为提供的X和Y数组,alpha为显着性水平(缺省时设定为0.05),b,bint为回归系数估计值和它们的置信区间,r,rint为残差(向量)及其置信区间,stats是用于检验回归模型的统计量,有四个数值,第一个是R2,第二个是F,第三个是与F对应的概率 p ,p <α拒绝 H0,回归模型成立,第四个是残差的方差 s2 。 残差及其置信区间可以用 rcoplot(r,rint)画图。 例1合金的强度y与其中的碳含量x有比较密切的关系,今从生产中收集了一批数据如下表 1。 先画出散点图如下: x=0.1:0.01:0.18; y=[42,41.5,45.0,45.5,45.0,47.5,49.0,55.0,50.0]; plot(x,y,'+') 可知 y 与 x 大致上为线性关系。 设回归模型为y =β 0+β 1 x

用regress 和rcoplot 编程如下: clc,clear x1=[0.1:0.01:0.18]'; y=[42,41.5,45.0,45.5,45.0,47.5,49.0,55.0,50.0]'; x=[ones(9,1),x1]; [b,bint,r,rint,stats]=regress(y,x); b,bint,stats,rcoplot(r,rint) 得到 b =27.4722 137.5000 bint =18.6851 36.2594 75.7755 199.2245 stats =0.7985 27.7469 0.0012 4.0883 即β 0=27.4722 β 1 =137.5000 β 的置信区间是[18.6851,36.2594], β 1 的置信区间是[75.7755,199.2245]; R2= 0.7985 , F = 27.7469 , p = 0.0012 , s2 =4.0883 。可知模型(41)成立。

矩阵在matlab中的基本命令

一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n 维的全1矩阵; (2) zeros()函数:产生全为0的矩阵;

(3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。 2.矩阵拆分

Matlab考试题库答案

填空题 1、标点符号; %—用来表示该行为注释行。 可以使命令行不显示运算结果, 2、x 为0 ~4pi ,步长为 的向量,使用命令 x=0:*pi:4*pi 创建。 3、输入矩阵A=[1323?57569 ] ,使用全下标方式用A(2,2)取出元素“-5 ”,使用单下标方式用A(5)取出元素“-5 ”。 4、符号表达式sin(2*a+t)+m 中独立的符号变量为 t 。 5、M 脚本文件和M 函数文件的主要区别是M 脚本文件没有函数定义和M 函数文件有函数定义_______。 6. 设x 是一维数组,x 的倒数第3个元素表示为x(_end-2_) 设y 为二维数组,要删除y 的第34行和48列,可使用命令y(34,:)=[] ; y(:,48)=[]; 7. 将变量x 以Ascii 文本格式存储到文件,应使用命令 save _x ; 8. 在while 表达式, 语句体, End 循环语句中,表达式的值 非零 时表示循环条件为真,语句体将被执行,否则跳出该循环语句; 9.要从键盘读入一个字符串并赋值给变量x ,且给出提示“Who is she ”,应使用命令x=input(‘Who is she’,’s’) ; 10.设A=(a ij )m?n 和B=(b ij )m?n 和C=(c ij )m?n 均为m*n 矩阵,且存在于WorkSpace 中,要产生矩阵D=(a ij ?c ij b ij c ij ?)m?n ,可用命令D=(A-C)/B.^C , 计算|(A ′B )?1| 可用命令det(inv(A’*B) 11. 在MATLAB 命令窗口中的“>>”标志为MATLAB 的 命令行 提示符,“│”标志为 输入 提示符。 12.已知A=[1 2 3;4 5 0;7 8 9];B=[1 0 3;1 5 0;0 1 2];写出下列各指令运行的结果。 A+B ; A.*B ; A==B ; ans= [2,2,6;5,10,0;7,9,11] ans= [1,0,9;4,25,0;0,8,18] ans= [1,0,1;0,1,1;0,0,0] 13.已知A 是矩阵,求A 的对角矩阵函数是 diag ; 求A 的下三角矩阵函数是 tril 。 的程序文件和Simulink 模型文件的扩展名分别是.m 、.mdl 最基本的绘图函数为plot() 16. A=[1,2,3;4,5,6]; A(:,[1,3])=[];A= [2;5] 17. fix= -1 , round= -2 . 18.已知A=[1 3;4 6];C=[A,eye(sizeA);A ,ones(sizeA)] 则C= [1 3 1 0;4 6 0 1;1 3 1 1;4 6 1 1]

浅析Matlab数学实验报告

数学实验报告 姓名: 班级: 学号: 第一次实验任务 过程: a=1+3i; b=2-i; 结果: a+b =3.0000 + 2.0000i a-b =-1.0000 + 4.0000i a*b = 5.0000 + 5.0000i a/b = -0.2000 + 1.4000i 过程: x=-4.5*pi/180; y=7.6*pi/180; 结果: sin(abs(x)+y)/sqrt(cos(abs(x+y))) =0.2098 心得:对于matlab 中的角度计算应转为弧度。 (1)过程: x=0:0.01:2*pi; y1=sin(x); y2=cos(x); y3=exp(x); y4=log(x); plot(x,y1,x,y2,x,y3,x,y4) plot(x,y1,x,y2,x,y3,x,y4) 结果: (2)过程:>> subplot(2,2,1) >> plot(x,y1) >> subplot(2,2,2) >> plot(x,y2) ./,,,,2,311b a b a b a b a i b i a ?-+-=+=计算、设有两个复数 6,7,5.4)

cos()sin(2=-=++y x y x y x ,其中、计算的图形。 下分别绘制)同一页面四个坐标系)同一坐标系下(、在( x y e y x y x y x ln ,,cos ,sin 213==== >> subplot(2,2,3) >> plot(x,y3) >> subplot(2.2.4) >> subplot(2,2,4) >> plot(x,y4) 结果: 心得:在matlab中,用subplot能够实现在同一页面输出多个坐标系的图像,应注意将它与hold on进行区别,后者为在同一坐标系中划出多条曲线。 5、随机生成一个3x3矩阵A及3x2矩阵B,计算(1)AB,(2)对B中每个元素平方后得到的矩阵C,(3)sinB,(4)A的行列式,(5)判断A是否可逆,若可逆,计算A的逆矩阵,(6)解矩阵方程AX=B,(7)矩阵A中第二行元素加1,其余元素不变,得到矩阵D,计算D。 过程:A=fix(rand(3,3).*10) ; B=fix(rand(3,3).*10);

南邮MATLAB数学实验答案(全)

第一次练习 教学要求:熟练掌握Matlab 软件的基本命令和操作,会作二维、三维几何图形,能够用Matlab 软件解决微积分、线性代数与解析几何中的计算问题。 补充命令 vpa(x,n) 显示x 的n 位有效数字,教材102页 fplot(‘f(x)’,[a,b]) 函数作图命令,画出f(x)在区间[a,b]上的图形 在下面的题目中m 为你的学号的后3位(1-9班)或4位(10班以上) 1.1 计算30sin lim x mx mx x →-与3 sin lim x mx mx x →∞- syms x limit((902*x-sin(902*x))/x^3) ans = 366935404/3 limit((902*x-sin(902*x))/x^3,inf) ans = 0 1.2 cos 1000 x mx y e =,求''y syms x diff(exp(x)*cos(902*x/1000),2) ans = (46599*cos((451*x)/500)*exp(x))/250000 - (451*sin((451*x)/500)*exp(x))/250 1.3 计算 22 11 00 x y e dxdy +?? dblquad(@(x,y) exp(x.^2+y.^2),0,1,0,1) ans = 2.1394 1.4 计算4 2 2 4x dx m x +? syms x int(x^4/(902^2+4*x^2)) ans = (91733851*atan(x/451))/4 - (203401*x)/4 + x^3/12 1.5 (10)cos ,x y e mx y =求 syms x diff(exp(x)*cos(902*x),10) ans = -356485076957717053044344387763*cos(902*x)*exp(x)-3952323024277642494822005884*sin(902*x)*exp(x) 1.6 0x =的泰勒展式(最高次幂为4).

Matlab界面、矩阵操作

科学计算与MATLAB语言

教学内容 第1讲介绍MATLAB概述与运算基础第2讲介绍MATLAB程序设计 第3讲MATLAB文件操作 第4讲绘图形功能 第5讲线形代数中的数值计算问题 第6讲数据处理方法与多项式 第7讲MATLAB符号计算 第8讲MATLAB的图形用户界面设计

第一讲MATLAB概述与运算基础MATLAB语言是一种广泛应用于工程计算及数值分析领域的新型高级语言,自1984年由美国MathWorks公司推向市场以来,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。

在欧美各高等院校,MATLAB已经成为线性代数、自动控制理论、数字信号处理、时间序列分析、动态系统仿真、图像处理等课程的基本教学工具,成为大学生、硕士生以及博士生必须掌握的基本技能。 MATLAB: 是英文MATrix LABorotory(矩阵实验室) 的缩写。

一. MATLAB特点:

1. 数值计算和符号计算功能 MATLAB的数值计算功能包括:矩阵运算、多项式和有 理分式运算、数据统计分析、数值积分、优化处理等。符 号计算将得到问题的解析解。 2.MATLAB语言 MATLAB除了命令行的交互式操作以外,还可以程序方式 工作。使用MATLAB可以很容易地实现C或FORTRAN语言的几乎全部功能,包括Windows图形用户界面的设计。 3.图形功能 MATLAB提供了两个层次的图形命令:一种是对图形句柄进行的低级图形命令,另一种是建立在低级图形命令之上的高级图形命令。利用MATLAB的高级图形命令可以轻而易举地绘制二维、三维乃至四维图形,并可进行图形和坐标的标识、视角和光照设计、色彩精细控制等等。

matlab 数学实验 迭代 _ 蛛网图(免积分)

数学实验—实验报告(免积分) 一、实验项目:Matlab实验三—迭代 二、实验目的和要求 a.熟悉MATLAB软件的用户环境,掌握其一般目的命令和MATLAB数组操作与 运算函数; b.掌握MATLAB软件的绘图命令,能够熟练应用循环和选择结构实现各种循环 选择功能; c.借助MATLAB软件的绘图功能,对函数的特性进行探讨,广泛联想,大胆猜 想,发现进而证实其中的规律。 三、实验内容 问题一:将方程53 x x x +-+=改写成各种等价的形式进行迭代 5210 观察迭代是否收敛,并给出解释。 问题二:迭代以下函数,分析其收敛性。 4 f(x)=x-a 使用线性连接图、蛛网图或费根鲍姆图对参数a进行讨论和观察,会得到什么结论? 问题一: (1)画图 x1=-6:0.01:6; x2=-3:0.01:3; x3=-1:0.01:1; x4=-0.8:0.01:-0.75; y1=x1.^5 +5*x1.^3-2*x1+1; y2=x2.^5 +5*x2.^3-2*x2+1; y3=x3.^5 +5*x3.^3-2*x3+1; y4=x4.^5 +5*x4.^3-2*x4+1; subplot(2,2,1),plot(x1,y1) ,title('图(1)') ,grid on, subplot(2,2,2),plot(x2,y2) ,title('图(2)'),grid on, subplot(2,2,3),plot(x3,y3) ,title('图(3)'),grid on, subplot(2,2,4),plot(x4,y4) ,title('图(4)') ,grid on,

matlab中的矩阵的基本运算命令

1.1 矩阵的表示 1.2 矩阵运算 1.2.14 特殊运算 1.矩阵对角线元素的抽取 函数diag 格式X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,当k=0时,v为X的主对角线;当k>0时,v为上方第k条对角线;当k<0时,v为下方第k条对角线。 X = diag(v) %以v为主对角线元素,其余元素为0构成X。 v = diag(X,k) %抽取X的第k条对角线元素构成向量v。k=0:抽取主对角线元素;k>0:抽取上方第k条对角线元素;k<0抽取下方第k条对角线元素。 v = diag(X) %抽取主对角线元素构成向量v。 2.上三角阵和下三角阵的抽取 函数tril %取下三角部分 格式L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L L = tril(X,k) %抽取X的第k条对角线的下三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。函数triu %取上三角部分 格式U = triu(X) %抽取X的主对角线的上三角部分构成矩阵U U = triu(X,k) %抽取X的第k条对角线的上三角部分;k=0为主对角线;k>0为主对角线以上;k<0为主对角线以下。3.矩阵的变维 矩阵的变维有两种方法,即用“:”和函数“reshape”,前者主要针对2个已知维数矩阵之间的变维操作;而后者是对于一个矩阵的操作。 (1)“:”变维 (2)Reshape函数变维 格式 B = reshape(A,m,n) %返回以矩阵A的元素构成的m×n矩阵B B = reshape(A,m,n,p,…) %将矩阵A变维为m×n×p×… B = reshape(A,[m n p…]) %同上 B = reshape(A,siz) %由siz决定变维的大小,元素个数与A中元素个数 相同。 (5)复制和平铺矩阵 函数repmat 格式 B = repmat(A,m,n) %将矩阵A复制m×n块,即B由m×n块A平铺而成。 B = repmat(A,[m n]) %与上面一致 B = repmat(A,[m n p…]) %B由m×n×p×…个A块平铺而成 repmat(A,m,n) %当A是一个数a时,该命令产生一个全由a组成的m×n矩阵。 1.3 矩阵分解 1.3.1 Cholesky分解 函数chol 格式R = chol(X) %如果X为n阶对称正定矩阵,则存在一个实的非奇异上三角阵R,满足R'*R = X;若X非正定,则产生错误信息。 [R,p] = chol(X) %不产生任何错误信息,若X为正定阵,则p=0,R与上相同;若X非正定,则p为正整数,R是有序的上三角阵。 1.3.2 LU分解

MATLAB数学实验报告

Matlab 数学实验报告

一、实验目的 通过以下四组实验,熟悉MATLAB的编程技巧,学会运用MATLAB的一些主要功能、命令,通过建立数学模型解决理论或实际问题。了解诸如分岔、混沌等概念、学会建立Malthu模型和Logistic 模型、懂得最小二乘法、线性规划等基本思想。 二、实验内容 2.1实验题目一 2.1.1实验问题 Feigenbaum曾对超越函数y=λsin(πx)(λ为非负实数)进行了分岔与混沌的研究,试进行迭代格式x k+1=λsin(πx k),做出相应的Feigenbaum图 2.1.2程序设计 clear;clf; axis([0,4,0,4]); hold on for r=0:0.3:3.9 x=[0.1]; for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.5) for i=101:150

plot(r,x(i),'k.'); end text(r-0.1,max(x(101:150))+0.05,['\it{r}=',num2str(r)]) end 加密迭代后 clear;clf; axis([0,4,0,4]); hold on for r=0:0.005:3.9 x=[0.1];

for i=2:150 x(i)=r*sin(3.14*x(i-1)); end pause(0.1) for i=101:150 plot(r,x(i),'k.'); end end 运行后得到Feigenbaum图

2.2实验题目二 2.2.1实验问题 某农夫有一个半径10米的圆形牛栏,长满了草。他要将一头牛拴在牛栏边界的桩栏上,但只让牛吃到一半草,问拴牛鼻子的绳子应为多长? 2.2.2问题分析 如图所示,E为圆ABD的圆心,AB为拴牛的绳子,圆ABD为草场,区域ABCD为牛能到达的区域。问题要求区域ABCD等于圆ABC 的一半,可以设BC等于x,只要求出∠a和∠b就能求出所求面积。先计算扇形ABCD的面积,2a÷π×πx2=2aπ2,再求AB的面积,用扇形ABE的面积减去三角形ABE的面积即可。

Matlab数学实验一2015(标准答案版)

Matlab数学实验一——matlab初体验 一、实验目的及意义 [1] 熟悉MATLAB软件的用户环境; [2] 了解MATLAB软件的一般目的命令; [3] 掌握MATLAB数组操作与运算函数; 通过该实验的学习,使学生能熟悉matlab的基础应用,初步应用MATLAB软件解决一些简单问题。 二、实验内容 1.认识matlab的界面和基本操作 2.了解matlab的数据输出方式(format) 3. MATLAB软件的数组(矩阵)操作及运算练习; 三、实验任务 根据实验内容和步骤,完成以下具体实验,要求写出实验报告(实验目的→问题→原理→算法与编程→计算结果或图形→心得体会) 完成如下题目,并按照实验报告格式和要求填写实验报告 1.在commandwindow中分别输入如下值,看它们的值等于多少,并用matlab的help中查询这些缺省预定义变量的含义,用中文写出它们的意义。 ijeps inf nan pi realmaxrealmin 2.分别输入一个分数、整数、小数等,(如:a=1/9),观察显示结果,并使用format函数控制数据的显示格式,如:分别输入format short、format long、format short e、format long g、format bank、format hex等,然后再在命令窗口中输入a,显示a的值的不同形式,并理解这些格式的含义。 3.测试函数clear、clc的含义及所带参数的含义(利用matlab的help功能)。 4. 写出在命令窗口中的计算步骤和运行结果。 (1)计算 1.22 10 (ln log) 81 e ππ +- ; >>(log(pi)+log(pi)/log(10)-exp(1.2))^2/81 >>ans = 0.0348 (2) >> x=2;y=4; >> z=x^2+exp(x+y)-y*log(x)-3 z = 401.6562 (3)输入变量 13 5.3, 25 a b ?? ==?? ?? ,在工作空间中使用who,whos,并用save命令将变量存入”D:\exe0 1.mat”文件。测试clear命令,然后用load命令将保存的”D:\exe01.mat”文件载入>> a=5.3 a=

预测控制MATLAB仿真与设计

动态矩阵控制算法实验报告 院系:电子信学院 姓名:郝光杰 学号:172030039 专业:控制理论与控制工程 导师:俞孟蕻

MATLAB环境下动态矩阵控制实验 一、实验目的: 对于带有纯滞后、大惯性的研究对象,通过动态控制矩阵的MATLAB的直接处理与仿真实验,具有较强的鲁棒性和良好的跟踪性。输入已知的控制模型,通过对参数的选择,来取的良好的控制效果。 二、实验原理: 动态矩阵控制算法是一种基于被控对象非参数数学模型的控制算法,它是一种基于被控对象阶跃响应的预测控制算法,以对象的阶跃响应离散系统为模型,避免了系统的辨识,采用多步预估技术,解决时延问题,并按照预估输出与给定值偏差最小的二次性能指标实施控制,它适用于渐进稳定的线性对象,系统动态特性中存在非最小相位特性或纯滞后都不影响算法的直接使用。 三、实验环境: 计算机 MATLAB2016b 四、实验步骤: 影响控制效果的主要参数有: 1)采样周期T与模型长度N 在DMC中采样周期T与模型长度N的选择需要满足香农定理和被控对象的类型及其动态特性的要求,通常需要NT后的阶跃响应输出值接近稳定值。 2)预测时域长度P P对系统的快速性和稳定性具有重要影响。为使滚动优化有意义,应使P 包含对象的主要动态部分,P越小,快速性提高,稳定性变差;反之,P越大,系统实时性降低,系统响应过于缓慢。 3)控制时域长度M

M控制未来控制量的改变数目,及优化变量的个数,在P确定的情况下,M越小,越难保证输出在各采样点紧密跟踪期望输出值,系统响应速度缓慢, 可获得较好的鲁棒性,M越大,控制机动性越强,改善系统的动态性能,但是稳定性会变差。 五、实例仿真 (一)算法实现 设GP(s)=e-80s/(60s+1),采用DMC后的动态特性如图1所示,采样周期 T=20s,优化时域P=10,M=2,建模时域N=20。 MATLAB程序1: g=poly2tfd(1,[60 1],0,80);%通用传函转换为MPC模型 delt=20; %采样周期 nt=1; %输出稳定性向量 tfinal=1000; %截断时间 model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型 plant=model;%进行模型预测控制器设计 p=10; m=2; ywt=[];uwt=1;%设置输入约束和参考轨迹等控制器参数 kmpc=mpccon(plant,ywt,uwt,m,p);%模型预测控制器增益矩阵计算 tend=1000;r=1;%仿真时间 [y,u,yrn]=mpcsim(plant,model,kmpc,tend,r);%模型预测控制仿真 t=0:20:1000;%定义自变量t的取值数组 plot(t,y) xlabel(‘图一DMC控制动态响应曲线(time/s)’); ylabel(‘响应曲线’); 结果如下: Percent error in the last step response coefficient

matlab矩阵的表示和简单操作

matlab矩阵的表示和简单操作 一、矩阵的表示 在MATLAB中创建矩阵有以下规则: a、矩阵元素必须在”[ ]”内; b、矩阵的同行元素之间用空格(或”,”)隔开; c、矩阵的行与行之间用”;”(或回车符)隔开; d、矩阵的元素可以是数值、变量、表达式或函数; e、矩阵的尺寸不必预先定义。 二,矩阵的创建: 1、直接输入法 最简单的建立矩阵的方法是从键盘直接输入矩阵的元素,输入的方法按照上面的规则。建立向量的时候可以利用冒号表达式,冒号表达式可以产生一个行向量,一般格式是:e1:e2:e3,其中e1为初始值,e2为步长,e3为终止值。还可以用linspace函数产生行向量,其调用格式为:linspace(a,b,n) ,其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 2、利用MATLAB函数创建矩阵 基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 3、利用文件建立矩阵 当矩阵尺寸较大或为经常使用的数据矩阵,则可以将此矩阵保存为文件,在需要时直接将文件利用load命令调入工作环境中使用即可。同时可以利用命令reshape对调入的矩阵进行重排。reshape(A,m,n),它在矩阵总元素保持不变的前提下,将矩阵A重新排成m*n 的二维矩阵。 二、矩阵的简单操作 1.获取矩阵元素 可以通过下标(行列索引)引用矩阵的元素,如Matrix(m,n)。 也可以采用矩阵元素的序号来引用矩阵元素。 矩阵元素的序号就是相应元素在内存中的排列顺序。 在MATLAB中,矩阵元素按列存储。 序号(Index)与下标(Subscript )是一一对应的,以m*n矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。 其相互转换关系也可利用sub2ind和ind2sub函数求得。

MATLAB数学实验A

clear; clc; a=1;b=1; ezplot(sprintf('x^2/%f-y^2/%f',a^2,b^2)); hold on; ezplot(sprintf('x^2/%f-y^2/%f-1',a^2,b^2)); ezsurf('sin(a)*cos(b)','sin(a)*sin(b)','cos(a)',[0,pi,0,2*pi],60); hold on; ezsurf('x^2+y^2',[-1,1,-1,1],60);

clear all; x=-8:0.1:8; y=-8:0.1:8; [X,Y]=meshgrid(x,y); Z=sin(sqrt(X.^2+Y.^2))./sqrt(X.^2+Y.^2+2); [X,Y,Z]=peaks(50); surf(X,Y,Z)

syms x y; y=2*x^3-6*x^2-18*x+7; solve(diff(y,x),x) x=-1;eval(y) x=3;eval(y)

syms x y; z='x*y'; dblquad(z,1,4,-1,2) 结果 ans = 11.2500 求函数1+x -exp(2*x)+5的原函数clear all syms x C; f=int(1+x -exp(2*x)+5,'x')+C syms x y; >> x=0:0.01:1; >> y=sin(sin(x)); >> trapz(x,y)

x=0:0.05:1; y=[1.97687 2.17002 2.34158 2.46389 2.71512 3.06045 3.27829 3.51992 3.8215 4.2435 4.55188 4.88753 5.15594 5.698 6.04606 6.42701 7.00342 7.50192 7.89178 8.49315 9.0938] cftool 解常微分方程y’=-0.9y/(1+2x)的数值解y(0)=1 从0到0. 1的数值解,取步长0.02 clear all x1=0; x2=0.1; h=0.02; y(1,1)=1;

灰色预测模型的MATLAB 程序及检验程序

灰色预测模型的Matlab程序及检验程序%灰色预测模型程序 clear syms a b; c=[a b]'; A=[46.232.626.723.020.018.917.516.3];%原始序列B=cumsum(A);%累加 n=length(A); for i=1:(n-1) C(i)=(B(i)+B(i+1))/2; end %计算待定参数 D=A; D(1)=[]; D=D'; E=[-C;ones(1,n-1)]; c=inv(E*E')*E*D; c=c'; a=c(1); b=c(2); %预测往后预测5个数据 F=[];F(1)=A(1); for i=2:(n+5) F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a; end G=[];G(1)=A(1); for i=2:(n+5) G(i)=F(i)-F(i-1); end t1=2002:2009; t2=2002:2014; G plot(t1,A,'o',t2,G) %灰色预测模型检验程序 function[q,c,p]=checkgm(x0,x1) %GM检验函数 %x0原始序列 %x1预测序列 %·返回值

%q–-相对误差 %c--·方差比 %p--小误差概率 e0=x0-x1; q=e0/x0; s1=var(x0); %qpa=mean(e0); s2=var(e0); c=s2/s1; len=length(e0); p=0; for i=1:len if(abs(e0(i))<0.6745*s1) p=p+1; end end p=p/len; end 等级相对误差q方差比C小误差概论P I级<0.01<0.35>0.95 II级<0.05<0.50<0.80 III级<0.10<0.65<0.70 IV级>0.20>0.80<0.60

MATLAB矩阵及其运算函数表

MATLAB 矩阵及其运算函数表 函数名函数功能 abs( ) 绝对值、负数的模、字符串的ASCII码值都可用来求字符串矩阵所 对应的ASCII码数值矩阵double( ) char( ) 可以把ASCII码数值矩阵转换为字符串矩阵 fix( ) 向零方向取整 floor( ) 不大于自变量的最大整数 ceil( ) 不小于自变量的最小整数 round( ) 四舍五入到最邻近的整数 rem(x,y) 求余函数 mod(x,y) % exp( ) 指数函数 [ ] 空操作符 format 格式符设置或改变数据输出格式 (其中格式符决定数据的输出格式) e1:e2:e3 冒号表达式可以产生一个行向量 (其中e1为初始值,e2为步长,e3为终止值) linspace(a,b,n) 产生一个行向量 (其中a和b是生成向量的第一个和最后一个元素,n是元素总数) [注:linspace(a,b,n)与a:(b-a)/(n-1):b等价] A(:,j) 表示取A矩阵的第j列全部元素 A(i,:) 表示A矩阵第i行的全部元素 A(i,j) 表示取A矩阵第i行、第j列的元素 A(i:i+m,:) 表示取A矩阵第i~i+m行的全部元素 A(:,k:k+m) 表示取A矩阵第k~k+m列的全部元素 A(i:i+m,k:k+m) 表示取A矩阵第i~i+m行内,并在第k~k+m列中的所有元素 zeros 产生全0矩阵(零矩阵) ones 产生全1矩阵(幺矩阵) eye 产生单位矩阵 rand 产生0~1间均匀分布的随机矩阵 randn 产生均值为0,方差为1的标准正态分布随机矩阵 zeros(size(A)) 建立一个与矩阵A同样大小的零矩阵 reshape(A,m,n) 在矩阵总元素保持不变的前提下,将矩阵A重新排成m×n的二维矩阵magic(n) 生成一个n阶魔方矩阵(其每行、每列及两条对角线上的元素和都相等) vander(V) 生成以向量V为基础向量的范得蒙矩阵(最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积) hilb(n) 生成希尔伯特矩阵 invhilb(n) 求n阶的希尔伯特矩阵的逆矩阵 (用一般方法求逆会因原始数据的微小扰动而产生不可靠的计算结果) toeplitz(x,y) 生成一个以x为第1列,y为第1行的托普利兹矩阵(除第1行第1列外,

相关文档
最新文档