dizzy 发表于 2007-6-15 10:42

模拟应力集中系数的问题

我是用神经网络方法在matlab中模拟应力集中系数的表达式,会模拟但是不知道怎么用图象表示出来,下面这个图是以前的师兄做出来的,但是我不知道他怎么作出来的,有没有懂的好心人帮帮忙啊,先谢了如果我改变传递函数对图形的影响也很大,甚至会出现应力集中系数为负数的情况,这是为什么啊
程序的代码如下:
clear
echo on
clc
%BP建模
%原始数据归一化
m_data=[0.010 2.0 2.8;
   0.020 2.0 2.13;   
    0.06 2.0 1.64;
    0.08 2.0 1.53;
    0.10 2.0 1.46;   
    0.14 2.0 1.35;
    0.16 2.0 1.32;   
    0.20 2.0 1.26;
    0.24 2.0 1.22;   
    0.28 2.0 1.19;
    0.02 1.33 2.02;
    0.04 1.33 1.74;
    0.06 1.33 1.60;
    0.08 1.33 1.49;   
    0.12 1.33 1.36;   
    0.16 1.33 1.27;
    0.20 1.33 1.24;   
    0.24 1.33 1.19;
    0.28 1.33 1.17;
    0.02 1.20 1.93;
   0.04 1.20 1.64;
    0.06 1.20 1.50;   
    0.10 1.20 1.33;
    0.14 1.20 1.24;
    0.18 1.20 1.18;   
    0.22 1.20 1.15;
    0.26 1.20 1.135;
    0.02 1.09 1.5;
   0.04 1.09 1.3;
    0.06 1.09 1.24;   
    0.10 1.09 1.17;
    0.14 1.09 1.14;
    0.18 1.09 1.12;
    0.22 1.09 1.10;
    0.26 1.09 1.10];
%定义网络输入p和期望输出t
pause
clc
p1=m_data(:,1:2);
t1=m_data(:,3);
p=p1';t=t1';
=premnmx(p,t)
%设置网络隐单元的神经元数(5~30验证后5个最好)
n=10;
%建立相应的BP网络
pause
clc
net=newff(minmax(pn),,{'logsig','tansig'},'trainlm');
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.2;
net.trainParam.mc=0.9;
net.trainParam.epochs=15000;
net.trainParam.goal=1e-5;
pause
clc
%调用TRAINGDM算法训练BP网络
net=train(net,pn,tn);
=meshgrid(0.00:0.05:0.3,1.00:0.2:2.00);
p3=;
x3=x2(:)';y3=y2(:)';
p4=;
figure;a4=sim(net,p4);
a41=reshape(a4,size(x2));
surf(x2,y2,a41)

[ 本帖最后由 eight 于 2007-6-15 10:47 编辑 ]

hrbeu221 发表于 2009-1-23 15:13

顶一个,正在学习,希望好心人解释一下!

ChaChing 发表于 2009-1-23 16:06

原帖由 hrbeu221 于 2009-1-23 15:13 发表 http://www.chinavib.com/forum/images/common/back.gif
顶一个,正在学习,希望好心人解释一下!
解释什麽?
页: [1]
查看完整版本: 模拟应力集中系数的问题