人工智能典型例题MATLAB仿真实验报告

合集下载

4)MATLAB实验报告

4)MATLAB实验报告

4)MATLAB实验报告MATLAB实验报告一、引言MATLAB是一种强大的数学软件,广泛应用于科学研究、工程设计和数据分析等领域。

本实验报告旨在介绍使用MATLAB进行数据处理和可视化的基本方法,并通过实例展示其应用。

二、数据处理1. 数据导入与读取在MATLAB中,可以使用load函数或importdata函数导入外部数据文件。

load函数适用于导入MATLAB格式的数据文件,而importdata函数可以导入多种格式的数据文件,如文本文件、Excel文件等。

2. 数据清洗与转换数据清洗是指对原始数据进行去除异常值、缺失值填充等处理,以保证数据的准确性和完整性。

MATLAB提供了丰富的函数和工具箱,如统计工具箱、优化工具箱等,可以方便地进行数据清洗和转换操作。

3. 数据分析与建模MATLAB具有强大的数学和统计分析功能,可以进行数据的描述性统计、回归分析、时间序列分析等。

通过使用相关函数和工具箱,可以对数据进行深入分析,并建立相应的数学模型。

三、数据可视化1. 统计图表MATLAB提供了丰富的绘图函数和工具箱,可以绘制各种统计图表,如直方图、散点图、箱线图等。

这些图表可以直观地展示数据的分布、关系和趋势,有助于更好地理解和解释数据。

2. 三维可视化除了二维图表外,MATLAB还支持三维数据的可视化。

通过使用plot3函数、mesh函数等,可以将三维数据以曲线、曲面等形式展示出来,进一步提供对数据的深入理解。

3. 动态可视化MATLAB还支持动态可视化,即通过动画或交互式图形来展示数据的变化过程。

通过使用animate函数、interactiveplot函数等,可以将数据的变化以动态的方式展示出来,增加数据分析和呈现的趣味性。

四、实例应用以某电商平台销售数据为例,展示如何使用MATLAB进行数据处理和可视化。

首先,导入销售数据文件,清洗数据,去除异常值和缺失值。

然后,通过统计分析,计算销售额、销量、平均价格等指标,并绘制相应的统计图表。

(最新版)MATLAB实验报告

(最新版)MATLAB实验报告

(最新版)MATLAB实验报告实验一典型环节的MATLAB仿真一、实验目的1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。

2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。

3.定性了解各参数变化对典型环节动态特性的影响。

二、SIMULINK的使用MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。

利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。

1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。

2.选择File菜单下New下的Model命令,新建一个simulink 仿真环境常规模板。

3.在simulink仿真环境下,创建所需要的系统。

以图1-2所示的系统为例,说明基本设计步骤如下:1)进入线性系统模块库,构建传递函数。

点击simulink下的“Continuous”,再将右边窗口中“Transfer Fen”的图标用左键拖至新建的“untitled”窗口。

2)改变模块参数。

在simulink仿真环境“untitled”窗口中双击该图标,即可改变传递函数。

其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK,即完成该模块的设置。

3)建立其它传递函数模块。

按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。

例:比例环节用“Math”右边窗口“Gain”的图标。

4)选取阶跃信号输入函数。

用鼠标点击simulink下的“Source”,将右边窗口中“Step”图标用左键拖至新建的“untitled”窗口,形成一个阶跃函数输入模块。

5)选择输出方式。

用鼠标点击simulink下的“Sinks”,就进入输出方式模块库,通常选用“Scope”的示波器图标,将其用左键拖至新建的“untitled”窗口。

matlab仿真实验报告

matlab仿真实验报告

matlab仿真实验报告Matlab仿真实验报告引言:Matlab是一种广泛应用于科学和工程领域的数值计算软件,它提供了强大的数学和图形处理功能,可用于解决各种实际问题。

本文将通过一个具体的Matlab 仿真实验来展示其在工程领域中的应用。

实验背景:本次实验的目标是通过Matlab仿真分析一个电路的性能。

该电路是一个简单的放大器电路,由一个输入电阻、一个输出电阻和一个放大倍数组成。

我们将通过Matlab对该电路进行仿真,以了解其放大性能。

实验步骤:1. 定义电路参数:首先,我们需要定义电路的各个参数,包括输入电阻、输出电阻和放大倍数。

这些参数将作为Matlab仿真的输入。

2. 构建电路模型:接下来,我们需要在Matlab中构建电路模型。

可以使用电路元件的模型来表示电路的行为,并使用Matlab的电路分析工具进行仿真。

3. 仿真分析:在电路模型构建完成后,我们可以通过Matlab进行仿真分析。

可以通过输入不同的信号波形,观察电路的输出响应,并计算放大倍数。

4. 结果可视化:为了更直观地观察仿真结果,我们可以使用Matlab的图形处理功能将仿真结果可视化。

可以绘制输入信号波形、输出信号波形和放大倍数的变化曲线图。

实验结果:通过仿真分析,我们得到了以下实验结果:1. 输入信号波形与输出信号波形的对比图:通过绘制输入信号波形和输出信号波形的变化曲线,我们可以观察到电路的放大效果。

可以看到输出信号的幅度大于输入信号,说明电路具有放大功能。

2. 放大倍数的计算结果:通过对输出信号和输入信号的幅度进行计算,我们可以得到电路的放大倍数。

通过比较不同输入信号幅度下的输出信号幅度,可以得到放大倍数的变化情况。

讨论与分析:通过对实验结果的讨论和分析,我们可以得出以下结论:1. 电路的放大性能:根据实验结果,我们可以评估电路的放大性能。

通过观察输出信号的幅度和输入信号的幅度之间的比值,可以判断电路的放大效果是否符合设计要求。

人工智能实验报告1

人工智能实验报告1

南京信息工程大学 实验(实习)报告 实验(实习)名称 MATLAB 编程 实验日期得分 指导教师 系 计科 专业 年级 班次 <> 姓名 学号一、实验目的:(1)通过学习MA TLAB 编程来进一步了解人工智能; (2)通过上机实习编写MATLAB 程序,从而对MA TLAB 有所基本了解。

为更好地学习人工智能知识打下基础。

二、实验内容:(1)编写程序,计算1+3+5+7+…+(2n+1)的值(用input 语句输入n 值)。

(2)编写分段函数⎪⎩⎪⎨⎧≤≤-<≤=)(0)21(2)10()(其他x x x x x f 的函数文件,存放于文件ff.m 中,计算出)3(-f 、)2(f 、)(∞f 的值。

三、实验步骤:(1)打开MATLAB 软件,首先在D 盘下新建一个MATLAB 文件夹,然后把工作路径设置到这个文件夹,如所示。

(2)在菜单栏选择【File 】>>【New 】>>【M-File 】新建*.M 的文件,然后在新建的文件中进行程序的编写。

(3)第1题的实验代码如下:实验结果如下:(4)第2题实验代码如下:实验结果如下:四、实验结论:(1)存在问题一开始对MATLAB语言还不是很熟悉,但通过上级实习遇到的一些问题帮助我们更好的学习了MATLAB,而且它与C语言虽然在思想上差不多但语法实现上还是有区别的。

(2)认识体会MATLAB 作为一种高级科学计算软件,是进行算法开发、数据可视化、数据分析以及数值计算的交互式应用开发环境,并且是一门实践性非常强的课程。

要学好MATLAB程序设计,上机实践是十分重要的环节,只有通过大量的上机实验,才能真正掌握MA TLAB程序设计。

Matlab仿真实验报告

Matlab仿真实验报告

Matlab仿真实验报告姓名:黄涛学号:2011302540056学院:电气工程学院[在此处键入文档的摘要。

摘要通常是对文档内容的简短总结。

在此处键入文档的摘要。

摘要通常是对文档内容的简短总结。

]实验一直流电路一实验目的1、加深对直流电路的节点电压法和网孔电流法的理解。

2、学习MATLAB的矩阵运算方法。

二、实验内容:1、电阻电路的计算如图,已知:R1=2,R2=6,R3=12,R4=8,R5=12,R6=4,R7=2.(1) 如Us=10V,求i3,u4,u7;(2) 如U4=4V,求Us,i3,i7.(1)Z = [20 -12 0;-12 32 -12;0 -12 18];V = [10 0 0]';I = inv(Z)*V;i3 = I(1)-I(2);u4 = 8*I(2);u7 = 2*I(3);fprintf('i3=%f \n',i3)fprintf('u4=%f \n',u4)fprintf('u7=%f \n',u7)仿真结果:i3=0.357143u4=2.857143u7=0.476190(2)Z = [0 8 0;-12 32 -12;0 -12 18];V = [4 0 0]';I = inv(Z)*V;Us = 20*I(1)-12*I(2);i3 = I(1)-I(2);i7 = I(3);fprintf('Us=%f \n',Us)fprintf('i3=%f \n',i3)fprintf('i7=%f \n',i7)仿真结果:Us=14.000000i3=0.500000i7=0.3333332、求解电路里的电压,例如V1,V2,……V5.Y = [1 -1 2 -2 0;0 5 -13 8 0;2 0 4 -11 0;176 -5 5 -196 0;0 0 0 0 1];I = [0 -200 -120 0 24]';V = inv(Y)*I;fprintf('V1=%fV\nV2=%fV\nV3=%fV\nV4=%fV\nV5=%fV\n',V(1),V(2),V(3),V(4),V(5))仿真结果:V1=117.479167VV2=299.770833VV3=193.937500VV4=102.791667VV5=24.000000V3、如图,已知R1=R2=R3=4,R4=2,控制常数k1=0.5,k2=4,is=2,求i1和i2.Z = [1 0 0 0;-4 16 -8 -4;0 0 1 0.5;0 -8 4 6];V = [2 0 0 0]';I = inv(Z)*V;i1 = I(2)-I(3);i2 = I(4);fprintf('i1=%f V\ni2=%f V\n',i1,i2)仿真结果:i1=1.000000 Vi2=1.000000 V三、实验总结Matlab可用于计算矩阵,方便电路分析过程中的计算。

自动实验一——典型环节的MATLAB仿真报告

自动实验一——典型环节的MATLAB仿真报告

自动实验一——典型环节的MATLAB仿真报告引言:典型环节的MATLAB仿真是一种常见的模拟实验方法,通过使用MATLAB软件进行建模和仿真,可以有效地研究和分析各种复杂的物理系统和控制系统。

本报告将介绍一个典型环节的MATLAB仿真实验,包括实验目的、实验原理、实验步骤、实验结果和讨论等内容。

一、实验目的本实验旨在通过MATLAB仿真实验,研究和分析一个典型环节的动态特性,深入了解其响应规律和控制方法,为实际系统的设计和优化提供理论支持。

二、实验原理典型环节是控制系统中的重要组成部分,一般包括惯性环节、惯性耦合和纯滞后等。

在本实验中,我们将重点研究一个惯性环节。

惯性环节是一种常见的动态系统,其特点是系统具有自身的动态惯性,对输入信号的响应具有一定的滞后效应,并且在输入信号发生变化时有一定的惯性。

三、实验步骤1.建立典型环节的数学模型。

根据实际情况,我们可以选择不同的数学模型描述典型环节的动态特性。

在本实验中,我们选择使用一阶惯性环节的传递函数模型进行仿真。

2.编写MATLAB程序进行仿真。

利用MATLAB软件的控制系统工具箱,我们可以方便地建立惯性环节的模型,并利用系统仿真和分析工具进行仿真实验和结果分析。

3.进行仿真实验。

选择合适的输入信号和参数设置,进行仿真实验,并记录仿真结果。

4.分析实验结果。

根据仿真结果,可以分析典型环节的动态响应特性,比较不同输入信号和控制方法对系统响应的影响。

四、实验结果和讨论通过以上步骤,我们成功地完成了典型环节的MATLAB仿真实验,并获得了仿真结果。

通过对仿真结果的分析,我们可以得到以下结论:1.惯性环节的响应规律。

惯性环节的响应具有一定的滞后效应,并且对输入信号的变化具有一定的惯性。

随着输入信号的变化速度增加,惯性环节的响应时间呈指数级减小。

2.稳态误差与控制增益的关系。

控制增益对稳态误差有重要影响,适当调整控制增益可以减小稳态误差。

3.不同输入信号的影响。

matlab仿真实验报告,Matlab仿真及其应用实验报告.doc

matlab仿真实验报告,Matlab仿真及其应用实验报告.doc

matlab仿真实验报告,Matlab仿真及其应⽤实验报告.doc Matlab仿真及其应⽤ 实验报告温州⼤学物理与电⼦信息⼯程学院Matlab仿真及其应⽤ 实验报告课程名称:Matlab仿真及其应⽤班 级:10电信姓名:吴** 学号:1011000****实验地点:5B305⽇期:12.25实验⼆ Matlab 基本编程基础[实验⽬的和要求]熟悉MATLAB环境与⼯作空间熟悉变量与矩阵的输⼊、矩阵的运算熟悉M⽂件与M函数的编写与应⽤熟悉MATLAB控制语句与逻辑运算掌握if语句、switch语句、try语句的使⽤。

掌握利⽤for语句、while语句实现循环结构的⽅法。

[实验内容]1⾏100列的Fibonacc 数组a,a(1)=a(2)=1,a(i)=a(i-1)+a(i-2),⽤for循环指令来寻求该数组中第⼀个⼤于10000的元素,并之处其位置i。

编写M函数表⽰曲线以及它的包络线,并从命令窗⼝输⼊命令语句绘制曲线。

t的取值范围是[0,4π]。

设,编写⼀个M函数⽂件,使得调⽤f(x)时,x可⽤矩阵代⼊,得出的f(x)为同阶矩阵。

根据,求时的最⼤n值;与(1)的n值对应的y值。

已知求中,最⼤值、最⼩值、各数之和,以及正数、零、负数的个数。

输⼊⼀个百分制成绩,要求输出成绩等级A,B,C,D,E。

其中,90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。

求分段函数的值。

⽤if语句实现输出x=-5.0, -3.0, 1.0, 2.0, 2.5, 3.0, 5.0时的y值。

编写⼀M函数,实现近似计算指数,其中x为函数参数输⼊,当n+1步与n步的结果误差⼩于0.00001时停⽌。

编写⼀M函数,a和x作为M函数参数输⼊,函数⾥⾯分别⽤if结构实现函数表⽰实验结果及分析:1.a=ones(1,100); %定义数组for i=3:100a(i)=a(i-1)+a(i-2);if(a(i)>10000)a(i),break;endend ,i2.function y=ff(t)y1=exp(-t/3);y2=exp(-t/3).*sin(3*t); y=[y1;y2]3.function y=f(x);a=input('输⼊a值:');x=input('输⼊x值:');if(x<=-a)y=-1;elseif(x-a)y=x/a;elsey=1;endend4.for n=1:100f(n)=1./(2*n-1);y=sum(f)if y>=3my=y-f(n)breakendendmy5.f(1)=1,f(2)=0,f(3)=1; for n=4:100f(n)=f(n-1)-2*f(n-2)+f(n-3);enda=sum(f);b=max(f);c=min(f);p=f==0,d=sum(p);%p等于f为0的个数p1=f>0,e=sum(p1);p2=f<0,f=sum(p2);a,b,c,d,e,f6.clear;n=input('输⼊成绩:');m=floor(n/10);%取整switch mcase num2cell(9:10)disp('A'); %显⽰在控制框case 8disp('B');case 7disp('C');case 6disp('D');case num2cell(0:5)disp('E');otherwisedisp('error')end7.function y=ex3_4(x)for i=1:length(x)if (x(i)<0)&(x(i)~=-3)y(i)=x(i)^2+x(i)-6elseif (x(i)>=0)&(x(i)<5)&(x(i)~=2)&(x(i)~=3) y(i)=x(i)^2-5*x(i)+6else y(i)=x(i)^2-x(i)-1 endendy8.function t=ex3_4(x) n=0;t=1;y=1;x=input(‘’);while y>=0.00001n=n+1;y=x^n/factorial(n);t=t+y;endn9.function y=f(x);a=input('输⼊a值:'); x=input('输⼊x值:'); if。

Matlab实验报告(1)

Matlab实验报告(1)

《Matlab语言与应用》课程实验报告*名:**班级:电信114学号:************指导老师:***二〇一三年十一月二十一日Matlab实验报告实验一一、实验问题求[12 + sin(2)×( 22 −4)]÷3^2的算术运算结果。

二、问题的分析该题主要熟悉Matlab环境下的对数学运算的熟悉,如何输入数据、建立函数输出结果。

三、上机实验结果如图四、实验的总结与体会通过本次实验,我学会了用Matlab来计算数学运算中的复杂技术。

我们也可以自己编写一个可以调用的函数,首先我们要了解Matlab语言函数的基本结构,结构如下:Function [返回变量列表]=函数名(输入变量列表)注释说明语句段,由%引导输入、返回变量格式的检测函数体语句例如:输入变量为k,返回的变量为m和s,其中s为前m项的和Function [m,s]=findsum(k)s=0;m=0;while(s<=k),m=m+1;s=s+m;end编写了函数,就可以将其存为findsum.m文件,这样就可以在Matlab环境中对不同的k值调用该函数了。

这样就可以灵活的实现我们想要的数据。

实验二一、实验问题二、问题分析输入矩阵时,空格或逗号表示间隔,分号表示换行,比如上面的矩阵A应写为A=[1,2,3;4,5,6;7,8,9]三、上机实验结果如图四、实验的总结与体会通过对本次上机实验了解到在Matlab中对矩阵的代数运算矩阵转置、矩阵的加减法运算、矩阵乘法、矩阵的左、右除、矩阵翻转、矩阵乘方运算、点运算等。

实验三一、实验要求画图,理解plot函数用法二、代码如下clear; clf;t=0:pi/20:2*pi;R=5;x=R*sin(t); y=R*cos(t);plot(x,y,'b:'), gridhold onrrr=[x;y;x+y];plot(rrr(1,:),'.','MarkerSize',10,'Color','r')plot(rrr(2,:),rrr(3,:),'o','MarkerSize',15,'Color','b'); axis([-8,20,-8,8]), % axis squarehold off三、Matlab运行结果如图实验四一、实验要求二、代码如下t=0:pi/50:4*pi;y0=exp(-t/3);y=exp(-t/3).*sin(3*t);plot(t,y,'-r',t,y0,':b',t,-y0,':b') Grid三、Matlab运行结果如图实验五一、实验要求傅里叶频谱分析二、代码及分析(1)首先生成数据,包含50Hz和120Hz频率的正弦波x >>t = 0:.001:.25;>>x = sin(2*pi*50*t) + sin(2*pi*120*t);(2)再生成噪音信号yy = x + 2*randn(size(t));plot(y(1:50))title('Noisy time domain signal')(3)对y进行快速傅里叶变换Y = fft(y,256);(4)计算功率谱Pyy = Y.*conj(Y)/256;f = 1000/256*(0:127);plot(f,Pyy(1:128))title('Power spectral density')xlabel('Frequency (Hz)')(5)只查看200Hz以下频率段plot(f(1:50),Pyy(1:50))title('Power spectral density')xlabel('Frequency (Hz)')三、上机结果如下图实验六一、实验要求FIR数字滤波器设计代码如下clear;close allf=[0,0.6,0.6,1]; m=[0,0,1,1]; % 设定预期幅频响应b=fir2(30,f,m); n=0:30; % 设计FIR 数字滤波器系数subplot(3,2,1),stem(n,b,'.')xlabel('n'); ylabel('h(n)');axis([0,30,-0.4,0.5]),line([0,30],[0,0])[h,w]=freqz(b,1,256);subplot(3,2,2),plot(w/pi,20*log10(abs(h)));gridaxis([0,1,-80,0]),xlabel('w/pi'); ylabel('幅度(dB)');二、上级结果如图实验七二、实验要求用guide实验一个简单的加减乘除计算器二、实验步骤在命令行输入guide命令,进入guide界面新建一个空白guide文件在空白文件中设置好功能模块如图模块建立好后,就要把编写好的加减乘除代码加入到各自的回调函数中,见下图两个被加数代码如下图加模块代码如下图减模块代码如下图乘模块代码如下图除模块代码如下图各模块的回调函数加完后就可以运行了,运行结果如下图总结:Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。

matlab 仿真实验报告

matlab 仿真实验报告

matlab 仿真实验报告Matlab 仿真实验报告引言:在科学研究和工程应用中,仿真实验是一种非常重要的手段。

通过在计算机上建立数学模型和进行仿真实验,我们可以更好地理解和预测现实世界中的各种现象和问题。

Matlab作为一种强大的科学计算软件,被广泛应用于各个领域的仿真实验中。

本文将介绍我进行的一次基于Matlab的仿真实验,并对实验结果进行分析和讨论。

实验背景:在电子通信领域中,信号的传输和接收是一个重要的研究方向。

而在进行信号传输时,会受到各种信道的影响,如噪声、衰落等。

为了更好地理解信道的特性和优化信号传输方案,我进行了一次关于信道传输的仿真实验。

实验目的:本次实验的目的是通过Matlab仿真,研究不同信道条件下信号传输的性能,并对比分析不同传输方案的优劣。

实验步骤:1. 信道建模:首先,我需要建立信道的数学模型。

根据实际情况,我选择了常见的高斯信道模型作为仿真对象。

通过Matlab提供的函数,我可以很方便地生成高斯噪声,并将其加入到信号中。

2. 信号传输方案设计:接下来,我需要设计不同的信号传输方案。

在实验中,我选择了两种常见的调制方式:频移键控(FSK)和相移键控(PSK)。

通过调整不同的调制参数,我可以模拟不同的传输效果。

3. 信号传输仿真:在信道模型和传输方案设计完成后,我开始进行信号传输的仿真实验。

通过Matlab提供的信号处理函数,我可以很方便地生成调制后的信号,并将其传输到信道中。

4. 信号接收和解调:在信号传输完成后,我需要进行信号接收和解调。

通过Matlab提供的信号处理函数,我可以很方便地对接收到的信号进行解调,并还原出原始的信息信号。

5. 仿真结果分析:最后,我对仿真结果进行分析和讨论。

通过对比不同信道条件下的传输性能,我可以评估不同传输方案的优劣,并得出一些有价值的结论。

实验结果与讨论:通过对不同信道条件下的信号传输仿真实验,我得到了一些有价值的结果。

首先,我观察到在高斯噪声较大的信道条件下,PSK调制比FSK调制具有更好的抗干扰性能。

matlab实验报告

matlab实验报告

matlab实验报告《matlab 实验报告》一、实验目的通过本次实验,熟悉 MATLAB 软件的基本操作和功能,掌握使用MATLAB 进行数学计算、数据处理、图形绘制等方面的方法和技巧,提高运用 MATLAB 解决实际问题的能力。

二、实验环境1、计算机:_____2、操作系统:_____3、 MATLAB 版本:_____三、实验内容及步骤(一)矩阵运算1、创建矩阵在 MATLAB 中,可以通过直接输入元素的方式创建矩阵,例如:`A = 1 2 3; 4 5 6; 7 8 9`,创建了一个 3 行 3 列的矩阵 A。

还可以使用函数来创建特定类型的矩阵,如全零矩阵`zeros(m,n)`、全 1 矩阵`ones(m,n)`、单位矩阵`eye(n)`等。

2、矩阵的基本运算加法和减法:两个矩阵相加或相减,要求它们的维度相同,对应元素进行运算。

乘法:矩阵乘法需要满足前一个矩阵的列数等于后一个矩阵的行数。

转置:使用`A'`来获取矩阵 A 的转置。

(二)函数的使用1、自定义函数可以在 MATLAB 中自定义函数,例如定义一个计算两个数之和的函数:```matlabfunction s = add_numbers(a,b)s = a + b;end```2、调用函数在命令窗口中输入`add_numbers(3,5)`即可得到结果 8。

(三)数据的读取和写入1、读取数据使用`load`函数可以读取数据文件,例如`load('datatxt')`。

2、写入数据使用`save`函数可以将数据保存到文件中,例如`save('resulttxt',A)`,将矩阵 A 保存到`resulttxt`文件中。

(四)图形绘制1、二维图形绘制折线图:使用`plot(x,y)`函数,其中 x 和 y 分别是横坐标和纵坐标的数据。

绘制柱状图:使用`bar(x,y)`函数。

2、三维图形绘制三维曲线:使用`plot3(x,y,z)`函数。

MATLAB及仿真应用实验报告2

MATLAB及仿真应用实验报告2

MATLAB 及仿真技术实验报告
实验步骤与内容:
1. 用空格和矩阵分别建立一个5*4的矩阵A;
2. 用M 文件建立一个7*7的矩阵;
3. 用linspace 产生一个从1到20的行向量;
4. 用第一题产生的矩阵来做本题:
在指令窗口求出第三行第二列的元素、第七个元素、第三列的全部元素、第三行的全部元素、第二行与第三行的所有元素、第二列与第三列的所有元素; 5. 建立1*3的零矩阵、1*3的全1矩阵、以及3*3的单位矩阵; 6. 在[-10,10]之间建立冲击响应矩阵和单位脉冲矩阵; 7. 产生在[0,50]之间均匀分布的7阶随机矩阵; 8. 将201-249等49个元素填入7*7的矩阵中,使其每行的和、每列的和以及对角线上的和
全部为1575; 9. 求68732
3
5
++++x x x x 的伴随矩阵;
10. 使用Matlab 语言求出7
)(y x +的展开式,要求写出展开结果,不能只写系数。

1

2,
3,
4,
5,
6,
7,
8,
9,
10,。

matlab实验一实验报告

matlab实验一实验报告

matlab实验一实验报告一、实验目的本次实验的主要目的是熟悉 MATLAB 软件的基本操作环境和编程语法,通过实际编写和运行简单的程序,初步掌握 MATLAB 在数值计算、图形绘制和数据处理方面的基本功能。

二、实验环境本次实验使用的是 MATLAB R2020a 版本,运行在 Windows 10 操作系统上。

计算机配置为:Intel Core i5 处理器,8GB 内存。

三、实验内容及步骤1、矩阵运算创建一个 3×3 的矩阵 A,元素分别为 1 到 9。

创建一个 3×3 的零矩阵 B。

计算 A+B 和 A×B 的结果。

在 MATLAB 中,我们可以使用以下代码实现:```matlabA = 1 2 3; 4 5 6; 7 8 9;B = zeros(3);C = A + B;D = A B;disp(C);disp(D);```2、数据类型转换定义一个整数变量 x 为 5。

将 x 转换为双精度浮点数。

将 x 转换为字符串类型。

代码如下:```matlabx = 5;y = double(x);z = num2str(x);disp(y);disp(z);```3、函数调用定义一个函数 fun,输入参数为 x,返回值为 x 的平方。

调用函数 fun,计算 3 的平方。

函数定义及调用代码:```matlabfunction y = fun(x)y = x^2;endresult = fun(3);disp(result);```4、图形绘制绘制函数 y = sin(x)在区间0, 2π上的图像。

使用以下代码实现:```matlabx = 0:001:2pi;y = sin(x);plot(x, y);```四、实验结果1、矩阵运算A+B 的结果为:```matlab1 2 34 5 67 8 9```A×B 的结果为:```matlab0 0 00 0 00 0 0```2、数据类型转换将整数 5 转换为双精度浮点数,结果为 50000。

人工智能典型例题MATLAB仿真实验报告

人工智能典型例题MATLAB仿真实验报告

研究生(人工智能)报告题目:人工智能实验报告学号姓名专业电磁场与微波技术指导教师院(系、所)华中科技大学研究生院制1问题二利用一阶谓词逻辑求解猴子摘香蕉问题:房内有一个猴子,一个箱子,天花板上挂了一串香蕉,其位置如图所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上。

请定义必要的谓词,列出问题的初始化状态(即下图所示状态),目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。

图1 猴子香蕉问题解:⏹定义描述环境状态的谓词。

AT(x,w):x在t处,个体域:xϵ{monkey},wϵ{a,b,c,box};HOLD(x,t):x手中拿着t,个体域:tϵ{box,banana};EMPTY(x):x手中是空的;ON(t,y):t在y处,个体域:yϵ{b,c,ceiling};CLEAR(y):y上是空的;BOX(u):u是箱子,个体域:uϵ{box};BANANA(v):v是香蕉,个体域:vϵ{banana};⏹使用谓词、连结词、量词来表示环境状态。

问题的初始状态可表示为:S o:A T(monkey,a)˄EMPTY(monkey)˄ON(box,c)˄ON(banana,ceiling)˄CLEAR(b)˄BOX(box)˄BANANA(banana)要达到的目标状态为:S g:AT(monkey,box)˄HOLD(monkey,banana)˄ON(box,b)˄CLEAR(ceiling)˄CLEAR(c)˄BOX(box)˄BANANA(banana)⏹从初始状态到目标状态的转化, 猴子需要完成一系列操作, 定义操作类谓词表示其动作。

WALK(m,n):猴子从m走到n处,个体域:m,nϵ{a,b,c};CARRY(s,r):猴子在r处拿到s,个体域:rϵ{c,ceiling},sϵ{box,banana};CLIMB(u,b):猴子在b处爬上u;这3个操作也可分别用条件和动作来表示。

matlab 模拟 实验报告

matlab 模拟 实验报告

matlab 模拟实验报告《利用Matlab模拟的实验报告》摘要:本实验利用Matlab软件对某一特定系统进行了模拟实验。

通过对系统的建模和仿真,我们得出了一些有价值的结论,并对系统的性能进行了评估。

本文将详细介绍实验的目的、方法、结果和分析,以及对实验结果的讨论和总结。

1. 引言Matlab是一种强大的数学建模和仿真工具,广泛应用于工程、科学和技术领域。

利用Matlab进行系统仿真可以帮助我们更好地理解系统的行为和性能,优化系统设计,并预测系统在不同条件下的表现。

本实验旨在利用Matlab对某一特定系统进行仿真,以验证系统的性能和稳定性。

2. 实验目的本实验的主要目的是利用Matlab对某一特定系统进行建模和仿真,分析系统的动态响应和稳定性,并评估系统的性能。

具体来说,我们将通过仿真实验探讨系统的频率响应、阶跃响应和脉冲响应,以及系统的稳定性和鲁棒性。

3. 实验方法首先,我们对系统进行了建模,包括系统的传递函数、状态空间模型等。

然后,利用Matlab软件进行仿真实验,分别对系统的频率响应、阶跃响应和脉冲响应进行了分析。

最后,我们对仿真结果进行了统计和评估,得出了一些有价值的结论。

4. 实验结果与分析通过Matlab的仿真实验,我们得到了系统的频率响应曲线、阶跃响应曲线和脉冲响应曲线。

通过对这些曲线的分析,我们可以得出系统的动态特性和稳定性。

同时,我们还对系统的性能进行了评估,包括系统的超调量、调节时间等指标。

5. 结果讨论与总结通过对实验结果的讨论和总结,我们得出了一些结论和建议。

我们对系统的性能和稳定性进行了评估,发现系统在某些条件下存在一些问题,提出了一些建议和改进措施。

同时,我们也对Matlab软件在系统仿真中的应用进行了总结和展望。

结论本实验利用Matlab对某一特定系统进行了建模和仿真,得出了一些有价值的结论。

通过对系统的动态响应和稳定性进行分析,我们发现了系统存在的一些问题,并提出了一些建议和改进措施。

matlab实验报告

matlab实验报告

matlab实验报告引言:Matlab(矩阵实验室)是一款功能强大的数值计算和科学计算软件,广泛应用于工程、科学和经济等领域。

本实验报告将探讨我在使用Matlab进行实验过程中的心得体会和实验结果。

实验一:图像处理在这个实验中,我使用Matlab对一张图像进行了处理,并应用了各种图像处理算法。

这包括图像增强、边缘检测和图像分割等技术。

通过Matlab的图像处理工具箱,我能够轻松调用各种算法函数,并对图像进行快速处理。

实验结果表明,Matlab图像处理工具箱提供了丰富的函数和算法,极大地方便了我们的图像处理工作。

实验二:模拟信号处理模拟信号处理是Matlab中的一个重要应用领域。

在这个实验中,我模拟了一个带噪声的正弦信号,并使用Matlab进行了噪声滤波和频谱分析。

通过使用Matlab的滤波函数,我能够有效地去除信号中的噪声,并还原出原始信号。

同时,Matlab提供了功能强大的频谱分析工具,我可以轻松地对信号的频率特性进行分析和可视化。

实验三:数据分析与统计数据分析与统计是Matlab的另一个重要应用领域。

在这个实验中,我使用Matlab对一组实验数据进行了分析和统计。

通过使用Matlab的统计函数和工具,我能够计算出数据的均值、方差、标准差等统计指标,并绘制出数据的直方图和散点图。

这些统计分析结果对我的实验研究提供了有力的支持,并帮助我更好地理解实验数据。

实验四:数值计算与优化数值计算与优化是Matlab的核心功能之一。

在这个实验中,我使用Matlab进行了一组数值计算和优化实验。

通过使用Matlab的数值计算函数和优化工具箱,我能够快速计算出复杂的数学问题,并找到最优解。

同时,在进行优化实验时,我可以设置各种约束条件和目标函数,从而得到最优解的参数值。

这些数值计算和优化工具极大地提高了我的研究效率和准确度。

结论:通过这些实验,我深刻认识到Matlab的强大功能和广泛应用领域。

无论是图像处理、信号处理、数据分析还是数值计算与优化,Matlab都提供了丰富的函数和工具,让我们能够快速高效地完成实验和研究工作。

塔里木大学MATLAB及仿真应用实验报告4-1

塔里木大学MATLAB及仿真应用实验报告4-1

塔里木大学MATLAB及仿真应用实验报告实验要求:每一实验的源程序代码和实验结果要附带在实验报告后面。

1.使用命令文件直接实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。

(例题中使用的是函数文件的方法结果:源程序:clear allx=input('Please input x=:'); y=input('Please input y=:'); rho=sqrt(x*x+y*y);theta=atan(y/x);rhotheta2. 计算分段函数的值。

y={555+⨯+xxx>=<xx结果:源程序:clear allx=input('ÇëÊäÈë:');if x>=0y=x+5;elseif x<0y=5^x+5*x;endy3. 求[1,200]之间所有能被21整除的整数。

运行结果:源程序:clear allfor n=1:200while rem(n,21)==0disp(n);breakendend4. 从键盘输入一个三位整数,将它反向输出。

比如输入639,输出为936。

运行结果:源程序:clear all;x=input('ÇëÊäÈëÈýλÊý£º');a=rem(x,10);b=fix(x/10);c=rem(x,10);d=fix(x/100);z=a*100+c*10+d;disp(z)5. (1)分别用if语句和switch语句实现。

输入一个百分制成绩,要求输出成绩等级A,B,C,D,E.其中90-100分为A,80-89为B,70-79为C,60-69为D,60分以下为E,并且对不合理的成绩应该输出错误信息。

蝴蝶效应matlab程序,实验:使用Matlab对蝴蝶效应进行仿真的实验报告.doc

蝴蝶效应matlab程序,实验:使用Matlab对蝴蝶效应进行仿真的实验报告.doc

蝴蝶效应matlab程序,实验:使⽤Matlab对蝴蝶效应进⾏仿真的实验报告.doc实验:使⽤Matlab对蝴蝶效应进⾏仿真的实验报告.doc使⽤Matlab对“蝴蝶效应”(初值敏感性)进⾏仿真⼀、 实验⽬的1、掌握MATLAB⼯具的安装⽅法;2、掌握常⽤的MATLAB操作技能;3、熟悉常⽤MATLAB的绘图功能与使⽤技巧;4、初步了解MATLAB的程序设计⽅法。

⼆、 实验内容:1、某经济系统的⾮线性数学模型如下:x(L+1)=x(L)+aa.*x(L).*(-3.*(x(L).^2)-y(L).^2-z(L).^2-4.*x(L).*y(L)-4.*x(L).*z(L)-2.*y(L).*z(L)-2.*c1.*x(L)+5-b1-r);y(L+1)=y(L)+bb.*y(L).*(-3.*(y(L).^2)-x(L).^2-z(L).^2-4.*x(L).*y(L)-2.*x(L).*z(L)-4.*y(L).*z(L)-2.*c2.*y(L)+5-b2-r);z(L+1)=z(L)+cc.*z(L).*(-3.*(z(L).^2)-x(L).^2-y(L).^2-2.*x(L).*y(L)-4.*x(L).*z(L)-4.*y(L).*z(L)-2.*c3.*z(L)+5-b3-r);2、系统的参数分别为:b1=0.5;b2=0.4;b3=0.3;c1=0.1;c2=0.2;c3=0.3;r=0.4;aa=0.5;bb=0.3;cc=0.2;3、系统初值(系统初始状态)为:x(1)=0.2;y(1)=0.5;z(1)=0.8;系统初值微⼩变动后:x(1)=0.2;y(1)=0.5;z(1)=0.8001;4、上⾯特定参数下的经济系统对初始状态是否具有敏感性?若有,请使⽤Matlab软件,画出三个决策变量x,y,z对系统的初值敏感性分析图。

特定参数下的经济系统对初始状态具有敏感性。

系统初值(系统初始状态)为:x(1)=0.2;y(1)=0.5;z(1)=0.8,系统初值微⼩变动后:x(1)=0.2;y(1)=0.5;z(1)=0.8001。

MATLAB仿真实验报告

MATLAB仿真实验报告

MATLA仿真实验报告学院:计算机与信息学院课程:—随机信号分析姓名:学号:班级:指导老师:实验一题目:编写一个产生均值为1,方差为4的高斯随机分布函数程序, 求最大值,最小值,均值和方差,并于理论值比较。

解:具体的文件如下,相应的绘图结果如下图所示G仁random( 'Normal' ,0,4,1,1024);y=max(G1)x=mi n(G1)m=mea n(G1)d=var(G1)plot(G1);实验二题目:编写一个产生协方差函数为CC)=4e":的平稳高斯过程的程序,产生样本函数。

估计所产生样本的时间自相关函数和功率谱密度,并求统计自相关函数和功率谱密度,最后将结果与理论值比较。

解:具体的文件如下,相应的绘图结果如下图所示。

N=10000;Ts=0.001;sigma=2;beta=2;a=exp(-beta*Ts);b=sigma*sqrt(1-a*a);w=normrnd(0,1,[1,N]);x=zeros(1,N);x(1)=sigma*w(1);for i=2:Nx(i)=a*x(i-1)+b*w(i);end%polt(x);Rxx=xcorr(x0)/N;m=[-N+1:N-1];Rxx0=(sigma A2)*exp(-beta*abs(m*Ts));y=filter(b,a,x) plot(m*Ts,RxxO, 'b.' ,m*Ts,Rxx, 'r');periodogram(y,[],N,1/Ts);文件旧硯化)插入(1〕 ZMCD 克闻〔D ]窗口曲)Frequency (Hz)50 100 150 200 250 300 350 400 450 500 NH---.HP)&UO二balj/」-□歹实验三题目:仿真一个平均功率为1 的白噪声通带系统,白噪声为高斯分布,带通系统的两个截止频率分别为3KHZ和4KHZ求自相关函数和功率谱密度。

塔里木大学MATLAB及仿真应用实验报告7

塔里木大学MATLAB及仿真应用实验报告7

塔⾥⽊⼤学MATLAB及仿真应⽤实验报告7塔⾥⽊⼤学Matlab及仿真应⽤实验报告1.实验步骤与内容:1.某温室观测站测得某⽇0:00时⾄22:00时之间每隔2⼩时的室内温度(℃),(1)分别⽤四种插值⽅法求得该⽇室内2:30⾄12:30时之间每隔2⼩时各点的近似温度(℃)。

x=0:2:22;x1=2.5:2:12.5;y=[11,11,11.5,10,11,12,16,19,18,13,12,11];y1=interp1(x,y,x1,'linear')y2=interp1(x,y,x1,'nearest')y3=interp1(x,y,x1,'cubic')y4=interp1(x,y,x1,'spline')y1 =11.1250 11.1250 10.2500 11.2500 13.0000 16.7500y2 =11.0000 11.5000 10.0000 11.0000 12.0000 16.0000y3 =11.0781 11.2656 10.1094 11.2219 12.6893 16.9509y4 =11.2743 11.1541 10.0548 11.1816 12.7658 17.0053(2)绘制整个时间段的温度变化曲线,并绘制使⽤插值算法之后的曲线。

x=0:2:22;x1=0:0.1:22;y=[11,11,11.5,10,11,12,16,19,18,13,12,11];y1=interp1(x,y,x1,'linear');subplot(2,2,1);plot(x,y,x1,y1,'r-')y2=interp1(x,y,x1,'nearest');subplot(2,2,2);plot(x,y,x1,y2,'r-')y3=interp1(x,y,x1,'cubic');subplot(2,2,3);plot(x,y,x1,y3,'r-')y4=interp1(x,y,x1,'spline');subplot(2,2,4);plot(x,y,x1,y4,'r-')2. 某温室观测站测得某⽇0:00时⾄22:00时之间不同湿度下每隔2⼩时的室内温度(℃),(1)分别⽤四种插值⽅法求得该⽇室内2:30湿度为22的情况下的近似温度(℃)。

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

研究生(人工智能)报告题目:人工智能实验报告学号姓名专业电磁场与微波技术指导教师院(系、所)华中科技大学研究生院制1问题二利用一阶谓词逻辑求解猴子摘香蕉问题:房内有一个猴子,一个箱子,天花板上挂了一串香蕉,其位置如图所示,猴子为了拿到香蕉,它必须把箱子搬到香蕉下面,然后再爬到箱子上。

请定义必要的谓词,列出问题的初始化状态(即下图所示状态),目标状态(猴子拿到了香蕉,站在箱子上,箱子位于位置b)。

图1 猴子香蕉问题解:⏹定义描述环境状态的谓词。

AT(x,w):x在t处,个体域:xϵ{monkey},wϵ{a,b,c,box};HOLD(x,t):x手中拿着t,个体域:tϵ{box,banana};EMPTY(x):x手中是空的;ON(t,y):t在y处,个体域:yϵ{b,c,ceiling};CLEAR(y):y上是空的;BOX(u):u是箱子,个体域:uϵ{box};BANANA(v):v是香蕉,个体域:vϵ{banana};⏹使用谓词、连结词、量词来表示环境状态。

问题的初始状态可表示为:S o:AT(monkey,a)˄EMPTY(monkey)˄ON(box,c)˄ON(banana,ceiling)˄CLEAR(b)˄BOX(box)˄BANANA(banana)要达到的目标状态为:S g:AT(monkey,box)˄HOLD(monkey,banana)˄ON(box,b)˄CLEAR(ceiling)˄CLEAR(c)˄BOX(box)˄BANANA(banana)⏹ 从初始状态到目标状态的转化, 猴子需要完成一系列操作, 定义操作类谓词表示其动作。

WALK(m,n):猴子从m 走到n 处,个体域:m,n ϵ{a,b,c};CARRY(s,r):猴子在r 处拿到s ,个体域:r ϵ{c,ceiling},s ϵ{box,banana}; CLIMB(u,b):猴子在b 处爬上u ;这3个操作也可分别用条件和动作来表示。

条件直接用谓词公式表示,是为完成相应操作所必须具备的条件;当条件中的事实使其均为真时,则可激活操作规则,于是可执行该规则中的动作部分。

动作通过前后状态的变化表示,即通过从动作前删除或增加谓词公式来描述动作后的状态。

WALK(m,n):猴子从m 走到n 处 条件:AT(monkey,m) 动作:⎩⎨⎧),(),(n monkey AT m monkey AT 增加:删除:CARRY(s,r):猴子在r 处拿到s条件:AT(monkey,r)˄EMPTY(monkey)˄ON(s,r)˄BOX(box)˄BANANA(banana) 动作:⎩⎨⎧∧∧)(),(),()(r CLEAR s monkey HOLD r s ON monkey EMPTY 增加:删除:CLIMB(u,b):猴子在b 处爬上u条件:AT(monkey,b)˄HOLD(monkey,u)˄CLEAR(b)˄BOX(box)˄BANANA(banana)动作:⎩⎨⎧∧∧∧),()(),()(),(),(c u ON monkey EMPTY u monkey AT c CLEAR u monkey HOLD b monkey AT 增加:删除:⏹ 按照行动计划, 一步步进行状态替换, 直至目标状态。

AT(monkey,a)˄EMPTY(monkey)˄ON(box,c)˄ON(banana,ceiling)˄CLEAR(b)˄BOX(box)˄BANANA(banana)n c m a c a WALK 代换用代换用,),(⇓AT(monkey,c)˄EMPTY(monkey)˄ON(box,c)˄ON(banana,ceiling)˄CLEAR(b)˄BOX(box)˄ BANANA(banana)r box s c box c CARRY 代换用代换用,),(⇓AT(monkey,c)˄HOLD(monkey,box)˄ON(banana,ceiling)˄CLEAR(b)˄CLEAR(c)˄BOX(box)˄BANANA(banana)nbmcbcWALK代换用代换用,),(⇓AT(monkey,b)˄HOLD(monkey,box)˄ON(banana,ceiling)˄CLEAR(b)˄CLEAR(c)˄BOX(box)˄BANANA(banana)uboxbboxCLIMB代换用),(⇓AT(monkey,box)˄EMPTY(monkey)˄ON(box,b)˄ON(banana,ceiling)˄CLEAR(c)˄BOX(box)˄BANANA(banana)rceilingsbananaceilingbananaCARRY代换用代换用,),(⇓AT(monkey,box)˄HOLD(monkey,banana)˄ON(box,b)˄CLEAR(ceiling)˄CLEAR(c)˄BOX(bo x)˄BANANA(banana)(目标得解)猴子行动的规则序列是:WALK(a,c)→CARRY(c,box)→WALK(c,b)→CLIMB(box,b)→CARRY(banana,ceiling)当猴子执行某一个操作之前,需要检查当前状态是否可使所要求的条件得到满足,即证明当前状态是否蕴涵操作所要求的状态的过程。

在行动过程中,检查条件的满足性后才进行变量的代换。

代入新条件后的新状态如果是目标状态,则问题解决;否则看是否满足下面的操作,如果不满足或即使满足却又回到了原来的状态,那么代入无效。

#include <stdio.h>struct State{int monkey; /*-1:Monkey at A;0: Monkey at B;1:Monkey at C;*/int box; /*-1:box at A;0:box at B;1:box at C;*/int banana; /*Banana at B,Banana=0*/int monbox; /*-1: monkey on the box;1: monkey the box;*/};struct State States [150];char* routesave[150];/*function monkeygoto,it makes the monkey goto the other place*/void monkeygoto(int b,int i){int a;a=b;if (a==-1){routesave[i]="Monkey go to A";States[i+1]=States[i];States[i+1].monkey=-1;}else if(a==0){routesave[i]="Monkey go to B";States[i+1]=States[i];States[i+1].monkey=0;}else if(a==1){routesave[i]="Monkey go to C";States[i+1]=States[i];States[i+1].monkey=1;}else{printf("parameter is wrong"); }}/*end function monkeyygoto*//*function movebox,the monkey move the box to the other place*/void movebox(int a,int i){int B;B=a;if(B==-1){routesave[i]="monkey move box to A";States[i+1]=States[i];States[i+1].monkey=-1;States[i+1].box=-1;}else if(B==0){routesave[i] = "monkey move box to B";States[i+1]=States[i];States[i+1].monkey=0;States[i+1].box=0;}else if(B==1){routesave[i] = "monkey move box to C";States[i+1]=States[i];States[i+1].monkey=1;States[i+1].box=1;}else{printf("parameter is wrong");}}/*end function movebox*//*function climbonto,the monkey climb onto the box*/void climbonto(int i){routesave[i]="Monkey climb onto the box";States[i+1]=States[i];States[i+1].monbox=1;}/*function climbdown,monkey climb down from the box*/void climbdown(int i){routesave[i]="Monkey climb down from the box";States[i+1]=States[i];States[i+1].monbox=-1;}/*function reach,if the monkey,box,and banana are at the same place,the monkey reach banana*/void reach(int i){routesave[i]="Monkey reach the banana"; }/*output the solution to the problem*/void showSolution(int i){int c;printf ("%s \n", "Result to problem:");for(c=0; c<i+1; c++){printf ("Step %d : %s \n",c+1,routesave[c]);}printf("\n");}/*perform next step*/void nextStep(int i){int c;int j;if(i>=150){printf("%s \n", "steplength reached 150,have problem ");return;}for (c=0; c<i; c++) /*if the current state is same to previous,retrospect*/{if(States[c].monkey==States[i].monkey&& States[c].box==States[i].box&&States[c].banana ==States[i].banana&&States[c].monbox==State s[i].monbox){return;}}if(States[i].monbox==1&&States[i].monkey==0 &&States[i].banana==0&&States[i].box==0) {showSolution(i);printf("Press any key to continue \n");getchar();/*to save screen for user,press any key to continue*/return;}j=i+1;if(States[i].monkey==0){if(States[i].box==0){if(States[i].monbox==-1){climbonto(i);reach(i+1);nextStep(j);/*monkeygoto(-1,i);nextStep(j);monkeygoto(0,i);nextStep(j);movebox(-1,i);nextStep(j);movebox(0,i);nextStep(j);*/}else{reach(i+1);nextStep(j);/*climbdown(i);nextStep(j);*/}}else if(States[i].box==1){/*monkeygoto(-1,i);nextStep(j);*/monkeygoto(1,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else /*box==-1*/{monkeygoto(-1,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}/*end if*/if(States[i].monkey==-1){if(States[i].box==-1){if(States[i].monbox==-1){movebox(0,i);.nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else{climbdown(i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}else if(States[i].box==0){monkeygoto(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else{monkeygoto(1,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}/*end if*/if(States[i].monkey==1){if (States[i].box==1){if(States[i].monbox==-1){movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else{climbdown(i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}else if(States[i].box==-1){monkeygoto(-1,i);nextStep(j);movebox(0,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}else{monkeygoto(0,i);nextStep(j);movebox(0,i);nextStep(j);climbonto(i);reach(i+1);nextStep(j);}}/*end if*/}/*end nextStep*/int main(){States[0].monkey=-1;States[0].box=1; States[0].banana=0; States[0].monbox=-1;nextStep(0); }2问题三求解函数逼近问题有21组单输入矢量P和相对应的目标矢量T,试采用Matlab设计神经网络来实现这对数组的函数关系。

相关文档
最新文档