matlab实习实验报告

matlab实习实验报告
matlab实习实验报告

实验一时间序列ARMA学习

一、基本形式

ARMA模型分为以下三种:

1.自回归模型(AR)

如果时间序列满足

其中是独立同分布的随机变量序列,且满足:

以及E( ) = 0,则称时间序列为服从p阶的自回归模型。

AR模型是用过去的观测值和现在的干扰值的线性组合来预测未来值,式子中的p为阶数,β为待定参数,y为一个平稳序列。

自回归模型的平稳条件:

滞后算子多项式

的根均在单位圆外,即φ(B) = 0的根大于1。

2.移动平均模型(MA)

如果时间序列满足

则称时间序列为服从q阶移动平均模型;

MA模型是用过去的干扰值和现在的干扰值的线性组合预测未来的值,式中q为阶数,α为待定参数,y为一个平稳序列。

移动平均模型平稳条件:任何条件下都平稳。

3.自回归滑动平均模型(ARMA)

如果时间序列满足:

则称时间序列为服从(p,q)阶自回归滑动平均混合模型。

模型求解流程图:

二、实例分析

太阳的光球表面有时会出现一些暗的区域,它是磁场聚集的地方,这就是太阳黑子。黑子是太阳表面可以看到的最突出的现象。一个中等大小的黑子大概和地球的大小差不多。长期的观测发现,黑子多的时候,其他太阳活动现象也会比较频繁。从外文网站查询到太阳黑子数量的变化,从而预测接下来数量的走势。

首先整理数据,进行平稳性判断,使用matlab语言中的adftest()函数即可。

数据为平稳数据,因而无需做平稳化处理,使用AR模型对原数据作出预测。

Matlab代码为:

clc

clear

a=csvread('heizi.csv');

b=a(2700:3234,[1,4]);

c=b(:,2);

diff(c);

adftest(c)%

figure(2);

subplot(2,1,1)

autocorr(c,500)%2

set(gca,'Xlim',[0 500]);

subplot(2,1,2)

parcorr(c,50);

set(gca,'Xlim',[0 50]);

z=iddata(c);%×

m=armax(z(1:end),'na',20,'nc',0);%

yp = predict(m,c,1);

figure(3)

plot(c,'-.');

hold on

plot(yp,'r')

grid

legend('3?ê??μ','?¤2a?μAR')

bzc=sum((yp-c).^2)

结果如下:

2.MA模型求解

Matlab代码:

clc

clear

a=csvread('heizi.csv');

b=a(2700:3234,[1,4]);

c=b(:,2);

diff(c);

adftest(c)

figure(2);

subplot(2,1,1)

autocorr(c,500)

set(gca,'Xlim',[0 500]);

subplot(2,1,2)

parcorr(c,50);

set(gca,'Xlim',[0 50]);

z=iddata(c);

m=armax(z(1:end),'na',0,'nc',4); yp = predict(m,c,1);

figure(3)

plot(c,'-.');

hold on

plot(yp,'r')

grid

legend('3?ê??μ','?¤2a?μMA')

bzc=sum((yp-c).^2)

结果如下:

3.ARMA模型求解

对于ARMA模型,需要做出阶数判断,用ACF和PACF确定p、q阶数,在使用ARMA模型求解。

Matlab代码:

clc

clear

a=csvread('heizi.csv');

b=a(2700:3234,[1,4]);

c=b(:,2);

diff(c);

adftest(c)

figure(2);

subplot(2,1,1)

autocorr(c,500)%2自相关

set(gca,'Xlim',[0 500]);

subplot(2,1,2)

parcorr(c,50); %偏自相关

set(gca,'Xlim',[0 50]);

结果如下:

由图可以看出ACF和PACF都是拖尾,故可用ARMA模型求解,模拟数据matlab代码如下:

a=csvread('heizi.csv');

b=a(2700:3234,[1,4]);

c=b(:,2);

diff(c);

adftest(c)%

figure(2);

subplot(2,1,1)

autocorr(c,500)%

set(gca,'Xlim',[0 500]);

subplot(2,1,2)

parcorr(c,50); %

set(gca,'Xlim',[0 50]);

z=iddata(c);

m=armax(z(1:end),'na',19,'nc',19);

yp = predict(m,c,1);

figure(3)

plot(c,'-.');

hold on

plot(yp,'r')

grid

legend('3?ê??μ','?¤2a?μMA')

bzc=sum((yp-c).^2)

结果如下:

比较图像可看出,ARMA数据的整体误差小于AR和MA数据的误差,因而

三、改进方法

通过讨论,我们决定对ARMA模型做改进,主要是在定阶和模型的误差方面作出改进。传统的ARMA模型定阶方法是比较繁琐的,对于有些不太好处理的数据,很难判断出符合的阶数,误差也比较大。对于上述问题,我们做了合理的改进,主要改进方法如下:

1.定阶的方法(确定模型p,q)

在传统的ARMA模型中,定阶方法有观察自相关偏相关图像确定阶数,aic 最小原则确定阶数,等等。但是在实际操作中,我们发现这些步骤不好做,对于上述例子来说,自相关图像就不好观察,无法确定确切的拖尾截尾的点,因而无法判断。使用aic最小原则通常比较繁琐,数据量大的时候计算又耗费时间,在例题中为了得到aic最小的pq,我们做了实际计算,pq均在20以内时,计算完需要一分钟以上,效率不高,如果有更多的数据,将无法处理。对于这个问题,我们想到用神经网络训练让其判断数据的p,q。需要大量的原始数据来训练网络,用R语言生成符合时间序列阶数的大量数据,操作如下:

R语言生成数据:arima.sim()

分别取p,q为0,1,2,3,4,5生成符合的平稳数据,各生成1100个数据,1000个用来训练网络,100用来检测。

Python代码如下:

from __future__ import print_function

import numpy as np

import random as r

from https://www.360docs.net/doc/9514700465.html,yers.core import Dense, Dropout, Activation

from keras.models import Sequential

from keras.models import load_model

def getdata(p, q):

'''

生成数据的函数

输入阶数p,q,输出对应的平稳序列

'''

if p == 0 and q == 0:

a = r.random()

return np.array([a for i in range(20)])

elif p == 0 and q != 0:

elps, e = np.random.random(size=20), np.random.normal(size=20)

e = e / np.max(e)

cita = np.random.normal(0, 1, q)

cita = cita / np.max(cita)

y = np.zeros(20)

for i in range(q, 20):

y[i] = elps[i] - np.dot(cita, e[i - q:i])

y = y / np.max(y)

return y

elif p != 0 and q == 0:

elps, e = np.random.random(size=20), np.random.normal(size=20)

e = e / np.max(e)

fai = np.random.random(size=p)

if p >= q:

y = np.append(fai[0:p], np.zeros(20 - p))

for i in range(p, 20):

y[i] = -np.dot(fai, y[i - p:i]) + elps[i]

y = y / np.max(y)

return y

else:

elps, e = np.random.random(size=20), np.random.normal(size=20)

e = e / np.max(e)

fai, cita = np.random.random(size=p), np.random.normal(0, 1, q)

cita = cita / np.max(cita)

if p >= q:

y = np.append(fai[0:p], np.zeros(20 - p))

for i in range(p, 20):

y[i] = -np.dot(fai, y[i - p:i]) + elps[i] - \

np.dot(cita, e[i - q:i])

else:

y = np.append(fai[0:p], np.zeros(20 - p))

for i in range(q, 20):

y[i] = -np.dot(fai, y[i - p:i]) + elps[i] - \

np.dot(cita, e[i - q:i])

y = y / np.max(y)

return y

def getlabel(p, q):

'''

对标签进行独热编码

'''

y = np.zeros(36)

y[p * 6 + q] = 1

return y

# 生成数据并归一化

x_train, y_train, x_test, y_test = [], [], [], []

x, y, x1 = [], [], []

with open('data1.txt', 'r') as f:

lines = f.readlines()

for line in lines:

x1.append(float(line))

for i in range(500):

x_train.append(np.array(x1[i * 20:i * 20 + 20])) y_train.append(getlabel(0, 2))

x, y, x1 = [], [], []

with open('data2.txt', 'r') as f:

lines = f.readlines()

for line in lines:

x1.append(float(line))

for i in range(500):

x_train.append(np.array(x1[i * 20:i * 20 + 20])) y_train.append(getlabel(2, 0))

ps, qs = [0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5]

for p in ps:

for q in qs:

for i in range(1000):

x_train.append(getdata(p, q))

y_train.append(getlabel(p, q))

x_train = np.array(x_train)

y_train = np.array(y_train)

for p in ps:

for q in qs:

for i in range(100):

x_test.append(getdata(p, q))

y_test.append(getlabel(p, q))

x_test = np.array(x_test)

y_test = np.array(y_test)

# 设置初始随机数种子

np.random.seed(1337)

# 设置batch的大小

batch_size = 100

# 设置类别的个数

nb_classes = 36

# 设置迭代的次数

nb_epoch = 5000

train_data, train_labels, test_data, test_labels = x_train, y_train, x_test, y_test

'''

模型一

'''

# 建立顺序型模型

model1 = Sequential()

# 输入层有20个神经元

# 第一个隐层有15个神经元,激活函数为ReLu,Dropout比例为0.2

model1.add(Dense(15, input_shape=(20,)))

model1.add(Activation('relu'))

model1.add(Dropout(0.2))

# 第二个隐层有18个神经元,激活函数为ReLu,Dropout比例为0.2

model11.add(Dense(18))

model11.add(Activation('relu'))

model11.add(Dropout(0.2))

# 第三个隐层有15个神经元,激活函数为ReLu,Dropout比例为0.2

model1.add(Dense(15))

model1.add(Activation('relu'))

model1.add(Dropout(0.2))

# 输出层有36个神经元,激活函数为SoftMax,得到分类结果

model1.add(Dense(36))

model1.add(Activation('softmax'))

# 输出模型的整体信息

model1.summary()

https://www.360docs.net/doc/9514700465.html,pile(loss='categorical_crossentropy',

optimizer='adam',

metrics=['accuracy'])

history = model1.fit(train_data, train_labels,

batch_size=batch_size,

epochs=nb_epoch,

verbose=1,

validation_data=(test_data, test_labels))

score = model1.evaluate(test_data, test_labels, verbose=0)

# model1.save('model1.h5')

# 输出训练好的模型在测试集上的表现

print('Test score:', score[0])

print('Test accuracy:', score[1])

'''

模型二

'''

# 建立顺序型模型

model2 = Sequential()

# 输入层有20个神经元

# 隐层有100个神经元,激活函数为ReLu,Dropout比例为0.2

model2.add(Dense(100, input_shape=(20,)))

model2.add(Activation('relu'))

model2.add(Dropout(0.2))

# 输出层有36个神经元,激活函数为SoftMax,得到分类结果

model2.add(Dense(36))

model2.add(Activation('softmax'))

# 输出模型的整体信息

model2.summary()

https://www.360docs.net/doc/9514700465.html,pile(loss='categorical_crossentropy',

optimizer='adam',

metrics=['accuracy'])

history = model2.fit(train_data, train_labels,

batch_size=batch_size,

epochs=nb_epoch,

verbose=1,

validation_data=(test_data, test_labels))

score = model2.evaluate(test_data, test_labels, verbose=0)

# model2.save('model2.h5')

# 输出训练好的模型在测试集上的表现

print('Test score:', score[0])

print('Test accuracy:', score[1])

训练完成之后,用余下的100组数据进行检验,模型一正确率为0.65,模型二正确率为0.82,可见深网络比宽网络更准确。

由此,p,q的阶数确定将变得简单,缺点是准确率为0.82,有出错的可能。四、参考文献

[1]司守奎,孙兆亮.数学建模算法与应用.北京:国防工业出版社,2017.

[2]李维国,同登科.数值计算方法.山东:中国石油大学出版社,2016.

[3]郑阿奇,曹戈.MATLAB实用教程.北京:电子工业出版社,2016.

[4]高俊芳,吴清.时间序列ARMA模型及其应用[J].上海工程技术大学学

报,1996(04):68-73.

[5]胡代平,刘豹.利用神经网络确定ARMA模型的结构[J].1998(04):34-36+30.

[6]colah's blog.Understanding LSTM Networks.

http://colah.github.io/posts/2015-08-Understanding-LSTMs/

[7]DL4J.LSTM和循环网络基础教程.https://https://www.360docs.net/doc/9514700465.html,/cn/lstm

实验二MATLAB混合编程

一、Mex混合编程技术学习

为matlab配置混合编程的软件,选用C++.

mex文件的编写可以分为三个步骤,数据传入,数据处理,数据导出

1、传入矩阵用mxGetPr,传入数值用mxGetScalar

2、获取2维矩阵维度用mxGetM,mxGetN

3、数据在内存上都是连续的,访问的时候按列的顺序访问

4、数据传出用mxCreateDoubleMatrix,先创建一个double类型的指针用来存放要导出的数据,然后再拷贝到plhs[i]对应的指针上

二、Mex混合编程实现

通过一个案例来说明一中的具体操作,

#include"mex.h"

//计算过程

void juzhenplus(double *y ,double *p,int n,int m)

{

int i, j;

for (i = 0; i < n; i++)

for (j = 0; j < m; j++)

*(y+j+n*i)=*(p+i*n+j) * 5;

}

//接口过程

void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])

{

double x, *y, *p;

int n,t;

x = mxGetM(prhs[0]);

t = mxGetN(prhs[0]);

plhs[0] = mxCreateDoubleMatrix(x, t, mxREAL);

y = mxGetPr(plhs[0]);

p = mxGetPr(prhs[0]);

juzhenplus(y,p,x,t);

}

在VS2017中编写上面的代码,实现的是从matlab传入一个矩阵,在c++中进行乘以常数的操作,再输出到matlab中。

结果显示,混用是成功的。

实验三三次样条插值法与勒让德高斯

积分法的应用

一、问题提出

在实际生活中我们会遇到这种问题,如何求得一段非常不规则的曲线长度,曲曲折折我们无法用测量工具来准确地测得长度。但是有时我们需要测量这些数据,比如海岸线的长度。本方案将对此提出解决方法。

问题来源:台湾省边界长度

用matlab识别出图片轮廓,提取边界上的点。

matlab边缘检测即可得出所有需要的点,通过插值的方法使计算误差变小. 二、三次样条插值

三次样条插值(Cubic Spline Interpolation)简称Spline插值,是通过一系

列形值点的一条光滑曲线,数学上通过求解三弯矩方程组得出曲线函数组的过程。

实际计算时还需要引入边界条件才能完成计算。一般的计算方法书上都没有说明非扭结边界的定义,但数值计算软件如Matlab都把非扭结边界条件作为默认的边界条件。

三次样条函数:

定义:函数S(x)∈C2[a,b] ,且在每个小区间[ xj,xj+1 ]上是三次多项式,其中

a =x0

b 是给定节点,则称S(x)是节点x0,x1,...xn上的三次样条函数。

若在节点x j 上给定函数值Yj= f (Xj).( j =0, 1, , n) ,并成立

S(xj ) =yj .( j= 0, 1, , n) ,则称S(x)为三次样条插值函数。

实际计算时还需要引入边界条件才能完成计算。边界通常有自然边界(边界点的二阶导为0),夹持边界(边界点导数给定),非扭结边界(使两端点的三阶导与这两端点的邻近点的三阶导相等)。一般的计算方法书上都没有说明非扭结边界的定义,但数值计算软件如Matlab都把非扭结边界条件作为默认的边界条件。

已知:

a. n+1个数据点[xi, yi], i = 0, 1, …, n

b. 每一分段都是三次多项式函数曲线

c. 节点达到二阶连续

d. 左右两端点处特性(自然边界,固定边界,非节点边界)

根据定点,求出每段样条曲线方程中的系数,即可得到每段曲线的具体表达式。

插值和连续性:

, 其中i = 0, 1, …, n-1

微分连续性:

, 其中i = 0, 1, …, n-2

样条曲线的微分式:

将步长带入样条曲线的条件:a. 由(i = 0, 1, …, n-1)推出

b. 由(i = 0, 1, …, n-1)推出

c. 由(i = 0, 1, …, n-2)推出

由此可得:

d. 由(i = 0, 1, …, n-2)推出

设,则

a. 可写为:

,推出

b. 将ci, di带入可得:

c. 将bi, ci, di带入(i = 0, 1, …, n-2)可得:

这样我们可以构造一个以m为未知数的线性方程组,而且在端点条件已知的情况下我们是知道其中几个未知数的值的

端点条件

由i的取值范围可知,共有n-1个公式,但却有n+1个未知量m 。要想求解该方程组,还需另外两个式子。所以需要对两端点x0和xn的微分加些限制。选择不是唯一的,3种比较常用的限制如下。

a. 自由边界(Natural)

首尾两端没有受到任何让它们弯曲的力,即。具体表示为

则要求解的方程组可写为:

b. 固定边界(Clamped)

首尾两端点的微分值是被指定的,这里分别定为A和B。则可以推出

将上述两个公式带入方程组,新的方程组左侧为

c. 非节点边界(Not-A-Knot)

指定样条曲线的三次微分匹配,即

根据和,则上述条件变为

新的方程组系数矩阵可写为:

求解过程:

1.将方程组(2)与三种端点条件的任何一种联合,解关于M0,M1,…,M n 的线性方程组.

2.将M i(i=0,1,…,n)代入方程组(1)就得到s(x)关于各子区间的表达式.

特别指出,若第2种端点条件取为

M0=M n=0(s″(x0)=s″(x n)=0),

据此得到的样条插值函数称为自然样条,它在理论上,计算实践上都是很重要的.上面求解三次样条插值的方法称为三弯矩法,是三次样条插值解算方法中最常用的一种。

三、勒让德高斯积分

高斯积分法是精度最高的插值型数值积分,具有2n+12n+1阶精度,并且高斯积分总是稳定。而高斯求积系数,可以由Lagrange多项式插值系数进行积分得到.高斯-勒让德求积公式是构造高精度差值积分的最好方法之一。他是通过让节点和积分系数待定让函数f(x)f(x)以此取i=0,1,2....n i=0,1,2....n次多项式使其尽可能多的能够精确成立来求出积分节点和积分系数。高斯积分的代数精度是

2n?12n?1,而且是最高的。通常运用的是(?1,1)(?1,1)的积分节点和积分系数,其他积分域是通过一定的变换变换到-1到1之间积分。

MATLAB实验报告

MATLAB程序设计语言 实 验 报 告 专业及班级:电子信息工程 姓名:王伟 学号:1107050322 日期 2013年6月20日

实验一 MATLAB 的基本使用 【一】 实验目的 1.了解MATALB 程序设计语言的基本特点,熟悉MATLAB 软件的运行环境; 2.掌握变量、函数等有关概念,掌握M 文件的创建、保存、打开的方法,初步具备将一般数学问题转化为对应计算机模型处理的能力; 3.掌握二维图形绘制的方法,并能用这些方法实现计算结果的可视化。 【二】 MATLAB 的基础知识 通过本课程的学习,应基本掌握以下的基础知识: 一. MATLAB 简介 二. MATLAB 的启动和退出 三. MATLAB 使用界面简介 四. 帮助信息的获取 五. MATLAB 的数值计算功能 六. 程序流程控制 七. M 文件 八. 函数文件 九. MATLAB 的可视化 【三】上机练习 1. 仔细预习第二部分内容,关于MATLAB 的基础知识。 2. 熟悉MATLAB 环境,将第二部分所有的例子在计算机上练习一遍 3. 已知矩阵???? ??????=??????????=123456789,987654321B A 。求A*B ,A .* B ,比较二者结果是否相同。并利用MATLAB 的内部函数求矩阵A 的大小、元素和、长度以 及最大值。 程序代码: >> A=[1 2 3;4 5 6;7 8 9]; >> B=[9 8 7;6 5 4;3 2 1]; >> A*B ans =

30 24 18 84 69 54 138 114 90 >> A.*B ans = 9 16 21 24 25 24 21 16 9 两者结果不同 >> [m,n]=size(A) m = 3 n = 3 >> b=sum(A) b = 12 15 18 >> a=length(A) a = 3 >>max(A) ans =

2014《MATLAB及应用》实验报告4 -

实验报告 实验项目名称MATLAB绘图 所属课程名称MATLAB及应用 实验类型上机实验 实验日期2014-04 -16 指导教师盛义发 班级2013级研究生 学号2013XXXXXXXXX 姓名XXXXXX 成绩

一、实验名称 MATLAB绘图 二、实验目的 (1)掌握绘制二维图形的常用函数。 (2)掌握绘制三维图形的常用函数。 (3)掌握绘制图形的辅助操作 三、实验原理 1. 绘制二维图形的常用函数 plot函数绘制二维曲线,常用格式有: plot(x):缺省自变量的绘图格式,x可为向量或矩阵。 plot(x, y):基本格式,x和y可为向量或矩阵。 plot(x1, y1, x2, y2,…):多条曲线绘图格式,在同一坐标系中绘制多个图形。 plot(x, y, ‘s’):开关格式,开关量字符串s设定了图形曲线的颜色、线型及标示符号。 2. 绘制三维图形的常用函数 (1)三维曲线图——plot3函数 plot3(x1, y1, z1, 's1', x2, y2, z2, 's2'…) (2)三维网格图——mesh函数为数据点绘制网格线: mesh(z) —— z为n×m的矩阵,x与y坐标为元素的下标位置 mesh(x, y, z) —— x, y, z分别为三维空间的坐标位置 (3)三维曲面图——由surf函数完成的,用法和mesh类似。 3. 绘制图形的辅助操作 title ——给图形加标题 xlable ——给x轴加标注 ylable ——给y轴加标注 text ——在图形指定的任意位置加标注 gtext ——利用鼠标将标注加到图形任意位置 grid on ——打开坐标网格线

matlab实验报告

数学实验报告 班级: 学号: 姓名: 实验序号:1 日期:年 月 日 实验名称:特殊函数与图形 ◆ 问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到 明白直观的体现,如函数的性质等。同时,借助直观的图形,使初学者更容易接受新知识,激发学习兴趣。 ◆ 实验目的:本实验通过绘制一些特殊函数的图形,一方面展示这些函数的特点属性, 另一方面,就 Matlab 强大的作图功能作一个简单介绍。 实验原理与数学模型: 1、 球2222x y z R ++= ,x=Rsin φcos θ, y= Rsin φsin θ, z= cos φ, 0≤θ≤2π , 0≤φ≤π 环面 222222222()4(),(cos )cos ,x y z a r a x y x a r φθ+++-=+=- (cos )sin ,sin ,02,02y a r z r φθφφπθπ=-=≤≤≤≤ 2、 平面摆线:2 22 31150,(sin ),(1cos ),0233 x y x a t t y a t t π+-==-=-≤≤ 3、 空间螺线:(圆柱螺线)x=acost , y=asint , z=bt ;(圆锥螺线)22 cos ,sin ,x t t y t t z t === 4、 椭球面sin cos ,sin sin ,cos ,02,0x a y b z c φθφθφθπφπ===≤<≤≤ 双叶双曲面3 tan cos ,tan sin ,sec ,02,22 x a y b z c π φθφθφθπφπ===≤<- << 双曲抛物面2 sec ,tan 2 u x au y bu z θθ=== 实验所用软件及版本:mathematica(3.0) 主要内容(要点): 1、 作出下列三维图形(球、环面) 2、 作出下列的墨西哥帽子 3、 作出球面、椭球面、双叶双曲面,单叶双曲面的图形 4、 试画出田螺上的一根螺线 5、 作出如图的马鞍面

MATLAB实验报告实验二

实验二 MATLAB矩阵及其运算 学号:3121003104 姓名:刘艳琳专业:电子信息工程1班日期:2014.9.20 一实验目的 1、掌握Matlab数据对象的特点以及数据的运算规则。 2、掌握Matlab中建立矩阵的方法以及矩阵处理的方法。 3、掌握Matlab分析的方法。 二实验环境 PC_Windows 7旗舰版、MATLAB 7.10 三实验内容 4、1. (1)新建一个.m文件,验证书本第15页例2-1; (2)用命令方式查看和保存代码中的所有变量;

(3)用命令方式删除所有变量; (4)用命令方式载入变量z。 2. 将x=[4/3 1.2345e-6]在以下格式符下输出:短格式、短格式e方式、长格式、长格式e方式、银行格式、十六进制格式、+格式。 短格式 短格式e 长格式

长格式e方式 银行格式 十六进制格式 3.计算下列表达式的值 (1)w=sqrt(2)*(1+0.34245*10^(-6)) (2)x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a) a=3.5;b=5;c=-9.8; (3)y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a) a=3.32;b=-7.9; (4)z=0.5*exp(2*t)*log(t+sqrt(1+t*t)) t=[2,1-3i;5,-0.65];

4. 已知A=[1 2 3 4 5 ;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20],对其进行如下操作:(1)输出A在[ 7, 10]范围内的全部元素; (2)取出A的第2,4行和第1,3,5列; (3)对矩阵A变换成向量B,B=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]; (4)删除A的第2,3,4行元素; (1) (2)

MATLAB全实验报告

《数学实验》报告 实验名称 Matlab 基础知识 学院 专业班级 姓名 学号 2014年 6月

一、【实验目的】 1.认识熟悉Matlab这一软件,并在此基础上学会基本操作。 2.掌握Matlab基本操作和常用命令。 3.了解Matlab常用函数,运算符和表达式。 4.掌握Matlab工作方式和M文件的相关知识。 5.学会Matlab中矩阵和数组的运算。 二、【实验任务】 P16 第4题 编写函数文件,计算 1! n k k = ∑,并求出当k=20时表达式的值。P27第2题 矩阵A= 123 456 789 ?? ?? ?? ?? ?? ,B= 468 556 322 ?? ?? ?? ?? ?? ,计算A*B,A.*B,并比较两者的区别。 P27第3题 已知矩阵A= 52 91 ?? ?? ?? ,B= 12 92 ?? ?? ?? ,做简单的关系运算A>B,A==B,AB)。 P34 第1题 用 111 1 4357 π =-+-+……公式求π的近似值,直到某一项的绝对值小于-6 10为止。 三、【实验程序】 P16 第4题 function sum=jiecheng(n) sum=0; y=1; for k=1:n for i=1:k y=y*i; end sum=sum+y; end sum P27第2题 >>A=[1 2 3;4 5 6;7 8 9] >>B=[4 6 8;5 5 6;3 2 2] >>A*B

P27第3题 >> A=[5 2;9 1];B=[1 2;9 2]; >>A>B >>A==B >>A> (A==B)&(A> (A==B)&(A>B) P34 第1题 t=1; pi=0; n=1; s=1; while abs(t)>=1e-6 pi=pi+t; n=n+2; s=-s; t=s/n; end pi=4*pi; 四、【实验结果】 P16 第4题 P27第2题

MATLAB实验报告50059

实验一MATLAB操作基础 实验目的和要求: 1、熟悉MATLAB的操作环境及基本操作方法。 2、掌握MATLAB的搜索路径及设置方法。 3、熟悉MATLAB帮助信息的查阅方法 实验内容: 1、建立自己的工作目录,再设置自己的工作目录设置到MA TLAB搜索路径下,再试 验用help命令能否查询到自己的工作目录。 2、在MA TLAB的操作环境下验证课本;例1-1至例1-4,总结MATLAB的特点。 例1-1

例1-2 例1-3 例1-4

3、利用帮助功能查询inv、plot、max、round等函数的功能。 4、完成下列操作: (1)在matlab命令窗口输入以下命令: x=0:pi/10:2*pi; y=sin(x); (2)在工作空间窗口选择变量y,再在工作空间窗口选择回绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形,并分析图形的含义。

5、访问mathworks公司的主页,查询有关MATLAB的产品信息。 主要教学环节的组织: 教师讲授实验目的、开发环境界面、演示实验过程,然后同学上机练习。 思考题: 1、如何启动与退出MA TLAB集成环境? 启动: (1)在windows桌面,单击任务栏上的开始按钮,选择‘所有程序’菜单项,然后选择MA TLAB程序组中的MA TLABR2008b程序选项,即可启动 MATLAB系统。 (2)在MA TLAB的安装路径中找到MA TLAB系统启动程序matlab.exe,然后运行它。 (3)在桌面上建立快捷方式后。双击快捷方式图标,启动MA TLAB。 退出: (1)在MA TLAB主窗口file菜单中选择exitMATLAB命令。 (2)在MA TLAB命令窗口中输入exit或quit命令。 (3)单击MATLAB主窗口的关闭按钮。 2、简述MATLAB的主要功能。 MATLAB是一种应用于科学计算领域的数学软件,它主要包括数值计算和符 号计算功能、绘图功能、编程语言功能以及应用工具箱的扩展功能。 3、如果一个MATLAB命令包含的字符很多,需要分成多行输入,该如何处理?

太原理工大学MATLAB实验报告

实验二矩阵和数组的操作 一实验环境 MATLAB软件 二实验目的 1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。 2.学习矩阵和数组的加减运算和乘法。 3.掌握对数组中元素的寻访与赋值,会对数组进行一般的操作。三实验内容 1 创建一个5×5矩阵,提取祝对角线以上的部分 2 A=rand(3),B=magic(3),C=rand(3,4),计算A×B×C

3 创建一个3×3矩阵,并求其转置,逆矩阵 4 用两种方法求Ax=b的解(A为4阶随机矩阵,b为4阶列矩阵)

5 创建一个4阶随机矩阵A,计算A3

6 求100-999之间能被21整除的数的个数 7 设有矩阵A和B A=1 2 3 4 5 B=3 0 16 6 7 8 9 10 17 -6 9 11 12 13 14 15 0 23 -4 16 17 18 19 20 9 7 0 21 22 23 24 25 4 13 11 (1)求它们的乘积C=A×B (2)将矩阵C的右下角3×2子矩阵赋给D 8 求解下列方程式 (1)x3-2x+5=0

(2){3x1+11x2-2x3=8 X1+x2-2x3=-4 X1-x2+x3=3 9 求微分方程y’’(t)+2y’(t)+2y=0当y(0)=0、y’(0)=1时的解

四实验说明 我在MATLAB中完成实验二矩阵和数组的操作,在这个过程中,我使用了diary命令将我在实验过程中的数据记录,操作记录,心得体会全部储存到了指定文档并有了如上记录。 实验三MATLAB绘图 一实验环境 MATLAB软件 二实验目的 1.掌握MATLAB的基本绘图命令。 2.掌握运用MATLAB绘制一维、二维、三维图形的方法。 3.绘图加以修饰。 三实验内容 1.画出横坐标在(-15,15)上的函数y=cosx的曲线。

matlab实验报告

实验一小球做自由落体运动内容:一小球竖直方向做自由落体,并无损做往返运动。程序: theta=0:0.01:2*pi x=cos(theta) y=sin(theta) l=1 v=1 while l<10 for t=1:10 y=y+(-1)^l*v*t plot(x,y,[-1,1],[-56,2],'.') axis equal pause(0.1) end l=l+1 end 结果:

-50 -40 -30 -20 -10 收获:通过运用小球自由落体规律,及(-1)^n 来实现无损往 返运动! 实验二 旋转五角星 内容:一个五角星在圆内匀速旋转 程序:x=[2 2 2 2 2 2] y=[0 4/5*pi 8/5*pi 2/5*pi 6/5*pi 0] y1=2*sin(y) x1=2*cos(y) theta=0:4/5*pi:4*pi

x2=2*cos(theta) y2=2*sin(theta) plot(x,y,x1,y1,x2,y2) axis equal theta1=theta+pi/10 x2=2*cos(theta1) y2=2*sin(theta1) plot(x2,y2) axis equal theta=0:4/5*pi:4*pi for rot=pi/10:pi/10:2*pi x=2*cos(theta+rot) y=2*sin(theta+rot) plot(x,y) pause(0.1) end 结果:

-2 -1.5-1-0.500.51 1.52 -2-1.5-1-0.500.511.5 2 收获:通过theta1=theta+pi/10,我们可以实现五角星在圆内匀速 旋转! 实验三 转动的自行车 内容:一辆自行车在圆内匀速转动 程序:x=-4:0.08:4; y=sqrt(16-x.^2); theta1=-pi/2:0.01*pi:3*pi/2; x3=0.5*cos(theta1); y3=0.5*sin(theta1); theta=-pi/2+0.02*pi for k=1:100

matlab学习心得体会(精选3篇)

matlab学习心得体会(精选3篇) matlab学习心得体会一:matlab学习心得matlab中有丰富的图形处理能力,提供了绘制各种图形、图像数据的函数。他提供了一组绘制二维和三维曲线的函数,他们还可以对图形进行旋转、缩放等操作。matlab内部还包含丰富的数学函数和数据类型,使用方便且功能非常强大。 本学期通过对matlab的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了matlab的实用方法。通过理论课的讲解与实验课的操作,使我在短时间内学会使用matlab,同时,通过上机实验,对理论知识的复习巩固实践,可以自己根据例题编写设计简单的程序来实现不同的功能,绘制出比较满意的二维三维图形,在实践中找到乐趣。 matlab是一个实用性很强,操作相对容易,比较完善的工具软件,使用起来比较方便,通过操作可以很快看到结果,能够清晰的感觉到成功与失败,虽然课程中也会出现一些小问题,但是很喜欢这门课程。 matlab学习心得体会二:matlab学习心得(463字) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比c语言简单。但是深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数,也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab学习心得体会三:学习matlab的心得(817字) 这是我在学习的过程中的一些技巧,或许对你有帮助,可能字数不你能满足你的要求,但是绝对是精华。

MATLAB实验报告材料(1-4)

信号与系统MATLAB第一次实验报告 一、实验目的 1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。 2.学会运用MATLAB表示常用连续时间信号的方法 3.观察并熟悉一些信号的波形和特性。 4.学会运用MATLAB进行连续信号时移、反折和尺度变换。 5.学会运用MATLAB进行连续时间微分、积分运算。 6.学会运用MATLAB进行连续信号相加、相乘运算。 7.学会运用MATLAB进行连续信号的奇偶分解。 二、实验任务 将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。 三、实验内容 1.MATLAB软件基本运算入门。 1). MATLAB软件的数值计算: 算数运算 向量运算:1.向量元素要用”[]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。 矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。 举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名” 2.MATLAB软件简单二维图形绘制 1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y) 2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表 示第p个区域,表达为subplot(mnp)或者subplot(m,n,p) 3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin]) 4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’) 5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’) 6).输出:grid on 举例1: 举例2: 3.matlab程序流程控制

MATLAB程序设计实验报告

MATLAB 程序设计实验报告 一、实验目的 1. 通过实验熟悉MATLAB 仿真软件的使用方法; 2. 掌握用MATLAB 对连续信号时域分析、频域分析和s 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 3. 掌握用MATLAB 对离散信号时域分析、频域分析和z 域分析的方法,利用绘图命令绘制出典型信号的波形,了解这些信号的基本特征; 4. 通过绘制信号运算结果的波形,了解这些信号运算对信号所起的作用。 二、实验设备 1. 计算机 : 2. MATLAB R2007a 仿真软件 三、实验原理 对系统的时域分析 信号的时域运算包括信号的相加、相乘,信号的时域变换包括信号的平移、反折、倒相及信号的尺度变换。 (1)信号的相加和相乘:已知信号)(1t f 和)(2t f ,信号相加和相乘记为 )()(1t f t f =)(2t f +;)()(1 t f t f =)(2t f *。 (2)信号的微分和积分:对于连续时间信号,其微分运算是用diff 函数来完成的,其语句格式为:diff(function,’variable’,n),其中function 表示需要进行求导运算的信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;n 为求导的阶数,默认值为求一阶导数。连续信号的积分运算用int 函数来完成,语句格式为:diff(function,’variable’,a,b),其中function 表示需要进行被积信号,或者被赋值的符号表达式;variable 为求导运算的独立变量;a,b 为积分上、下限,a 和b 省略时为求不定积分。 (3)信号的平移、翻转和尺度变换 信号的平移包含信号的左移与右移,信号的翻转包含信号的倒相与折叠,平移和翻转信号不会改变信号)(t f 的面积和能量。信号的尺度变换是对信号)(t f 在时间轴上的变化,可使信号压缩或扩展。)(at f 将原波形压缩a 倍,)/(a t f 将原波形扩大a 倍。 ¥ 对系统频率特性的分析

参考答案Matlab实验报告

实验一 Matlab基础知识 一、实验目的: 1.熟悉启动和退出Matlab的方法。 2.熟悉Matlab命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握Matlab各种表达式的书写规则以及常用函数的使 用。 二、实验内容: 1.求[100,999]之间能被21整除的数的个数。(rem) 2.建立一个字符串向量,删除其中的大写字母。(find) 3.输入矩阵,并找出其中大于或等于5的元素。(find) 4.不采用循环的形式求出和式 63 1 2i i= ∑ 的数值解。(sum) 三、实验步骤: ●求[100,199]之间能被21整除的数的个数。(rem) 1.开始→程序→Matlab 2.输入命令: ?m=100:999; ?p=rem(m,21); ?q=sum(p==0) ans=43 ●建立一个字符串向量,删除其中的大写字母。(find) 1.输入命令:

?k=input('’,’s’); Eie48458DHUEI4778 ?f=find(k>=’A’&k<=’Z’); f=9 10 11 12 13 ?k(f)=[ ] K=eie484584778 ●输入矩阵,并找出其中大于或等于5的元素。(find) 1.输入命令: ?h=[4 8 10;3 6 9; 5 7 3]; ?[i,j]=find(h>=5) i=3 j=1 1 2 2 2 3 2 1 3 2 3 ●不采用循环的形式求出和式的数值解。(sum) 1.输入命令: ?w=1:63; ?q=sum(2.^w) q=1.8447e+019

实验二 Matlab 基本程序 一、 实验目的: 1. 熟悉Matlab 的环境与工作空间。 2. 熟悉M 文件与M 函数的编写与应用。 3. 熟悉Matlab 的控制语句。 4. 掌握if,switch,for 等语句的使用。 二、 实验内容: 1. 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 2. 编程完成,对输入的函数的百分制成绩进行等绩转换,90~100为优,80~89为良,70~79为中,60~69为及格。 3. 编写M 函数文件表示函数 ,并分别求x=12和56时的函数值。 4. 编程求分段函数 2226;03 56;0532 1;x x x x y x x x x x x x +-<≠=-+≤<≠≠-+且且及其它,并求输入x=[-5.0,-3.0,1.0,2.0,2.5,3.0,3.5]时的输出y 。 三、 实验步骤: 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 1. 打开Matlab ,新建M 文件 2. 输入命令: 51022-+x

MATLAB实训小结

实训小结 为期一周的MATLAB实训在学习与忙碌中度过了,时间虽短,但我们却真真切切的学到了知识,在现实工作中可以运用的知识。 在第一节课,我们便了解到MATLAB是世界上最流行的、应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程绘图和用户界面设计等。对MATLAB的系统结构和特点等,老师也向我们做出了大致的讲解,同时,我们知道了MATLAB程序的一些最基本的应用和运算,并能够进行一些简单的编程。就这样,实训的第一天大家都在期待和兴奋中度过。 接下来的时间,主要是以大家自学和练习为主,老师进行辅导和考察。在学习过程中,不懂的可以相互之间小声的讨论,也可向老师请教,但必须确保自己真正学到了知识,认真的看书并进行编程练习。一天的学习接近尾声时,就是老师考察大家一天的收获的时候了,老师总会出一些小题目让大家编出它的程序,虽然有的题目对我们来说还是有些难度的,但是在老师的指点下我们还是编出程序的,当我们看到自己编的程序运行正确时,总是会万分的兴奋,充满成就感。 就这样,仅仅一个星期的实训就结束了,虽然不能十分熟悉和运用MATLAB的所有程序,但是我们却打下了一定的基础,

在以后,当我们真正开始深入学习这门学问时,我们对它将不会再那么陌生,学起来也将轻松许多。这次实训为我们提供了一个很好的学习机会,唯一不足的就是时间有点短,我们不能在这段时间里学到更多的知识,因此,在这一周打下的基础上,我们需要用自己的努力去自学,以获取更多的知识。 知识是无穷无尽的,知识的获取需要一颗上进的心,老师将我们领进了门,下面的路就应该我们自己去走,即是充满荆棘,也要努力奋斗往前冲。

matlab实验心得体会.doc

matlab实验心得体会 篇一:matlab实验心得总结 通过《matlab仿真》实验使我学习掌握了许多知识。首先是对matlab 有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。 就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果,比如说可以再命令窗口和m文件中通过不同的命令设置的到相同的所需的效果图。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过《matlab仿真》的学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。

再此我不得不题到的事指导老师教我们怎么去搭建构造相关闭环传递函数的实验,这个实验几乎在我们的这次实验中占据了非常大的比重,在后面的几个大一点的实验中几乎都是涉及这个方面的内容,我现在想说的事怎么去搭建相关的函数和功能模块对我们来说几乎已经不是什么难事了,就拿怎么去对模块功能的实现以及分析确实是个重点和难点。通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。然而,不是说兴趣才是最大的老师嘛,我也相信,只要你自己有兴趣,即使它再怎么强大和难搞,我们能做的还是非常多的,关键的就只是在于你自己的态度了。我这里想说的事,matlab对于我来说是非常有吸引力的,我不敢说自己多么喜欢它,但是兴趣确实蛮高的,所以我相信在以后的学习和工作当中matlab将成为我非常有用的帮忙工具和好伙伴,也许这要说有点太草率了,但是我觉得对它的评价怎么也不会让每一个接触

MATLAB课程设计实验体会

课程设计实验体会 学生姓名:李祥胜 学生学号:20120704 专业班级:光信息科学与技术 指导老师:miss Chen 学院:信息工程学院 题目: MATLAB学期实验总结

MATLAB概念及介绍 MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB集成环境主要包括五个部分:MATLAB语言、MATLAB工作环境、句柄图形、MATLAB数学函数库和数学建模、小波分析、MATLAB API(App lication Program Interface)。MATLAB语言是以数组为基本数据单位,包括控制流程语句、函数、数据结构、输人输出及面向对象等特点的高级语言。利用SIMULINK对系统进行仿真与分析,在进入虚拟实验环境后,不需要书写代码,只需使用鼠标拖动库中的功能模块并将它们连接起来,再按照实验要求修改各元器件的参数。通过虚拟实验环境建立实验仿真电路模型,可使一些枯燥的电路变得有趣味,复杂的波形变得形象生动,使得各种复杂的能量转换过程比较直观地呈现。 1.1、MATLAB语言特点及优势 1.1.1、语言特点 MATLAB被称为第四代计算机语言,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB 给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。 (1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。 (2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短,具体运算符见附表。 (3)MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。 (4)语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。 (5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。

matlab实验报告模板

主题:投资组合问题 指导教师: 阮小娥老师 制作时间:— 学院:机械学院 小组成员:机自07 赵磊 80 机自07 周策 81 机自07 邹业兵 82

目录 一、引言: (3) 二、实验问题: (3) 三、问题分析 (4) (1)、已知和股票有关的一些概念(实验所涉及的理论知识):4(2)、数学建模: (5) 数学模型: (6) (3)、求解方法: (6) 四、程序设计: (7) 第一步: (7) 第二、三、四步: (7) 第五步: (8) 五、程序运行结果(实验结果)为: (9) 第一步: (9)

A股49个周末的收盘价的变化情况 (9) B股49个周末的收盘价的变化情况 (9) C股49个周末的收盘价的变化情况 (10) 第二、三、四步: (10) 第五步: (11) 六、问题的进一步拓展与实验 (12) 实验过程 (12) 1:条件假设 (12) 2:建立模型 (12) 3:模型求解 (13) 程序设计 (14) 程序运行结果 (14) 七、实验的总结与体会: (19) 赵磊: (19) 周策: (19)

邹业兵: (19) 一、引言: 现在社会,随着社会的发展和生产力的提升,人们的生活水平日益提高。人们不仅仅满足于吃饱穿暖,人们对财富的追求也愈来愈强烈,此时股票作为社会化大生产的产物,股票至今已有将近似400年的历史,它的发展与人类经济的发展可以说是和谐统一的,而它集惊险刺激和可能存在的巨额经济效益的特点更是牢牢的牵住了现代人的心,毕竟,在已经不愁衣食的前提下,谁不想像股神巴菲特一样,动动脑筋便收拢全世界的财富呢所以,研究股票自然而然就成了现代人生活中极为重要的一部分。 二、实验问题: 企业(或政府)或个人进行投资的目的是为了取得利润,在现代市场经济中,由于投资环境瞬息万变,任何一项投资的收益总是不能确定的,也就是说具有一定的风险,如何度量收益和风险呢下面给出一个实际问题进行分析: 表9-1给出3只股票(A、B、C股)49个周末的收盘价,

matlab实验报告

Matlab实验报告 实验二图像处理 一、实验目的 (1)通过应用MA TLAB语言编程实现对图像的处理,进一步熟悉MATLAB软件的编程及应用; (2)通过实验进一步掌握图像处理的基本技术和方法。 二、实验内容及代码 ㈠.应用MA TLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换 首先,在matlab页面中的current directory下打开存放图像的文件夹。 1.显示各种图像 ⑴显示彩色图像: ①代码:>> mousetif=imread('tif.TIF'); >> image(mousetif) 显示截图: ②代码:>> mousetif=imread('tif.TIF'); >> imshow(mousetif) 显示截图:

③代码:mousetif=imread('tif.TIF'); subimage(mousetif) 显示截图: 显示截图:

⑵显示二值图像 ①代码:>> I=imread('单色bmp.bmp'); >> imagesc(I,[0 2]) 显示截图: ②代码:>> I=imread('单色bmp.bmp');

>> imshow(I,2) 显示截图: ③代码:>> I=imread('单色bmp.bmp'); >> subimage(I) 显示截图:

⑶显示灰度图像 ①代码:>> I1=imread('256bmp.bmp'); >> imagesc(I1,[0,256]) 显示截图: 代码:>> I1=imread('256bmp.bmp'); >> colormap(gray); >> subplot(1,2,1); >> imagesc(I1,[0,256]); >> title('灰度级为[0 256]的mouse.bmp图'); >> subplot(1,2,2); >> imagesc(I1,[0,64]); >> colormap(gray); >> title('灰度级为[0 64]的mouse.bmp图'); 显示截图:

【参考文档】matlab实验心得体会_学习matlab的心得体会-优秀word范文 (3页)

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除! == 本文为word格式,下载后可方便编辑和修改! == matlab实验心得体会_学习matlab的心得体会 导语:通过对MATLAB的系统环境,数据的各种运算,矩阵的分析和处理,程序设计,绘图,数值计算及符号运算的学习,初步掌握了MATLAB的实用方法。以下是小编带来的matlab实验心得体会,希望对您有所帮助。 matlab实验心得体会(一) 学习matlab是听说它是一个功能强大的数学软件,但是正被微积分的计算缠身,听说有一个高级的计算器当然高兴,以后可以偷懒了,当然现在不能偷懒。听说关于自动化的计算特别复杂,如果有一种软件能帮忙解题,那是一种 极大的解脱,有益于缩短研究时间。目前我只知道有三种数学软件,都是国外的,没有国内的,差距挺大的。matlab学起来挺顺手的,比C语言简单。但是 深入学习的时候却困难重重,因为很多知识都没有学习,就算知道那些函数, 也没有什么用处。老师布置的作业难度大,写一篇实验,大一什么都不会,写 一篇这种论文谈何容易。最多也就会一些数值计算、符号计算、简单绘图,根 本不会什么实验。 学习matlab体会最多的是这个软件的功能强大,好多数学题都被轻易的解出。但是有一点遗憾,不知是我不会用,还是它没个功能,已知空间的电荷分布,求空间的电场分布。其中电场分布是无法用函数表达式表示。我知道计算 机肯定可以实现,但是这个软件能不能实现就不知道了,我看过许多资料,但 是在这方面没有提到相关信息。 总之,这个软件功能强大,不知什么时候国内才有类似的软件。 matlab实验心得体会(二) 我从中国石油大学(北京)来到大庆油田勘探开发研究院实习,刚刚来到这 里时我内心充满了激动和喜悦,对这个有着辉煌成绩的科研单位充满了期待。 到了这里没多久我就参加培训中心组织的入院教育,对研究院的辉煌过去有了 更深刻的了解,那时我就下定决心在研究院好好实习,多学习一些现场经验,为以后的工作打下良好的基础。 一个月的入院培训结束后,经过自己申请和中心安排我被分到了地震资料 处理一室,实习期间地震一室的副主任陈志德是我的现场导师,陈主任有着丰

matlab实验心得总结

通过《matlab仿真》实验使我学习掌握了许多知识。首先是对matlab有了一个全新的认识,其次是对matlab的更多操作和命令的使用有了更高的掌握,最重要的事对matlab的处理能力有了一个更高的飞跃尤其是对相关函数的使用及相关问题的处理。 就对matlab相关的命令操作而言,通过这次实验的亲身操作和实践,学习掌握了许多原本不知道的或者不太熟悉的命令。比如说相关m文件的建立,画图用到的标注,配色,坐标控制,同一张图里画几幅不同的图像,相关参数的设置以及相关函数的调用格式等等。就拿建立一个数学方程而言,通过设置不同的参数达到所需要的要求和结果,而且还可以在不同的窗口建立不同的函数而达到相同的效果,比如说可以再命令窗口和m文件中通过不同的命令设置的到相同的所需的效果图。而自己对于矩阵及闭环传递函数的建立原本所掌握的知识几乎为零,而通过这次实验使我彻底的掌握了相关的命令操作和处理的方法,在这里我们不仅可以通过建立函数和参数来达到目标效果,而且还可以通过可视化的编程达到更快更方便,更简洁的效果。就拿可视化编程而言原本根本就只是听说而已罢了,从来就没有亲身去尝试过,然而现在自己却可以和容易的通过搭建不同功能木块来实现相关的函数及功能。这些在原本根本就不敢相信,然而通过《matlab仿真》的学习和实验亲身操作这些原本看似不可能的操作在此就变的轻而易举的事了。 再此我不得不题到的事指导老师教我们怎么去搭建构造相关闭环传递函数的实验,这个实验几乎在我们的这次实验中占据了非常大的比重,在后面的几个大一点的实验中几乎都是涉及这个方面的内容,我现在想说的事怎么去搭建相关的函数和功能模块对我们来说几乎已经不是什么难事了,就拿怎么去对模块功能的实现以及分析确实是个重点和难点。通过对同一个模块分析其对应的不同的参数分析图的建立去分析和解释其对应的相关功能和技术指标和性能分析是非常重要的,我们不可能只需要建立相关的模块和功能就说自己掌握了所有的相关知识和技术,真正的技术和知识是怎么去分析和解释相关的技术指标和功能参数才是重中之重。就此而言,我坦诚的说自己所掌握的还是十分的有限的,但是老师给我们介绍的相关方法和技巧还是十分有效果的,如果自己真的想在这方面有什么建树对自己以后的要求还是需要更改的要求的,万不可以就此止步不前,自命不凡,我们还需掌握和了解还有许多许多,我们真正所掌握的只是皮毛,要想取得更大的成绩就得不断的去努力学习和汲取相关的知识和技巧。万不可自以为傲,裹足不前,matlab真的是个非常强大和有用的工具我们真正的能把它学懂学透的话还是需要下非常大的功夫和努力的。然而,不是说兴趣才是最大的老师嘛,我也相信,只要你自己有兴趣,即使它再怎么强大和难搞,我们能做的还是非常多的,关键的就只是在于你自己的态度了。我这里想说的事,matlab对于我来说是非常有吸引力的,我不敢说自己多么喜欢它,但是兴趣确实蛮高的,所以我相信在以后的学习和工作当中matlab将成为我非常有用的帮忙工具和好伙伴,也许这要说有点太草率了,但是我觉得对它的评价怎么也不会让每一个接触过它的人吝啬是自己赞美之词。它不仅仅可以用来建模分析函数,还可以用来进行图形的建模和仿真,还可以用来分析系统和函数的参数稳定性等等。再次就不一一列举了,我怕三天也不会说完的。