共轭梯度法为求解线性方程组而提出。后来,人们把这种方法用于求解无约束最优化问题, 使之成为一种重要的最优化方法。 共轭梯度法的基本思想是把共轭性与最速下降方法相结合, 利用已知点处的梯度构造一组共 轭方向, 并沿这组方向进行搜索, 求出目标函数的极小点。 根据共轭方向的基本性质, 这种 方法具有二次终止性。 在各种优化算法中, 共轭梯度法是非常重要的一种。 其优点是所需存 储量小,具有步收敛性,稳定性高,而且不需要任何外来参数。 共轭方向 无约束最优化方法的核心问题是选择搜索方向 . 在本次实验中 , 我们运用基于共轭方向的一种 算法 — 共轭梯度法 三.算法流程图: 四.实验结果: (1). 实验函数 f=(3*x1-cos(x2*x3)-1/2)^2+(x1^2-81*(x2+0.1)+sin(x3)+1.06)^2+(exp(-x1*x2)+20*x3+ 1/3*(10*3.14159-3))^2; 给定初始点 (0,0,0) , k=1 ,最 大迭代次数 n d 确定搜索方向 进 退 法 确 定 搜 索 区 间 分割法确定最 优步长
上传时间: 2016-05-08
上传用户:saren11
% 生成训练样本集 clear all; clc; P=[110 0.807 240 0.2 15 1 18 2 1.5; 110 2.865 240 0.1 15 2 12 1 2; 110 2.59 240 0.1 12 4 24 1 1.5; 220 0.6 240 0.3 12 3 18 2 1; 220 3 240 0.3 25 3 21 1 1.5; 110 1.562 240 0.3 15 3 18 1 1.5; 110 0.547 240 0.3 15 1 9 2 1.5]; 0 1.318 300 0.1 15 2 18 1 2]; T=[54248 162787 168380 314797; 28614 63958 69637 82898; 86002 402710 644415 328084; 230802 445102 362823 335913; 60257 127892 76753 73541; 34615 93532 80762 110049; 56783 172907 164548 144040]; @907 117437 120368 130179]; m=max(max(P)); n=max(max(T)); P=P'/m; T=T'/n; %-------------------------------------------------------------------------% pr(1:9,1)=0; %输入矢量的取值范围矩阵 pr(1:9,2)=1; bpnet=newff(pr,[12 4],{'logsig', 'logsig'}, 'traingdx', 'learngdm'); %建立BP神经网络, 12个隐层神经元,4个输出神经元 %tranferFcn属性 'logsig' 隐层采用Sigmoid传输函数 %tranferFcn属性 'logsig' 输出层采用Sigmoid传输函数 %trainFcn属性 'traingdx' 自适应调整学习速率附加动量因子梯度下降反向传播算法训练函数 %learn属性 'learngdm' 附加动量因子的梯度下降学习函数 net.trainParam.epochs=1000;%允许最大训练步数2000步 net.trainParam.goal=0.001; %训练目标最小误差0.001 net.trainParam.show=10; %每间隔100步显示一次训练结果 net.trainParam.lr=0.05; %学习速率0.05 bpnet=train(bpnet,P,T); %------------------------------------------------------------------------- p=[110 1.318 300 0.1 15 2 18 1 2]; p=p'/m; r=sim(bpnet,p); R=r'*n; display(R);
上传时间: 2016-05-28
上传用户:shanqiu
实验源代码 //Warshall.cpp #include<stdio.h> void warshall(int k,int n) { int i , j, t; int temp[20][20]; for(int a=0;a<k;a++) { printf("请输入矩阵第%d 行元素:",a); for(int b=0;b<n;b++) { scanf ("%d",&temp[a][b]); } } for(i=0;i<k;i++){ for( j=0;j<k;j++){ if(temp[ j][i]==1) { for(t=0;t<n;t++) { temp[ j][t]=temp[i][t]||temp[ j][t]; } } } } printf("可传递闭包关系矩阵是:\n"); for(i=0;i<k;i++) { for( j=0;j<n;j++) { printf("%d", temp[i][ j]); } printf("\n"); } } void main() { printf("利用 Warshall 算法求二元关系的可传递闭包\n"); void warshall(int,int); int k , n; printf("请输入矩阵的行数 i: "); scanf("%d",&k); 四川大学实验报告 printf("请输入矩阵的列数 j: "); scanf("%d",&n); warshall(k,n); }
上传时间: 2016-06-27
上传用户:梁雪文以
msp430The LDC1312 and LDC1314 are 2- and 4-channel, 1• Easy-to-use – minimal configuration required 12-bit inductance to digital converters (LDCs) for • Measure up to 4 sensors with one IC inductive sensing solutions. With multiple channels • Multiple channels support environmental and and support for remote sensing, the LDC1312 and aging compensation LDC1314 enable the performance and reliability benefits of inductive sensing to be realized at minimal• Multi-channel remote sensing provides lowest cost and power. The products are easy to use, onlysystem cost requiring that the sensor frequency be within 1 kHz • Pin-compatible medium and high-resolution and 10 MHz to begin sensing. The wide 1 kHz to 10 options MHz sensor frequency range also enables use of very small PCB coils, further reducing sensing– LDC1312/4: 2/4-ch 12-bit LDC solution cost and size.– LDC1612/4: 2/4-ch 28
上传时间: 2016-07-22
上传用户:tongmoonsky
2.54mm单排针,单排双塑,180度,H=1.5/2.0/2.5mm 2.54mm双排针,双排双塑,180度,H=1.5/2.0/2.5mm 2.54mm单/双排弱,90度,H=1.5/2.0/2.5mm 2.54mm单/双排针,SMT,H=1.5/2.0/2.5mm 2.54mm单排双塑,双排双塑,SMT,H=1.5/2.0/2.5mm 2.54mm三排针,90/180度,H=2.5mm 2.54mm单/双排针,打K,H=1.5/2.0/2.5mm 2.54mm双排针,90/180度,H=4.3mm 2.54mm双排针,90/180度,H=7.4mm 2.54mm双排针,双塑,90度,塑宽=9.7mm,H=2.54mm 2.00mm排针系列: 2.00mm单排
标签: SMD贴片排针 90度贴片排针 90度SMT排针 SMD PIN针 PH贴片排针 90度贴片排针 SMD针座
上传时间: 2016-08-03
上传用户:sztfjm
2.54mm单排针,单排双塑,180度,H=1.5/2.0/2.5mm 2.54mm双排针,双排双塑,180度,H=1.5/2.0/2.5mm 2.54mm单/双排弱,90度,H=1.5/2.0/2.5mm 2.54mm单/双排针,SMT,H=1.5/2.0/2.5mm 2.54mm单排双塑,双排双塑,SMT,H=1.5/2.0/2.5mm 2.54mm三排针,90/180度,H=2.5mm 2.54mm单/双排针,打K,H=1.5/2.0/2.5mm 2.54mm双排针,90/180度,H=4.3mm 2.54mm双排针,90/180度,H=7.4mm 2.54mm双排针,双塑,90度,塑宽=9.7mm,H=2.54mm 2.00mm排针系列: 2.00mm单排
标签: 板对板连接器 排针排母连接器 排针连接器 排母连接器 SMT排针 双塑SMT排针 双塑SMD排针 双塑贴片排针
上传时间: 2016-08-03
上传用户:sztfjm
建立单链表,完成链表(带表头结点)的基本操作:建立链表、插入、删除、查找、输出等。其他需要的辅助函数自行补充。 单链表存储图书信息,功能和输入输出形式及界面可参考“第2章 2.1-2.5 源程序” 。
标签: 数据结构
上传时间: 2016-12-19
上传用户:hyukoh
建立单链表,完成链表(带表头结点)的基本操作:建立链表、插入、删除、查找、输出等。(参见教材算法2.6-2.12),其他需要的辅助函数自行补充。 单链表存储图书信息,功能和输入输出形式及界面可参考“第2章 2.1-2.5 源程序” 。
上传时间: 2016-12-19
上传用户:hyukoh
设有二元函数 f(x,y) = f(x) + f(y) 其中: f(x) = f(x-1) * x (x >1) f(x)=1 (x=1) f(y) = f(y-1) + f(y-2) (y> 2) f(y)=1 (y=1,2) 请编程建立 3 个并发协作进程,它们分别完成 f(x,y)、f(x)、f(y)
上传时间: 2017-04-21
上传用户:WWSAE
LED 一般是恒流操作的,如何改变 LED 的亮度呢?答案就是 PWM 控制。在一定的 频率的方波中,调整高电平和低电平的占空比,即可实现。比如我们用低电平点亮一个 LED 灯,我们假设把一个频率周期分为 10 个时间等份,如果方波中的高低电平占空比是 9:1, 这是就是一个比较暗的亮度,如果方波中高低电平占空比是 10:0,这时,全部是高电平, 灯是灭的。如果占空比是 5:5,就是一个中间亮度,如果高低比是 1:9,是一个比较亮的 亮度,如果高低是 0:10,这时全部是低电平,就是最亮的。 实际上应用中,电视屏幕墙中的几十百万 LED 象素都是这样控制的,而且每一个象素 都有红绿蓝 3 个 LED,每个 LED 可以变化的亮度是几百到几万或者更多的级别,以实现真 彩色的显示。还有在您的手机中,背光灯的亮度如果是可以变化的,也应该是这种工作方式。 目前的城市彩灯也有很多都使用了 LED,需要控制亮度是也是 PWM 控制。 下面来分析我们的例程,在这个例程中,我们将定时器 2 溢出定为 1/1200 秒。每 10 次脉冲输出一个 120HZ 频率。这每 10 次脉冲再用来控制高低电平的 10 个比值。这样,在 每个 1/120 秒的方波周期中,我们都可以改变方波的输出占空比,从而控制 LED 灯的 10 个 级别的亮度。 为什么输出方波的频率要 120HZ 这么高?因为如果频率太低,人眼就会看到闪烁感 觉。一般起码要在 60HZ 以上才感觉好点,120HZ 就基本上看不到闪烁,只能看到亮度的变 化了。 下面请看程序,程序中有比较多的注释: ――――――――――――――――――――――― #define uchar unsigned char //定义一下方便使用 #define uint unsigned int #define ulong unsigned long #include <reg52.h> //包括一个 52 标准内核的头文件 sbit P10 = P1^0; //要控制的 LED 灯 sbit K1= P3^2; //按键 K1 uchar scale;//用于保存占空比的输出 0 的时间份额,总共 10 份 char code dx516[3] _at_ 0x003b;//这是为了仿真设置的 //模拟 PWM 输出控制灯的 10 个亮度级别 void main(void) // 主程序 { uint n; RCAP2H =0xF3; //赋 T2 的预置值,溢出 1 次是 1/1200 秒钟 RCAP2L =0x98; TR2=1; //启动定时器 ET2=1; //打开定时器 2 中断 EA=1; //打开总中断 while(1) //程序循环 { ;//主程序在这里就不断自循环,实际应用中,这里是做主要工作 for(n=0;n<50000;n++); //每过一会儿就自动加一个档次的亮度 scale++; if(scale==10)scale=0; } } //1/1200 秒定时器 2 中断 timer2() interrupt 5 { static uchar tt; //tt 用来保存当前时间在一秒中的比例位置 TF2=0; tt++; if(tt==10) //每 1/120 秒整开始输出低电平 { tt=0; if(scale!=0) //这里加这一句是为了消除灭灯状态产生的鬼影 P10=0; } if(scale==tt) //按照当前占空比切换输出高电平 P10=1; } ―――――――――――――――――― 在主程序中,每延时一段时间,就自动换一个占空比,以使亮度自动变化,方便观察。 编译,运行,看结果。 可以看到,LED 的亮度以每种亮度 1 秒左右不断变化,共有 10 个级别。
上传时间: 2017-11-06
上传用户:szcyclone