to:大鹏展翅心心
首先,你说的极端不正确,你打开的只是上百个文件中的说明文档(写字板文件)。有数百个M文件你没看到吗?
你难道不知道Matlab中的命令和函数都是保存在.m的文件中的吗?
我知道你一定没有打开任何一个.m的文件。
大家要注意.m的文件要安装了Matlab才能够看到,如果你没装又想看的话,可以选择打开方式中的写字板打开。
大鹏展翅心心,那样说我的文件,让我很伤心。大家知道编写一个大型的Matlab程序是多么的艰难。
为了说明我的这里面有真正的Matlab程序。现在贴几个建模题目的程序!
% 97年中国大学生数学建模竞赛A题计算
%参考:《数学的实践与认识》1998,1
% 非线性约束优化求标定值
% 遍历容差等级
% 全程变量:COST(成本矩阵),VARI(容差等级向量)
% 相关M文件:jm97a, jm97afun
clear;
global COST VARI;
big=10000;
COST=[big,25,big;20 50,big;20,50,200;50,100,500;50,big,big;10,25,100;big,25,100];
vlb=[0.075,0.225,0.075,0.075,1.125,12,0.5625];
vub=[0.125,0.375,0.125,0.125,1.875,20,0.935];
option=[];
x0=[0.1,0.3,0.1,0.1,1.5,16,0.75];
VARI=[5,10,10,10,10,10,5];
disp(['原费用:',num2str(jm97aoptim(x0))]);
minfee=inf;
for j2=[10 5]
for j3=[10 5 1]
for j4=[10 5 1]
for j6=[10 5 1]
for j7=[5 1]
VARI=[5,j2,j3,j4,10,j6,j7];
[x0,options]=constr('jm97aoptim',x0,option,vlb,vub);
if minfee>options(8)
minfee=options(8);
grad=VARI;mark=x0;
end;
end;
end;
end;
end;
end;
disp(['标定值:',num2str(mark)]);
disp(['容差等级:',num2str(grad)]);
disp(['费用:',num2str(minfee)]);
function y=jm97afun(x)
% 97年中国大学生数学建模竞赛A题函数关系
% 用法: y=jm97afun(x)
% x--7个零件参数
% y--分离器参数
% 相关M文件:jm97a, jm97aoptim
% L.J.HU
y=174.42*(x(1)/x(5))*(x(3)/(x(2)-x(1)))^...
0.85*((1-2.62*(1-0.36*(x(4)/x(2))^(-0.56))^...
1.5*(x(4)/x(2))^1.16)/(x(6)*x(7)))^0.5;
function [f,g]=JM97Aoptim(x)
% 97年中国大学生数学建模竞赛A题目标函数
% 用法: [f,g]=jm97aoptim(x)
% x--7个零件参数
% f--目标函数
% g--虚拟参数,优化工具箱实用
% 全程变量:COST(成本矩阵),VARI(容差等级)
% 相关M文件:jm97a, jm97afun
global COST VARI;
y=jm97afun(x);
sig=0;h=0.0001;
for i=1:7
xh=x;xh(i)=x(i)+h;
dy=(jm97afun(xh)-jm97afun(x))/h;
sig=sig+dy^2*(VARI(i)/300*x(i))^2;
end
sig=sig^0.5;
f=9000-8000*(normcdf(1.8,y,sig)-normcdf(1.2,y,sig))...
-1000*(normcdf(1.6,y,sig)-normcdf(1.4,y,sig));
gra=[10 5 1];
for i=1:7
f=f+sum((VARI(i)==gra).*COST(i,:));
end
g=-1;
[此贴子已经被作者于2009-2-21 22:21:15编辑过]