matlab编程实例神级训练(用MATLAB,编程怎么做)

本文目录
- 用MATLAB,编程怎么做
- MATLAB编程与应用系列-第4章 字符、元胞和结构数组(5)
- 求大神帮忙,matlab编程!
- 用matlab编程,谢谢大神
- BP神经网络matlab编程问题,给出11个输入数据和2个输出数据,进行训练的程序要求能运行并出相应的结果
- 用MATLAB编程实验以下
- 采用matlab编程:曲线运动高手请指教!!!
- 基于matlab或C#的神经网络编程
- matlab编程,对大神来说很简单的
- matlab编程问题,建立BP神经网络
用MATLAB,编程怎么做
我刚刚编了一个小程序,希望能帮助你。
clc;
all=50;
rent=1000;
add=50;
fix=100;
In_max=0;
for i=0:50
In=(rent+add*i)*(all-i)-fix*(all-i);
if In》In_max
In_max=In; number=i;
end
end
realrent=rent+add*number
In_max
结果输出:
realrent =
1800
In_max =
57800
MATLAB编程与应用系列-第4章 字符、元胞和结构数组(5)
结构数组的基本组成是结构(Structure),每个结构包含多个域(Fields)。数据只能存储在域中,与元胞数组一样,结构数组也可以存储任何类型的数据,但是从一定意义上讲,结构数组组织数据的能力比元胞数组要强一些。本节讲述结构数组的一些基本操作。
结构数组可以通过直接对域进行赋值来创建,也可以通过MATLAB提供的函数struct来创建。下面通过示例来讲解结构数组的创建方法。
结构数组可以通过结构数组标识直接获取整个结构数组,或通过域名来获取结构数组中某个域中存储的具体内容,或通过MATLAB提供的函数getfield来获取某个域中存储的具体内容。要获取域中的具体内容,需要预先知道结构数组的各域的名称,为此MATLAB还提供了查询结构数组中各域名的函数fieldnames方便使用。
MATLAB提供了修改结构数组中域存储内容的函数setfield。下面通过示例演示该函数的具体使用。
本章重点介绍了MATLAB提供的3种重要的数据类型的创建及相关操作,这3种数据类型分别是:字符数组、元胞数组和结构数组。理解和掌握这3种数据类型是进一步学习MATLAB的基础。
字符数组部分使用大量的实例重点介绍了简单和复杂字符数组的创建方法、字符数组的比较操作、字符串的查找和替换操作以及字符数组与其他数据类型之间的相互转化操作等内容。大量的实例使得读者可以轻松的掌握字符数组的相关操作。
元胞数组部分首先介绍了元胞数组中元胞和元胞中所包含的内容为两个不同的范畴,并且对应的是两种截然不同的操作,分别为元胞外标识和元胞内编址。在此基础上通过实例介绍了元胞数组的多种创建方法、元胞数组内容的访问以及元胞数组内容的显示等内容。
结构数组部分首先介绍了结构数组的定义,然后通过实例重点介绍了结构数组的创建以及对元胞数组中元素进行访问和修改等操作相关的内容。与元胞数组一样,结构数组也可以存储任何类型的数据,但是从一定意义上讲,结构数组组织数据的能力比元胞数组要强一些。
求大神帮忙,matlab编程!
写得比较长,但这样容易懂
%(2)
clear
clc
x=linspace(-2,2,21);
y=linspace(-1,1,21);
=meshgrid(x,y);
z=X.*exp(-X.^2-Y.^2);
surf(X,Y,z)
%(3)
x=;
y=;
p=polyfit(x,y,3);
f=@(x) p(1)*x.^3+p(2)*x.^2+p(3)*x+p(4);
syms x;
y=p(1)*x.^3+p(2)*x.^2+p(3)*x+p(4)
Root=fzero(f,1)
F25=feval(f,2.5)
df=diff(y,’x’,1)
用matlab编程,谢谢大神
function output = Untitled(input)
num = num_crop(input);
if num(1,1)^3 + num(1,2)^3 + num(1,3)^3 == input
output = floor(input/10) + num(1,3)*100;
else
temp = (sum(num)+21) * 10;
num = num_crop(temp);
% exchange
num(1,1) = num(1,1) + num(1,2);
num(1,2) = num(1,1) - num(1,2);
num(1,1) = num(1,1) - num(1,2);
% step2
temp = num_crop(num(1,3)*9);
num(1,3) = temp(1,2);
output = num(1,1)*100 + num(1,2)*10 + num(1,3);
end
end
function num = num_crop(input)
temp = floor(input/10);
num(1,3) = input - temp * 10;
temp = floor(temp/10);
num(1,2) = floor(input/10) - temp * 10;
temp = floor(temp/10);
num(1,1) = floor(input/100) - temp * 10;
end
BP神经网络matlab编程问题,给出11个输入数据和2个输出数据,进行训练的程序要求能运行并出相应的结果
给你一个我的程序,如果自己做不了可以联系我:1526208341
动量梯度下降算法训练 BP 网络
训练样本定义如下:
输入矢量为
p =[-1 -2 3 1
-1 1 5 -3]
目标矢量为 t =
close all
clear
echo on
clc
% NEWFF——生成一个新的前向神经网络
% TRAIN——对 BP 神经网络进行训练
% SIM——对 BP 神经网络进行仿真
pause
% 敲任意键开始
clc
% 定义训练样本
% P 为输入矢量
P=;
% T 为目标矢量
T=;
pause;
clc
% 创建一个新的前向神经网络
net=newff(minmax(P),,{’tansig’,’purelin’},’traingdm’)
% 当前输入层权值和阈值
inputWeights=net.IW{1,1}
inputbias=net.b{1}
% 当前网络层权值和阈值
layerWeights=net.LW{2,1}
layerbias=net.b{2}
pause
clc
% 设置训练参数
net.trainParam.show = 50;
net.trainParam.lr = 0.05;
net.trainParam.mc = 0.9;
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
pause
clc
% 调用 TRAINGDM 算法训练 BP 网络
=train(net,P,T);
pause
clc
% 对 BP 网络进行仿真
A = sim(net,P)
% 计算仿真误差
E = T - A
MSE=mse(E)
pause
clc
echo off
用MATLAB编程实验以下
数据处理也就包括标准化,归一化处理,很简单,我给你个例子,你可以仿照学习下:
%% 该代码为基于带动量项的BP神经网络语音识别
%% 清空环境变量
clc
clear
%% 训练数据预测数据提取及归一化
%下载四类语音信号
load data1 c1
load data2 c2
load data3 c3
load data4 c4
%四个特征信号矩阵合成一个矩阵
data(1:500,:)=c1(1:500,:);
data(501:1000,:)=c2(1:500,:);
data(1001:1500,:)=c3(1:500,:);
data(1501:2000,:)=c4(1:500,:);
%从1到2000间随机排序
k=rand(1,2000);
=sort(k);
%输入输出数据
input=data(:,2:25);
output1 =data(:,1);
%把输出从1维变成4维
for i=1:2000
switch output1(i)
case 1
output(i,:)=;
case 2
output(i,:)=;
case 3
output(i,:)=;
case 4
output(i,:)=;
end
end
%随机提取1500个样本为训练样本,500个样本为预测样本
input_train=input(n(1:1500),:)’;
output_train=output(n(1:1500),:)’;
input_test=input(n(1501:2000),:)’;
output_test=output(n(1501:2000),:)’;
%输入数据归一化
=mapminmax(input_train);
%% 网络结构初始化
innum=24;
midnum=25;
outnum=4;
%权值初始化
w1=rands(midnum,innum);
b1=rands(midnum,1);
w2=rands(midnum,outnum);
b2=rands(outnum,1);
w2_1=w2;w2_2=w2_1;
w1_1=w1;w1_2=w1_1;
b1_1=b1;b1_2=b1_1;
b2_1=b2;b2_2=b2_1;
%学习率
xite=0.1
alfa=0.01;
%% 网络训练
for ii=1:10
E(ii)=0;
for i=1:1:1500
%% 网络预测输出
x=inputn(:,i);
% 隐含层输出
for j=1:1:midnum
I(j)=inputn(:,i)’*w1(j,:)’+b1(j);
Iout(j)=1/(1+exp(-I(j)));
end
% 输出层输出
yn=w2’*Iout’+b2;
%% 权值阀值修正
%计算误差
e=output_train(:,i)-yn;
E(ii)=E(ii)+sum(abs(e));
%计算权值变化率
dw2=e*Iout;
db2=e’;
for j=1:1:midnum
S=1/(1+exp(-I(j)));
FI(j)=S*(1-S);
end
for k=1:1:innum
for j=1:1:midnum
dw1(k,j)=FI(j)*x(k)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));
db1(j)=FI(j)*(e(1)*w2(j,1)+e(2)*w2(j,2)+e(3)*w2(j,3)+e(4)*w2(j,4));
end
end
w1=w1_1+xite*dw1’+alfa*(w1_1-w1_2);
b1=b1_1+xite*db1’+alfa*(b1_1-b1_2);
w2=w2_1+xite*dw2’+alfa*(w2_1-w2_2);
b2=b2_1+xite*db2’+alfa*(b2_1-b2_2);
w1_2=w1_1;w1_1=w1;
w2_2=w2_1;w2_1=w2;
b1_2=b1_1;b1_1=b1;
b2_2=b2_1;b2_1=b2;
end
end
%% 语音特征信号分类
inputn_test=mapminmax(’apply’,input_test,inputps);
for ii=1:1
for i=1:500%1500
%隐含层输出
for j=1:1:midnum
I(j)=inputn_test(:,i)’*w1(j,:)’+b1(j);
Iout(j)=1/(1+exp(-I(j)));
end
fore(:,i)=w2’*Iout’+b2;
end
end
%% 结果分析
%根据网络输出找出数据属于哪类
for i=1:500
output_fore(i)=find(fore(:,i)==max(fore(:,i)));
end
%BP网络预测误差
error=output_fore-output1(n(1501:2000))’;
%画出预测语音种类和实际语音种类的分类图
figure(1)
plot(output_fore,’r’)
hold on
plot(output1(n(1501:2000))’,’b’)
legend(’预测语音类别’,’实际语音类别’)
%画出误差图
figure(2)
plot(error)
title(’BP网络分类误差’,’fontsize’,12)
xlabel(’语音信号’,’fontsize’,12)
ylabel(’分类误差’,’fontsize’,12)
%print -dtiff -r600 1-4
k=zeros(1,4);
%找出判断错误的分类属于哪一类
for i=1:500
if error(i)~=0
=max(output_test(:,i));
switch c
case 1
k(1)=k(1)+1;
case 2
k(2)=k(2)+1;
case 3
k(3)=k(3)+1;
case 4
k(4)=k(4)+1;
end
end
end
%找出每类的个体和
kk=zeros(1,4);
for i=1:500
=max(output_test(:,i));
switch c
case 1
kk(1)=kk(1)+1;
case 2
kk(2)=kk(2)+1;
case 3
kk(3)=kk(3)+1;
case 4
kk(4)=kk(4)+1;
end
end
%正确率
rightridio=(kk-k)./kk
采用matlab编程:曲线运动高手请指教!!!
小孩和玩具的问题
题目. 一个小孩借助长度为a的硬棒,拉或推某玩具.此小孩沿某曲线行走,计算并画出玩具的轨迹.
图 1
A
B
C
图 2
解:假设小孩拉的玩具如图1所示,由于整个推拉过程中(图2),玩具走的轨迹,只与C在地面上的投影点B的轨迹有关。所以我们把模型简化为图3。
A
a
图 3
假设1:小孩B点所走曲线为沿着小
棒a的方向(直线AB),则玩具A走的轨
迹为直线(沿AB方向的)。此时,小孩行
走的速度与玩具的速度相同。
假设2:小孩B点所走曲线为一个A点
为心的圆,则玩具不动。此时,如果小孩B
行走的速度为v,而玩具A的速度却为零,
这说明,在推玩具的过程中,小孩B的速度
与玩具A的速度不同。
由此特殊情况,我们可以看到,当小孩B行走的路线是曲线时,小孩B的速度与玩具A的速度是不同的。
假设3:如果小孩B点走的轨迹是一条曲线c(图4 ),不妨设曲线的轨迹方程是一个与时间t有关的参数方程。而玩具A走的轨迹为曲线c´。
图4
则t时刻小孩 的坐标为 ,
玩具 的坐标为 。
(1) t时刻,由于 的距离为a,由于小孩拉的是硬棒,在小孩拉玩具的过程中,假设棒与地面的角度不变,因此有:
,
即 (1)
(2) 设玩具在A¢点的速度,则的方向应为玩具所走曲线c¢的切线方向,而玩具始终是沿着小棒A¢B¢的方向,所以:
//
而
所以:
又 ,由向量知识有
简化得:
故有 ,
化简得 。
小孩所走曲线为一个以原点为圆心半径为R的圆时,小孩所走路径的曲线方程为:
,
利用MATLAB软件求解上述微分模型,程序如下:
函数文件:
建立函数文件fun5.m
function dy=fun5(t,y)
dy=[(-5*sin(t)*(5*cos(t)-y(1))+5*cos(t)*(5*sin(t)-y(2)))*(5*cos(t)-y(1))./((5*cos(t)-y(1))^2+(5*sin(t)-y(2))^2)
主程序:
clear,clc
close all
);
X=5*cos(t);
Y=5*sin(t);
figure(1)
plot(X,Y,’r.’)
hold on
plot(y(:,1),y(:,2),’*’)
%玩具的初始位置为(12,0)
t0=0;tf=100;
);
X=5*cos(t);
Y=5*sin(t);
figure(2)
plot(X,Y,’r.’)
hold on
plot(y(:,1),y(:,2),’*’)
%玩具的初始位置为(8,0)
t0=0;tf=100;
);
X=5*cos(t);
Y=5*sin(t);
figure(3)
plot(X,Y,’r*’)
hold on
plot(y(:,1),y(:,2),’.’)
基于matlab或C#的神经网络编程
1. 人工神经元( Artificial Neuron )模型
人工神经元是神经网络的基本元素,其原理可以用下图表示:
图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为:
图中 yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数 ( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为:
若用X表示输入向量,用W表示权重向量,即:
X =
则神经元的输出可以表示为向量相乘的形式:
若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。
图1中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。
matlab编程,对大神来说很简单的
首先确认一下:符号ε(t)是指单位阶跃函数吧?
这似乎是信号与系统领域的惯例,我是学自动控制的,习惯和这个不一样。
零状态响应,即初始条件为0:
》》 y=dsolve(’D2y+5*Dy+6*y=1’,’y(0)=0,Dy(0)=0’)
y =
-1/2*exp(-2*t)+1/3*exp(-3*t)+1/6
零输入响应,即输入为0:
》》 y=dsolve(’D2y+5*Dy+6*y=0’,’y(0)=0,Dy(0)=1’)
y =
exp(-2*t)-exp(-3*t)
全响应:
》》 y=dsolve(’D2y+5*Dy+6*y=1’,’y(0)=0,Dy(0)=1’)
y =
1/2*exp(-2*t)-2/3*exp(-3*t)+1/6
matlab编程问题,建立BP神经网络
%采用动量梯度下降算法训练 BP 网络。
close all
clear
echo on
clc
% NEWFF——生成一个新的前向神经网络
% TRAIN——对 BP 神经网络进行训练
% SIM——对 BP 神经网络进行仿真
pause
% 敲任意键开始
clc
% 定义训练样本
% P 为输入矢量 pau
P=;
% T 为目标矢量
T=;
pause;
clc
% 创建一个新的前向神经网络
minmax(P)
net=newff(minmax(P),,{’tansig’’purelin’},’traingdm’);
% minmax(P)取值范围是P内的最小值到最大值 是3个神经元 1维 tansig purelin traingdm各层神经网络的激励函数
% tansig purelin隐含层更改权值的函数 当前输入层权值和阈值
inputWeights=net.IW{1,1};
inputbias=net.b{1};
% 当前网络层权值和阈值
layerWeights=net.LW{2,1};
layerbias=net.b{2};
%表示对各层神经网络的权值与阈值传递到相应变量
pause
clc
% 设置训练参数
net.trainParam.show = 50; %训练显示间隔 50次显示一次
net.trainParam.lr = 0.05; %学习步长0.05学习率
net.trainParam.mc = 0.9; %动量项系数0.9
net.trainParam.epochs = 1000; %训练次数1000次
net.trainParam.goal = 1e-3; %训练精度目标为0.001
pause
clc
% 调用 traingdm 算法训练 BP 网络
=train(net,P,T);%调用网络指令
pause
clc
% 对 BP 网络进行仿真
A=sim(net,P)
% 计算仿真误差
E=T-A
MSE=mse(E)
pause
clc
echo off

更多文章:
form表单制作(为什么制作的form表单会在网页显示中多出一行)
2026年10月11日 09:10
teammate(teammate,company,partner)
2026年10月11日 06:10
javascript arraybuffer(javascript可以把base64编码转换成二进制代码吗求示例代码!)
2026年10月11日 04:00
text函数公式(excel中round和text函数的区别是什么)
2026年10月11日 03:50
google chrome打不开(chrome浏览器打不开怎么回事 浏览器打不开的处理方法)
2026年10月11日 02:00
websocket整合springboot(Springboot整合Websocket遇到的坑)
2026年10月11日 01:40
drawerlayout(android 怎样让drawerlayout设置的侧滑菜单的内容充满屏幕)
2026年10月10日 19:20
xor四位数怎么运算(单片机怎样用C语言实现4个数字间的异或)
2026年10月10日 17:50



