大林算法实验报告(20200623034811)
实验报告算法分析
实验报告算法分析实验报告:算法分析引言在计算机科学领域中,算法是解决问题的一种方法或步骤的描述。
通过对算法的分析,我们可以评估其效率和性能,从而选择最优的算法来解决特定的问题。
本实验报告旨在介绍算法分析的基本概念和方法,并通过实例来说明其应用。
一、算法分析的背景算法分析是计算机科学中的重要研究领域,它关注如何评估算法的效率和性能。
在实际应用中,我们经常面临着需要在有限的时间内解决大规模问题的挑战。
因此,选择一个高效的算法是至关重要的。
算法分析的目标是通过定量分析算法的时间复杂度和空间复杂度,为选择最佳算法提供依据。
二、算法分析的方法1. 时间复杂度分析时间复杂度是衡量算法执行时间的一种指标。
通常使用大O表示法来表示时间复杂度。
通过计算算法执行所需的基本操作次数,可以得到算法的时间复杂度。
常见的时间复杂度有O(1)、O(log n)、O(n)、O(n log n)和O(n^2)等。
时间复杂度越低,算法执行所需的时间越短。
2. 空间复杂度分析空间复杂度是衡量算法内存使用的一种指标。
通过计算算法执行所需的额外空间大小,可以得到算法的空间复杂度。
常见的空间复杂度有O(1)、O(n)和O(n^2)等。
空间复杂度越低,算法所需的内存空间越小。
三、算法分析的应用算法分析在计算机科学的各个领域都有广泛的应用。
以下是几个常见的应用示例:1. 排序算法排序算法是计算机科学中的经典问题之一。
通过对不同排序算法的时间复杂度进行分析,可以选择最适合特定需求的排序算法。
例如,快速排序算法的平均时间复杂度为O(n log n),在大规模数据排序中表现出色。
2. 图算法图算法是解决图结构相关问题的一种方法。
通过对图算法的时间复杂度和空间复杂度进行分析,可以选择最适合解决特定图问题的算法。
例如,广度优先搜索算法的时间复杂度为O(V+E),其中V和E分别表示图的顶点数和边数。
3. 动态规划算法动态规划算法是解决具有重叠子问题性质的问题的一种方法。
算法设计与分析实验报告
实验报告题目实验一递归与分治策略一、实验目的1.加深学生对分治法算法设计方法的基本思想、基本步骤、基本方法的理解与掌握;2.提高学生利用课堂所学知识解决实际问题的能力;3.提高学生综合应用所学知识解决实际问题的能力。
二、实验内容设计一个递归和分治算法,找出数组的最大元素,找出x在数组A中出现的次数。
三、实验要求(1)用分治法求解…问题;(2)再选择自己熟悉的其它方法求解本问题;(3)上机实现所设计的所有算法;四、实验过程设计(算法设计过程)1.设计一个递归算法,找出数组的最大元素。
2.设计一个分治算法,找出x在数组A中出现的次数。
3.写一个主函数,调用上述算法。
五、实验结果分析(分析时空复杂性,设计测试用例及测试结果)时间复杂性:最好情况下,O(n)最坏情况下:O(nlog(n)空间复杂性分析:O(n)六、实验体会通过写递归与分治策略实验,更加清楚的知道它的运行机理,分治法解题的一般步骤:(1)分解,将要解决的问题划分成若干规模较小的同类问题;(2)求解,当子问题划分得足够小时,用较简单的方法解决;(3)合并,按原问题的要求,将子问题的解逐层合并构成原问题的解。
做实验重在动手动脑,还是要多写写实验,才是硬道理。
七、附录:(源代码)#include"stdio.h"#define ElemType intint count(ElemType a[],int i,int j,ElemType x){int k=0,mid; //k用来计数,记录数组中x出现的次数if(i==j){if(a[i]==x) k++;return k;}else{mid=(i+j)/2;k+=count(a,i,mid,x);k+=count(a,mid+1,j,x);}return k;}ElemType Maxitem(ElemType a[],int n){ElemType max=a[n-1],j;if(n==1){max=a[n-1];return max;}else{j=Maxitem(a,n-1);if(j>max) max=j;return max;}}void main(void){ElemType a[]={1,5,2,7,3,7,4,8,9,5,4,544,2,4,123};ElemType b;ElemType x;int n;b=Maxitem(a,15);printf("数组的最大元素为%d\n",b);printf("输入想要计数的数组元素:\n");scanf("%d",&x);n=count(a,0,14,x);printf("%d在数组中出现的次数为%d次\n",x,n);}实验二动态规划——求解最优问题一、实验目的1.加深学生对动态规划算法设计方法的基本思想、基本步骤、基本方法的理解与掌握;2.提高学生利用课堂所学知识解决实际问题的能力;3.提高学生综合应用所学知识解决实际问题的能力。
算法实验报告
算法分析与设计实验报告算法实现题3-4(数学三角形问题):第一部分 实验内容(1)熟悉动态规范算法的思想。
(2)熟悉分析问题的最优子结构性质。
(3)掌握动态规划算法解决问题的一般思路第二部分 问题及算法1.求解问题的算法描述(1)问题描述: 给定n行数字组成的数字三角形,计算从三角形的自顶到底的一条路径,使该路径经过的数字的总和最大。
(2)算法描述:求第一层到最底层的“最大路径长度”,只需要求出第二层数字中到最底层的“最大路径长度”加上第一层的数字即可。
依靠此思想将问题分解成n-1个子问题,从倒数第二层开始计算每层到最底层的“最大路径长度”。
将数学三角形存在二维矩阵A[n][n]中,对于非底层的每个数向下走时只有两个选择,每次选择较大的数相加,自底至上的计算,将每个数到达底层的“最大路径长度”储存在数组A中,最终A[0][0]存储的就是第一层到最底层的“最大路径长度”。
(3)算法伪代码://求第一层到最底层的“最大路径长度”int triangle(int a[SIZE][SIZE],int n){– 2 to 0)for (row = nfor (col = 0 to row)if (A[row + 1][col] > A[row + 1][col + 1])A[row][col] += A[row + 1][col];elseA[row][col] += A[row + 1][col+1];return A[0][0];}2. 算法实现的关键技巧(1)分解原问题为规模更小的子问题,并且分析问题是否具有最优子结构性质。
求第一层到最底层的“最大路径长度”,可以看作求第一层的数加上第二层数字中到最底层的“最大路径长度”。
第二层某数到最底层的“最大路径长度”等于该数加上第三层中该数可以到达的数字到最底层的“最大路径长度”……这样分解下去,就可以将问题分为多个子问题。
大问题的最优解包括子问题的最优解,满足最优子结构性质。
算法设计与分析的实验报告
实验一递归与分治策略一、实验目的1.加深学生对分治法算法设计方法的基本思想、基本步骤、基本方法的理解与掌握;2.提高学生利用课堂所学知识解决实际问题的能力;3.提高学生综合应用所学知识解决实际问题的能力。
二、实验内容1、①设a[0:n-1]是已排好序的数组。
请写二分搜索算法,使得当搜索元素x不在数组中时,返回小于x的最大元素位置i和大于x的最小元素位置j。
当搜索元素在数组中时,i和j相同,均为x在数组中的位置。
②写出三分搜索法的程序。
三、实验要求(1)用分治法求解上面两个问题;(2)再选择自己熟悉的其它方法求解本问题;(3)上机实现所设计的所有算法;四、实验过程设计(算法设计过程)1、已知a[0:n-1]是一个已排好序的数组,可以采用折半查找(二分查找)算法。
如果搜索元素在数组中,则直接返回下表即可;否则比较搜索元素x与通过二分查找所得最终元素的大小,注意边界条件,从而计算出小于x的最大元素的位置i和大于x的最小元素位置j。
2、将n个元素分成大致相同的三部分,取在数组a的左三分之一部分中继续搜索x。
如果x>a[2(n-1)/3],则只需在数组a的右三分之一部分中继续搜索x。
上述两种情况不成立时,则在数组中间的三分之一部分中继续搜索x。
五、实验结果分析二分搜索法:三分搜索法:时间复杂性:二分搜索每次把搜索区域砍掉一半,很明显时间复杂度为O(log n)。
(n代表集合中元素的个数)三分搜索法:O(3log3n)空间复杂度:O(1)。
六、实验体会本次试验解决了二分查找和三分查找的问题,加深了对分治法的理解,收获很大,同时我也理解到学习算法是一个渐进的过程,算法可能一开始不是很好理解,但是只要多看几遍,只看是不够的还要动手分析一下,这样才能学好算法。
七、附录:(源代码)二分搜索法:#include<iostream.h>#include<stdio.h>int binarySearch(int a[],int x,int n){int left=0;int right=n-1;int i,j;while(left<=right){int middle=(left+right)/2;if(x==a[middle]){i=j=middle;return 1;}if(x>a[middle])left=middle+1;else right=middle-1;}i=right;j=left;return 0;}int main(){ int a[10]={0,1,2,3,4,5,6,7,8,9};int n=10;int x=9;if(binarySearch(a,x,n))cout<<"找到"<<endl;elsecout<<"找不到"<<endl;return 0;}实验二动态规划——求解最优问题一、实验目的1.加深学生对动态规划算法设计方法的基本思想、基本步骤、基本方法的理解与掌握;2.提高学生利用课堂所学知识解决实际问题的能力;3.提高学生综合应用所学知识解决实际问题的能力。
算法分析实验三报告
《算法设计与分析》实验报告目录一、实验内容描述和功能分析.二、算法过程设计.三、程序调试及结果(附截图).四、源代码(附源代码).一、实验内容描述和功能分析.1.矩阵连乘问题内容描述:给定n个矩阵{A1,A2,…,An},其中Ai与Ai+1是可乘的,i=1,2 ,…,n-1。
如何确定计算矩阵连乘积的计算次序,使得依此次序计算矩阵连乘积需要的数乘次数最少。
功能分析:输入包含多组测试数据。
第一行为一个整数C,表示有C 组测试数据,接下来有2*C行数据,每组测试数据占2行,每组测试数据第一行是1个整数n,表示有n个矩阵连乘,接下来一行有n+1个数,表示是n个矩阵的行及第n个矩阵的列,它们之间用空格隔开。
输出应该有C行,即每组测试数据的输出占一行,它是计算出的矩阵最少连乘积次数。
例如:输入:1输出:7500310 100 5 502.Pebble Merging内容描述:在一个圆形操场的四周摆放着n 堆石子。
现要将石子有次序地合并成一堆。
规定每次只能选相邻的2 堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。
试设计一个算法,计算出将n堆石子合并成一堆的最小得分和最大得分。
编程任务:对于给定n堆石子,编程计算合并成一堆的最小得分和最大得分。
功能分析:输入由多组测试数据组成。
每组测试数据输入的第1 行是正整数n,1≤n≤100,表示有n堆石子。
第二行有n个数,分别表示每堆石子的个数。
对应每组输入,输出的第1 行中的数是最小得分;第2 行中的数是最大得分。
例如:输入:4 输出:434 45 9 54二、算法过程设计.1.矩阵连乘问题矩阵连乘问题是通过设置数组,利用数组的横竖坐标来进行矩阵对应行与列的计算。
2.Pebble Merging这个问题也是跟数组相关,通过寻找数组中的最大和最小值来进行计算。
三、程序调试及结果(附截图).1.矩阵连乘问题2.Pebble Merging四、源代码(附源代码).1.矩阵连乘问题#include <stdio.h>int main(){ int a[ 50 ] , b[ 50 ][ 50 ] , c[ 50 ][50 ] , z , n;int i , r , j , k , t;scanf("%d",&z);while (z --){ scanf("%d",&n);for (i = 0 ; i <= n ; ++ i) scanf("%d",& a[ i ]);for (i = 1 ; i <= n ; ++ i) b[ i ][ i ] = 0;for (r = 2 ; r <= n ; ++ r)for (i = 1 ; i <= n - r + 1 ; ++ i){ j = i + r - 1;b[ i ][ j ] = b[i + 1][ j ] + a[i - 1] * a[ i ] * a[ j ];c[ i ][ j ] = i;for (k = i + 1 ; k < j ; ++ k){ t = b[ i ][ k ] + b[k + 1][ j ] + a[i - 1] * a[ k ] * a[ j ];if (t < b[ i ][ j ])b[ i ][ j ] = t , c[ i ][ j ] = k;}}printf ("%d\n" , b[ 1 ][ n ]);}return 0;}2.Pebble Merging#include <stdio.h>int main(){ int dpmin[ 200 ][ 200 ] , min[ 200 ][ 200 ] , mins;int dpmax[ 200 ][ 200 ] , max[ 200 ][ 200 ] , maxs;int a[ 200 ] , i , n , j , k , temp , l;while (scanf ("%d" , & n) != EOF){ for (i = 1 ; i <= n ; ++ i) scanf ("%d" , & a[ i ]);for (i = 1 ; i < n ; ++ i) a[i + n] = a[ i ];for (i = 1 ; i < 2 * n ; ++ i){ min[ i ][ i ] = max[ i ][ i ] = 0;dpmax[ i ][ i ] = dpmin[ i ][ i ] = a[ i ];dpmax[ i ][i + 1] = dpmin[ i ][i + 1] = a[ i ] + a[i + 1];min[ i ][i + 1] = max[ i ][i + 1] = a[ i ] + a[i + 1];}for (i = 1 ; i < n - 1; ++ i)for (l = 1 , j = 2 + i ; j < 2 * n ; ++ j , ++ l){ for (k = l + 1 ; k <= j ; ++ k){ if (k == l + 1){ dpmin[ l ][ j ] = dpmin[ l ][k - 1] + dpmin[ k ][ j ] + min[ l ][k - 1] + min[ k ][ j ];if ( l == k - 1 && k != j)min[ l ][ j ] = a[ l ] + min[ k ][ j ];elseif (l != k - 1 && k == j)min[ l ][ j ] = min[ l ][k - 1] + a[ k ];elsemin[ l ][ j ] = min[ l ][k - 1] + min[ k ][ j ]; dpmax[ l ][ j ] = dpmax[ l ][k - 1] + dpmax[ k ][ j ] + max[ l ][k - 1] + max[ k ][ j ];if ( l == k - 1 && k != j)max[ l ][ j ] = a[ l ] + max[ k ][ j ];elseif (l != k - 1 && k == j)max[ l ][ j ] = max[ l ][k - 1] + a[ k ];elsemax[ l ][ j ] = max[ l ][k - 1] + max[ k ][ j ];continue ;}temp = dpmin[ l ][k - 1] + dpmin[ k ][ j ] + min[ l ][k - 1] + min[ k ][ j ];if (temp < dpmin[ l ][ j ]){ dpmin[ l ][ j ] = temp;if ( l == k - 1 && k != j)min[ l ][ j ] = a[ l ] + min[ k ][ j ];elseif (l != k - 1 && k == j)min[ l ][ j ] = min[ l ][k - 1] + a[ k ];elsemin[ l ][ j ] = min[ l ][k - 1] + min[ k ][ j ];}temp = dpmax[ l ][k - 1] + dpmax[ k ][ j ] + max[ l ][k - 1] + max[ k ][ j ];if (temp > dpmax[ l ][ j ]){ dpmax[ l ][ j ] = temp;if ( l == k - 1 && k != j)max[ l ][ j ] = a[ l ] + max[ k ][ j ];elseif (l != k - 1 && k == j)max[ l ][ j ] = max[ l ][k - 1] + a[ k ];elsemax[ l ][ j ] = max[ l ][k - 1] + max[ k ][ j ];} } }mins = dpmin[ 1 ][ n ]; maxs = dpmax[ 1 ][ n ];for (i = 2 ; i <= n ; ++ i){ if (mins > dpmin[ i ][i + n - 1])mins = dpmin[ i ][i + n - 1];if (maxs < dpmax[ i ][i + n - 1])maxs = dpmax[ i ][i + n - 1];}printf ("%d\n%d\n" , mins , maxs);}return 23;}。
达林算法实验报告
一、实验目的1. 理解达林算法的基本原理和设计过程。
2. 掌握如何利用达林算法解决具有纯滞后特性的控制系统问题。
3. 分析达林算法在不同纯滞后时间下的控制效果,并验证理论分析的正确性。
二、实验原理在工业生产中,许多过程对象含有纯滞后特性,这会对自动控制系统的稳定性、动态性能和适应性产生不利影响。
当纯滞后时间与对象的惯性时间常数之比超过0.5时,常规的PID控制往往难以获得良好的控制性能。
达林算法(大林算法)是一种针对具有纯滞后特性的控制系统提出的特殊控制方法,可以有效解决这一问题。
达林算法的基本思想是:在控制器的设计中,采用一个相当于连续一阶惯性环节的传递函数来代替最少拍多项式,如果对象有纯滞后,则传递函数应包含有同样的纯滞后环节。
通过调整达林算法中的参数,可以实现对具有纯滞后特性的控制系统的有效控制。
三、实验仪器1. MATLAB 6.5软件一套2. 个人PC机一台四、实验步骤1. 建模与仿真(1)根据实验要求,构建具有纯滞后特性的被控对象模型。
(2)在MATLAB中编写代码,实现达林算法的控制器设计。
(3)设置不同的纯滞后时间,进行仿真实验。
2. 参数调整与优化(1)根据仿真结果,分析达林算法在不同纯滞后时间下的控制效果。
(2)调整达林算法中的参数,优化控制效果。
(3)记录参数调整过程及结果。
3. 结果分析与讨论(1)对比分析不同纯滞后时间下,达林算法的控制效果。
(2)分析参数调整对控制效果的影响。
(3)总结达林算法在解决具有纯滞后特性的控制系统问题中的应用。
五、实验结果与分析1. 仿真结果通过仿真实验,得到了不同纯滞后时间下,达林算法的控制效果。
结果表明,随着纯滞后时间的增加,系统的稳定性逐渐降低,动态性能变差,超调和持续振荡现象加剧。
2. 参数调整在实验过程中,对达林算法中的参数进行了调整。
通过调整参数,可以改善控制效果,降低超调,缩短调节时间,提高系统的稳定性。
3. 结果讨论实验结果表明,达林算法在解决具有纯滞后特性的控制系统问题中具有较好的应用效果。
计控实验3 大林算法
T
2、用MATLAB和Simulink仿真并检查输出结果是否符 合控制系统设计要求。
二、实验内容 2 S e 1、已知被控对象的传递函数 G ( s) s( s 1) ,若采样期 T=1s,用大林算法设计数字控制器D(Z),并用MATLAB 检验系统的性能。
HG(Z)
r(t) T R(Z) E(Z) × ○ D(Z) T H0(S) G(S)
实验三:大林算法
一、实验目的:
1、对应纯滞后的被控对象,应采用大林算法。 (1)大林算法的设计准则:对于一阶或二阶滞后系 统,设计数字控制器D(z),使整个闭环系统的滞后与 被控对象的滞后相同,消除滞后环节对系统稳定性的 s Ke 影响。 G( s ) 1 T 1s 一阶滞后系统可表示为: e s Gc (s) 1 THS 闭环系统的传递函数:
(二)Simulink的模块库
通用模块
连续模块 非连续模块 离散模块 接收模块
输入信号源
数学运算 端口与子系统
1.输入信号源模 块库(Sources)
主要有: Constant(常数) Step(阶跃信号) Ramp(线性信号) Sine Wave(正弦信号) Signal Generator(信 号发生器) From File(文件获取) From Workspace(矩阵 读数据) Clock(仿真时钟) In(输入模块)
1、启动MATLAB
下载软件或用光盘进行MATLAB的安装。
点击 图标 ,启动MATLAB,出现操作窗口:
操作界面分为以下几部分: (1)菜单 (2)工具栏 (3)工作空间窗口
(4)命令窗口 (5)历史命令窗口口
命令 窗口
历史 命令 窗口 开始按钮
大林算法实验报告
实验4 大林算法工业设计和调试实验目的:1.认识和理解大林控制算法控制大时延系统的机理和效果。
2掌握实际控制系统的大林控制算法的设计、实现和调试方法及技术。
实验内容:1.测试系统开环阶跃响应求得被控对象的近似传递函数。
2.对被控对象近似传递函数进行等效离散化。
3.基于被控对象等效离散化模型设计大林控制算法,编写出实现程序,将其嵌入到实验软件中。
4.将设计的大林算法投入运行,并经过调试获得预期控制性能。
5.记下大林控制算法的控制效果。
实验原理及说明:大林算法是针对工业生产过程中含有纯滞后的被控对象所研究的控制算法,即在调节时间允许的情况下,要求系统没有超调量或只有在允许范围中的很小的超调量。
大林算法的设计目标是设计一个数字调节器,使整个闭环系统所期望的传递函数相当于一个延迟环节和一个惯性环节的串联,并期望整个闭环系统的纯滞后时间和被控对象的滞后时间相同,并且,纯滞后时间与采样周期是整数倍关系。
实验中采样周期为1秒,k=0.15,t=22秒,t1=55秒。
.大林算法中涉及的被调对象的参数:对象是一阶惯性滞后环节,<1>对象的放大倍数Kp:Kp=△PV/△OP 阶跃比,这是开环的静态参数,与PID的放大倍数K不是一回事;<2>对象的时间常数T:干扰阶跃引起PV变化,从变化起到稳定值约2/3处的时间值,不包括滞后时间;<3>滞后时间T2:干扰阶跃开始到PV开始变化这一段滞后时间,包括:纯滞后时间及容量过渡滞后时间;2. 整个系统的闭环传递函数相当于是一阶惯性环节, 这是大林算法的期望环节:<1> 输入R(t)是回路的设定值SP;输出Y(t)是回路的PV值;<2> 此一阶惯性环节的放大倍数为1,即稳定时PV=SP; 最终偏差接近零;<3>此期望环节的纯滞后时间应等于被调节对象的纯滞后时间;<4>此期望环节的闭环时间常数:这是待定的期望参数,为不引起回路的小幅振荡,这个时间值应选用大于等于被调对象的时间常数,3. 这些参数如果不精确,将引起大林算法的不稳定性,导致调节质量变坏;。
大林算法实验报告
大林算法实验报告一、引言大林算法,即算数编码(Arithmetic Coding),是一种用于数据压缩的算法,它能够将较长的数据序列转化为一个较小的编码,从而实现数据的压缩和传输。
本实验旨在通过实现大林算法,深入理解其原理和应用。
二、实验方法1.实验环境:2.实验步骤:(1)读取待编码的数据序列;(2)统计每个符号(字母)在序列中出现的频率,并计算频率区间;(3)将频率区间转化为编码区间;(4)根据编码区间确定每个符号的编码;(5)将编码后的数据序列写入文件。
三、实验结果与分析1.数据压缩效果:在本次实验中,我们使用一个英文文本文件作为待编码的数据序列进行测试。
原始的数据序列大小为500KB,经过大林编码压缩后的文件大小为200KB。
可以看出,通过大林算法进行数据压缩,能够有效地减小文件的大小,实现数据的高效传输。
2.编码效率:大林算法通过统计符号在序列中出现的频率,并将频率区间转化为编码区间,从而实现对序列的编码。
由于频率区间的计算过程中需要对整个序列进行遍历,因此在处理较大的数据序列时,算法的时间复杂度较高。
在本次实验中,我们测试了不同大小的数据序列,发现大林算法的编码效率随数据序列大小的增加而下降。
3.解码效果:解码是大林算法的反向操作,将编码后的数据序列转化为原始的数据序列。
在本次实验中,我们将编码后的数据序列进行解码,并与原始的数据序列进行对比,结果显示解码效果非常好,几乎没有数据丢失。
四、实验总结通过本次实验,我们深入了解了大林算法的原理和应用。
大林算法是一种高效的数据压缩算法,能够将较长的数据序列转化为一个较小的编码,实现数据的高效传输。
然而,大林算法的时间复杂度较高,在处理较大的数据序列时,需要耗费较长的时间。
在实际应用中,需要根据具体的需求选择适合的压缩算法。
以上为大林算法实验报告。
大林控制算法实验报告
一、实验目的1. 理解大林控制算法的基本原理及其设计过程。
2. 掌握大林控制算法在计算机控制系统中的应用。
3. 通过实验验证大林控制算法在解决纯滞后系统控制问题上的有效性。
二、实验原理大林控制算法(Dahlin Control Algorithm)是一种针对具有纯滞后特性的控制对象而设计的新型控制算法。
该算法的核心思想是将期望的闭环响应设计成一阶惯性加纯延迟形式,然后通过反向设计得到满足这种闭环响应的控制器。
对于具有纯滞后特性的被控对象,其传递函数可以表示为:\[ G(s) = \frac{K}{T_s s + 1} \cdot e^{-\frac{s}{T}} \]其中,\( K \) 为系统增益,\( T_s \) 为采样周期,\( T \) 为纯滞后时间。
大林控制算法要求选择闭环传递函数 \( W(s) \) 时,采用相当于连续一阶惯性环节的 \( W(s) \) 来代替最少拍多项式。
如果对象有纯滞后,则 \( W(s) \) 应包含有同样的纯滞后环节。
带有纯滞后的控制系统闭环传递函数为:\[ W(s) = \frac{K}{T_s s + 1} \cdot e^{-\frac{s}{T}} \]根据大林控制算法,可以设计出满足期望闭环响应的数字控制器 \( D(z) \):\[ D(z) = \frac{K_1 e^{-\frac{1}{T}}}{(1 - e^{-\frac{1}{T_1}}) (1 - e^{-\frac{1}{T_2}})} \cdot \frac{1}{[1 - e^{-\frac{1}{T_1}} (1 - e^{-\frac{1}{T_2}})] (1 - e^{-\frac{1}{T} z^{-1}})} \]其中,\( K_1 \)、\( T_1 \) 和 \( T_2 \) 为大林算法的参数。
三、实验仪器1. MATLAB 6.5软件一套2. 个人PC机一台四、实验步骤1. 启动MATLAB软件,创建一个新的脚本文件。
算法分析实验一报告
《算法设计与分析》实验报告目录一、实验内容描述和功能分析.二、算法过程设计.三、程序调试及结果(附截图).四、源代码(附源代码).一、实验内容描述和功能分析.1.彼岸内容描述:突破蝙蝠的包围,yifenfei来到一处悬崖面前,悬崖彼岸就是前进的方向,好在现在的yifenfei已经学过御剑术,可御剑轻松飞过悬崖。
现在的问题是:悬崖中间飞着很多红,黄,蓝三种颜色的珠子,假设我们把悬崖看成一条长度为n的线段,线段上的每一单位长度空间都可能飞过红,黄,蓝三种珠子,而yifenfei 必定会在该空间上碰到一种颜色的珠子。
如果在连续3段单位空间碰到的珠子颜色都不一样,则yifenfei就会坠落。
比如经过长度为3的悬崖,碰到的珠子先后为“红黄蓝”,或者“蓝红黄”等类似情况就会坠落,而如果是“红黄红”或者“红黄黄”等情况则可以安全到达。
现在请问:yifenfei安然抵达彼岸的方法有多少种?输入:输入数据首先给出一个整数C,表示测试组数。
然后是C组数据,每组包含一个正整数n (n<40)。
输出:对应每组输入数据,请输出一个整数,表示yifenfei安然抵达彼岸的方法数。
每组输出占一行。
例如:输入:2 输出:92 2132.统计问题内容描述:在一无限大的二维平面中,我们做如下假设:1、每次只能移动一格;2、不能向后走(假设你的目的地是“向上”,那么你可以向左走,可以向右走,也可以向上走,但是不可以向下走);3、走过的格子立即塌陷无法再走第二次;求走n步不同的方案数(2种走法只要有一步不一样,即被认为是不同的方案)。
输入:首先给出一个正整数C,表示有C组测试数据接下来的C行,每行包含一个整数n (n<=20),表示要走n步。
输出:请编程输出走n步的不同方案总数;每组的输出占一行。
例如:输入:2 输出:31 723.Message Decowing内容描述:The cows are thrilled because they've just learned about encrypting messages. Theythink they will be able to use secret messages to plot meetings with cows on other farms.Cows are not known for their intelligence. Their encryption method is nothing like DES or BlowFish or any of those really good secret coding methods. No, they are using a simple substitution cipher.The cows have a decryption key and a secret message. Help them decode it. The key looks like this:yrwhsoujgcxqbativndfezmlpkWhich means that an 'a' in the secret message really means 'y'; a 'b' in the secret message really means 'r'; a 'c' decrypts to 'w'; and so on. Blanks are not encrypted; they are simply kept in place. Input text is in upper or lower case, both decrypt using the same decryption key, keeping the appropriate case, of course.输入:* Line 1: 26 lower case characters representing the decryption key* Line 2: As many as 80 characters that are the message to be decoded输出:* Line 1: A single line that is the decoded message. It should have the same length as the second line of input.例如:输入:eydbkmiqugjxlvtzpnwohracsfKifq oua zarxa suar bti yaagrj fa xtfgrj输出:Jump the fence when you seeing me coming二、算法过程设计.第一题是一个典型的递归问题,通过对开始的几项附初始值,通过循环利用通项公式依次递归调用公式便可以得到第n项的值。
大林算法控制实验报告
一、实验目的1. 理解大林算法的基本原理和设计过程。
2. 掌握大林算法在计算机控制系统中的应用。
3. 分析大林算法对控制系统性能的影响。
二、实验仪器1. PC计算机一台2. MATLAB 6.5软件一套3. EL-AT-III型计算机控制系统实验箱一台三、实验原理大林算法是一种针对具有纯滞后特性的控制系统而设计的控制算法。
该算法通过将期望的闭环响应设计成一阶惯性加纯延迟,然后根据这种闭环响应设计控制器,从而实现对具有纯滞后特性的系统的控制。
四、实验内容1. 实验被控对象的构成:(1)惯性环节的仿真电路及传递函数。
(2)纯延时环节的构成与传递函数。
(3)被控对象的开环传递函数。
2. 大林算法的闭环传递函数:闭环传递函数为:\[ G(s) = \frac{K}{T_{s}^{N} \left( \frac{s}{T} + 1 \right)} \]其中,\( K \)为增益,\( T \)为时间常数,\( N \)为纯滞后时间。
3. 大林算法的数字控制器:数字控制器为:\[ D(z) = \frac{(1 - e^{-\frac{1}{T}})(1 - e^{-\frac{1}{T_{1}}z^{-1}})}{K \left(1 - e^{-\frac{1}{T_{1}}}z^{-1}\right) \left[1 - e^{-\frac{1}{T}}z^{-1} - (1 - e^{-\frac{1}{T}})z^{-N}\right]} \]其中,\( K \)为增益,\( T \)为时间常数,\( T_{1} \)为时间常数,\( N \)为纯滞后时间。
五、实验步骤1. 启动计算机,打开MATLAB软件。
2. 编写程序,搭建被控对象模型。
3. 根据被控对象模型,设计大林算法控制器。
4. 对大林算法控制器进行仿真,观察控制效果。
5. 分析大林算法对控制系统性能的影响。
六、实验结果与分析1. 仿真结果:(1)大林算法控制器的阶跃响应。
大林算法实验
实验一:大林算法控制器设计与仿真一、实验目的1、学会安装MATLAB 及基本使用方法。
1、掌握大林控制算法的基本概念和实现方法;2、掌握在MA TLAB 下大林算法控制器的调试方法;3、观察大林控制算法控制器的控制效果;4、比较大林控制算法和常规PID 的控制效果。
5、选做:比较大林算法与SMITH 预估补偿控制器的控制效果。
二、实验属性设计、验证性实验三、 实验内容1、对象为一阶惯性加纯滞后系统,其开环传递函数为:14.0)(76.0+=-S e S G S采样时间为0.5S ,大林算法的期望闭环响应设计为1)(76.0+=Φ-S e S Sα。
α为控制系数,大林控制算法的MATLAB 程序如后所附。
四、实验要求1、实验中:在MATLAB 下输入程序,设置控制系数α=0.5,检验控制效果,调整系数α的值(0.1至1之间),比较控制效果,找出并记录最佳控制时的α值及控制结果;2、完成实验报告。
附录 大林控制算法的MATLAB 程序% Delay Control with Dalin Algorithmclear all;close all;ts=0.5;%Plantsys1=tf([1],[0.4,1],'inputdelay',0.76);dsys1=c2d(sys1,ts,'zoh');[num1,den1]=tfdata(dsys1,'v');% Ideal closed loopsys2=tf([1],[0.15,1],'inputdelay',0.76);dsys2=c2d(sys2,ts,'zoh');% Design Dalin controllerdsys=1/dsys1*dsys2/(1-dsys2);[num,den]=tfdata(dsys,'v');u_1=0.0;u_2=0.0;u_3=0.0;u_4=0.0;u_5=0.0;y_1=0.0;error_1=0.0;error_2=0.0;error_3=0.0;ei=0;for k=1:1:50time(k)=k*ts;rin(k)=1.0; %Tracing Step Signalyout(k)=-den1(2)*y_1+num1(2)*u_2+num1(3)*u_3;error(k)=rin(k)-yout(k);M=1;if M==1 %Using Dalin Methodu(k)=(num(1)*error(k)+num(2)*error_1+num(3)*error_2+num(4)*error_3...-den(3)*u_1-den(4)*u_2-den(5)*u_3-den(6)*u_4-den(7)*u_5)/den(2); elseif M==2 %Using PID Methodei=ei+error(k)*ts;u(k)=1.0*error(k)+0.10*(error(k)-error_1)/ts+0.50*ei;end%----------Return of dalin parameters------------u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);y_1=yout(k);error_3=error_2;error_2=error_1;error_1=error(k);endplot(time,rin,'b',time,yout,'r');xlabel('time(s)');ylabel('rin,yout');。
实验二 大林算法实验报告
实验二 大林算法实验1. 实验目的(1)理解大林算法的基本原理。
(2)掌握大林算法的设计过程。
2. 实验仪器(1) MATLAB 6.5软件 一套(2) 个人PC 机 一台3. 实验原理在许多控制系统中,特别是过程控制系统中,由于物料能量的传递或能量物质的转换,使系统小的被控制量往往具有纯滞后特性,由自动控制理论可知,滞后特性的存在对自动控制系统是极其不利的,它使系统中控制决策的适应性降低甚至失效,造成控制系统的稳定性下降或者根本不能稳定。
在工业生产中,大多数过程对象含有较大的纯滞后特性。
被控对象的纯滞后时间τ使系统的稳定性降低,动态性能变坏,易引起超调和持续振荡。
对象的纯滞后特性给控制器的设计带来困难。
一般地,当对象的纯滞后时间τ与对象的惯性时间常数m T 之比超过0.5时,采用常规的PID 控制很难获得良好的控制性能。
因此,具有纯滞后特性的对象属于比较难以控制的一类对象,对其控制需采用特殊处理方法,即用大林算法可解决此问题。
大林算法要求在选择闭环Z 传递函数W(Z)时,采用相当于连续一阶惯性环节的W(Z)来代替最少拍多项式,如果对象有纯滞后,则W(Z)应包含有同样的纯滞后环节(闭环控制系统的纯滞后时间等于被控对象的纯滞后时间)。
带有纯滞后的控制系统如图1所示: ZOH D(Z)r (t)e (t)u (k)y (t)G 0(S)G(Z)e (k)E(Z)U(Z)Y(Z)图1 带有纯滞后的控制系统被控对象传递函数为:s e S S G 76.0014.01)(-+= 目标传递函数为:s T s e s W s5.0,115.0)(76.0=+=- 大林算法所设计的控制器为:)(1)(1)()(z G z W z W z D -=, 其中)]([)()],([)(s W Z z W s G Z z G ==对于大林算法控制器D(Z),计算机输入为E (Z ),输出为U (Z ),有:33221133221101)()()(------++++++==Z P Z P ZP Z K Z K Z K K Z E Z U Z D将D (Z )式写成差分方程,则有:3322113221103---------+++=K K K K K K K K U P U P U P E K E K E K E K U 。
大林算法控制系统设计完整版
大林算法控制系统设计 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】扬州大学能源与动力工程学院课程设计报告题目:大林算法控制系统设计课程:计算机控制技术课程设计专业:电气工程及其自动化班级:姓名:学号:第一部分任务书《计算机控制技术》课程设计任务书一、课题名称大林算法控制系统设计二、课程设计目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。
三、课程设计内容设计以89C51单片机和ADC、DAC等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。
1. 硬件电路设计:89C51最小系统加上模入电路(用ADC0809等)和模出电路(用TLC7528和运放等);由运放实现的被控对象。
2. 控制算法:大林控制算法。
3. 软件设计:主程序、中断程序、A/D转换程序、滤波程序、大林算法控制程序、D/A输出程序等。
四、课程设计要求1. 模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(-5V~+5V)。
2. 模入电路用两个通道分别采集被控对象的输出和给定信号。
3. 每个同学选择不同的被控对象:4. 对象的纯延迟环节seτ-用软件通过数组单元移位实现。
5. 定时中断间隔选取50ms,采样周期T要求既是采样中断间隔的整数倍,又满足(0.21)Tτ=-。
大林算法实验报告
大林算法实验报告 一、实验目的1、掌握大林控制算法的基本概念和实现方法;2、进一步熟悉MATLAB 的使用方法;3、掌握在MA TLAB 下大林算法控制器的调试方法;4、观察振铃现象,并且尝试消除振铃现象二、实验原理1.大林算法的原理及推导大林算法是IBM 公司的大林(Dahlin)在1968年提出了一种针对工业生产过程中含有纯滞后对象的控制算法。
其目标就是使整个闭环系统的传递函数 相当于一个带有纯滞后的一阶惯性环节。
该算法具有良好的控制效果。
大林控制算法的设计目标是使整个闭环系统所期望的传递函数φ(s ) 相当于一个延迟环节和一个惯性环节相串联,即:整个闭环系统的纯滞后时间和被控对象G 0(s )的纯滞后时间τ相同。
闭环系统的时间常数为T τ ,纯滞后时间τ与采样周期T 有整数倍关系, τ=NT 。
其控制器形式的推导的思路是用近似方法得到系统的闭环脉冲传递函数,然后再由被控系统的脉冲传递函数,反推系统控制器的脉冲传递函数。
由大林控制算法的设计目标,可知整个闭环系统的脉冲传递函数应 当是零阶保持器与理想的φ(s )串联之后的Z 变换,即φ(z )如下:对于被控对象为带有纯滞后的一阶惯性环节即:其与零阶保持器相串联的的脉冲传递函数为:1()1ss eT s ττφ-=+1/1()1(1)()=()11T s ττT/T s NT T -Y z e ee z z Z z R z s T s ez ττφ------⎡⎤--==⋅=⋅⎢⎥+-⎣⎦011()11s NTs Ke KeG s T s T sτ--==++11/1/1111()11T T Ts sN T T eKe eG z Z Kz s T s ezτ-------⎡⎤--=⋅=⎢⎥+-⎣⎦于是相应的控制器形式为:11111(1)(1)()(1)1(1)T T T T T T T T N e e z D z K e e z e z τττ-----------=⎡⎤----⎣⎦2.振铃现象及其消除按大林算法设计的控制器可能会出现一种振铃现象,即数字控制器的输出以二分之一的采样频率大幅度衰减振荡,会造成执行机构的磨损。
大林算法课程设计报告
微型计算机控制技术课程设计报告班级:自动化901ABC一、课题名称大林算法控制系统设计二、课程设计目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。
《计算机控制技术》是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。
计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。
通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。
三、课程设计内容e s G(s)已知被控对象的传递函数为:s 1采样周期为T=0.5s ,用大林算法设计数字控制器D(z) ,并分析是否会产生振铃现象。
四、课程设计要求1、用大林算法设计数字控制器D(z) ;2、在Simulink仿真环境画出仿真框图及得出仿真结果,画出数字控制;3、绘制并分析数字控制器的振铃现象;4、对振铃现象进行消除;5、得出仿真结果并进行仿真分析;6、程序清单及简要说明;7、成设计说明书(列出参考文献,以及仿真结果及分析)。
五、大林算法控制系统方案设计在控制系统应用中,纯滞后环节往往是影响系统动态特性的不利因素。
工业过程中如钢铁,热工和化工过程中往往会有纯滞后环节。
对这类系统,控制器如果设计不当,常常会引起系统的超调和持续振荡。
由于纯延迟的存在,使被控量对干扰、控制信号不能即时的反映。
即使调节机构接受控制信号后立即动作,也要经过纯延时间t 后才到达被控量,使得系统产生较大的超调量和较长的调节时间。
当t>=0.5 T(T 为对象的时间常数)时,实践证明用PID 控制很难获得良好的控制品质。
大林算法实验报告心得体会
大林算法实验报告心得体会
大林算法作为一种高效的最小生成树算法,在实际应用中具有广泛的应用。
在本次实验中,我通过对大林算法的学习和实际操作,对其有了更深入的了解和体会。
首先,在进行实验时,我深刻体会到了算法时间复杂度对程序执行效率的影响。
相较于普通的Prim算法和Kruskal算法,大林算法在时间复杂度方面有着明显的优势,因此在处理大规模数据时表现更为突出,能够有效地提高算法的执行效率。
其次,我在实验中发现,对于一个图来讲,其最小生成树可能并不唯一。
通过大林算法得到的最小生成树可能与其他算法得到的最小生成树不完全一致,但是它们的最小权值和都是相同的。
这启示我们,在实际应用中,要根据实际需求选择合适的算法,不一定非得选择最小生成树唯一的算法。
最后,我认为在进行算法实验时要注重对算法思想的理解和运用。
仅仅是对代码的简单模仿,往往难以理解算法的本质。
在实验过程中,要多思考,多调试,在对算法原理有更深入了解的情况下才能更好地掌握算法。
总的来说,本次大林算法的实验使我对该算法有了更加深刻的理解,并且让我认识到在实际应用中选择算法要考虑到算法的效率和实际需求,希望今后能够更好地运用所学知识。
算法实验报告总结
算法实验报告总结算法实验报告总结一、实践题目第一题:二分查找二、问题描述输入n值(1<=n<=1000),n个非降序排列的整数以及查找的数x,使用二分查找x,输出x所在的下标(0~n-1)及比较次数。
若x不存在,输出-1和比较次数。
三、算法描述1.关键部分算法描述:int binary_search(vectorv,int key){int left=1,right=v.size()-1,mid;while(left<=right){mid=(left+right)/2;if(v[mid]else if(v[mid]>key) right=mid-1;else if(v[mid]==key) return mid;}return -1;}2.算法查找方式描述首先查找这个序列是有序的,从中间开始查找,如果小于或大于中间值,那么相应的最高和最低下标就要更改为中间值减一或加一。
如此重复直到找到相应的值为止。
四、算法时间及空间复杂度分析(要有分析过程)时间复杂度:O(h)=O(log2n)设共有n个元素,经过while()的n值由n,n/2,n/4,…,n/2^k,由于n/2^k 要取整,即令n/2^k = 1,可得k = log2n.空间复杂度:0(n) = 1,没有申请其他空间。
五、心得体会(对本次实践收获及疑惑进行总结)1、一个组进行编写代码,效率比自己一个编写的时候要高。
因为不用再某个地方卡很久,会有组员相互解释。
2、更深一步理解了二分法,我觉得二分法是比较容易理解也比较容易实现的算法,但是二分法的要求是顺序存储以及数据都按照一定的规律排好序的,要求比较多,我们在实际应用的时候要根据需求灵活使用。
3、PTA上的错误有时候让人摸不着头脑,我们应该怎么提高答题的准确率呢?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
大林算法实验报告
一、实验目的
1、 掌握大林控制算法的基本概念和实现方法;
2、 进一步熟悉MATLAB 的使用方法;
3、 掌握在MATLAB 下大林算法控制器的调试方法;
4、 观察振铃现象,并且尝试消除振铃现象
二、实验原理
1■大林算法的原理及推导
大林算法是IBM 公司的大林(Dahlin)在1968年提出了一种针对工业生产过程中含有纯 滞后对象的控制算法。
其目标就是使整个闭环系统的传递函数
相当于一个带有纯滞后的一 阶惯性环节。
该算法具有良好的控制效果。
大林控制算法的设计目标是使整个闭环系统所期望的传递函数
0 (s)
相当于一个延迟环节和一个惯性环节相串联,即 : 整个闭环系统的纯滞后时间和被控对象 G0(s)的纯滞后时间T 相同。
闭环系统的时间常数为 T T ,纯滞后时间T 与采样周期T 有整数倍关系,
T =NT 。
其控制器形式的推导的思路是用近似方法得到系统的闭环脉冲传递函数,然后再由被 控系统的脉冲传递函数,反推系统控制器的脉冲传递函数。
由大林控制算法的设计目标,可知整个闭环系统的脉冲传递函数应
当是零阶保持器与理想的 0 (s)串联之后的Z 变换,即0 (z)如下:
R(z) _ s Ts 1 1- e T z 对于被控对象为带有纯滞后的一阶惯性环节即: s NTs Ke G o (s)- 1 Tp Ke 1 「s 其与零阶保持器相串联的的脉冲传递函数为:
(s)二 1 Ts 1
G (z)=z3 心
.s 1 + T 1S 」
K Z — NT T/T 1 1 _ e ;
1 ■ e z
于是相应的控制器形式为: (仁「厲)(仁/仁一1
) K (I e
TTl )1 - ―1 -(1 e TT )^N_1
2■振铃现象及其消除 按大林算法设计的控制器可能会出现一种振铃现象,即数字控制器 的输出以二分之一的采样频率大幅度衰减振荡,会造成执行机构的磨损。
在有交互作用的多参数控制系统中,振铃现象还有可能影响到系统的稳 定性。
衡量振铃现象的强烈程度的量是振铃幅度 RA (Ringing Amplitude)。
它的定义是:控制器在单位阶跃输入作用下,第零次输出幅度与第一次 输出幅度之差值。
当被控对象为纯滞后的一阶惯性环节时,数字控制器
D(z)为: D 注 ⑴e TT
)(i -宀\ D(Z) T T 1 T T -1 T T N -1 K(1- e J 1- e "z - (1- e f)z ]
由此可以得到振铃幅度为: T/T T/T 1 T/T 1 -T/T
RA= ( e ) -( e 1
p e - e 于是,如果选择 T T >T1,则RA W 0,无振铃现象;如果选择 T T < T1, 则有振铃现象。
由此可见,当系统的时间常数
T T 大于或者等于被控对象的
时间常数T1时,即可消除振铃现象。
三、实验内容
已知某过程对象的传递函数为:
期望的闭环系统时间常数
T 0 = 0.25s ,采样周期 T =0.5s 。
要求:
(1) 适用大林算法设计数字控制器;
(2) 判断有无振铃现象,若有则修改控制器消除之,仿真并分析系统在单位阶跃响应下 的输出结果;
(3) 利用PID 控制器控制该对象,使得系统在单位阶跃信号下的响应满足超调量不超过 20%,衰减比为4:1,调节时间不超过 4s ;
⑷分析以上两种方法的优缺点。
四、实验过程
G (s )二 3e -0.5s
0.6s 1
(1)大林算法设计数字控制器已知:
T o = 0.25s
将其带入:
T =0.5s K=3 T1=0.6 N=1
D(z) =
(1-「几)(17勿才1) K(1eT)_1e TT zJ(1e TT
)zZ
可以得到D( z)的相关表达式。
并用MATLAB莫拟如下: 得到图像如下
(2)无振铃现象
(3)PID算法设计如下:
得取PID 值分别为:
P=0.3
1=0.1 D=0.086
得图像: 到控制所需的条件。
第二种方法设计简单,但是实验过程较复杂,需多次尝试。
J I I L
0123456789 10。