‘壹’ 求一个简单的matlab程序代码,只要符合要求即可
1、题目:
把1-10的者兄整数,先判断首亏袭是否为偶数,并计算它们的和,最后做空扰一下验证
2、程序:
clc;clear;
sum0=0;
for
i=1:10
%循环
if(mod(i,2)==0)%分支
sum0=sum0+i;
end
end
%检测
test_data=[2:2:10];%顺序
test=sum(test_data);
[sum0
test]
3、运行结果:
ans
=
30
30
‘贰’ 求Matlab编程大神帮忙编程计算。
MATLAB代码如下:
c=ones(1,7);
A=[0000112;
0123010;
6420411];
A=-A;
b=-100*ones(3,1);
lb=zeros(1,7);
[x,fval,exitflag]=linprog(c,A,b,[],[],lb)
优化结果誉塌者:
Optimization terminated.
x =
0.0000
0.0000
0.0000
33.3333
14.2857
0.0000
42.8571
fval =
90.4762
exitflag =
1
结果收敛。
1stopt代码:
Parameterx(1:7)[0,];
MinFunctionx1+x2+x3+x4+x5+x6+x7;
x5+x6+2*x7>=100;
x2+2*x3+3*x4+x6>=100;
6*x1+4*x2+2*x3+4*x5+x6+x7>=100;
优化结果:
迭代数: 94
计算用时(时:分:秒:毫秒): 00:00:01:312
计算中止原因: 达到收敛判定标准
优化算法: 准牛顿法(BFGS) + 通用全局优化法
函数表达式: x1+x2+x3+x4+x5+x6+x7
目标函数值(最小): 90.4789793976423
x1: 6.56531036168569E-22
x2: 0.0290946768006313
x3: 4.66048571470512E-16
x4: 33.3235799630505
x5: 14.252439546946
x6: 0.00016543404783297
x7: 42.8736997767972
约束函数衫碧
1: x5+x6+2*x7-(100) = 4.534588371E-6
2: x2+2*x3+3*x4+x6-(100) = 0
3: 6*x1+4*x2+2*x3+4*x5+x6+x7-(100) = 2.105831783E-6
====== 计庆薯算结束 ======
两种方式下计算一致,解可信。
‘叁’ 基-2fft算法的软件实现 matlab代码
% 基于Matlab的时间抽取基2FFT算法
function y=myditfft(x)
%本程序对输入序列实现DIT-FFT基2算法,点数取大于等于长度的2的幂次
%------------------------------------
% Leo's fft program(改编网上的一个程序)
%------------------------------------
m=log2(2^nextpow2(length(x))); %求的x长度对应的2的最低幂次m
N=2^m;
if length(x)<N
x=[x,zeros(1,N-length(x))]; %若长度不是2的幂,补0到2的整数幂
end
x;
%--------------------------------------------------------------------------
%对输入序列进行倒序
%如果输入序列的自然顺序号I用二进制数(例如n2n1n0)表示
%则其倒位序J对应的二进制数就是(n0n1n2),这样,在原来自然顺序时应该放x(I)的
%单元,现在倒位序后应放x(J)。
%--------------------------------------------------------------------------
%以下程序相当于以下程序:
%nxd=bin2dec(fliplr(dec2bin([1:N]-1,m)))+1; %求1:2^m数列的倒序
%y=x(nxd); %将倒序排列作为初始值
%--------------------------------------------------------------------------
NV2=N/2;
NM1=N-1;
I=0;
J=0;
while I<NM1
if I<J
T=x(J+1);
x(J+1)=x(I+1);
x(I+1)=T;
end
K=NV2;
while K<=J
J=J-K;
K=K/2;
end
J=J+K;
I=I+1;
end
x;
%--------------------------------------------------------------------------
%以下程序解释:
%第一级从x(0)开始,跨接一阶蝶形,再取每条对称
%第二级从x(0)开始,跨接两阶蝶形,再取每条对称
%第m级从x(0)开始,跨接2^(m-1)阶蝶形,再取每条对称....
%--------------------------------------------------------------------------
for mm=1:m %将DFT做m次基2分解,从左到右,对每次分解作DFT运算
Nmr=2^mm;
u=1; %旋转因子u初始化
WN=exp(-j*2*pi/Nmr); %本次分解的基本DFT因子WN=exp(-i*2*pi/Nmr)
for n=1:Nmr/2 %本次跨越间隔内的各次碟形运算
for k=n:Nmr:N %本次碟形运算的跨越间隔为Nmr=2^mm
kp=k+Nmr/2; %确定碟形运算的对应单元下标(对称性)
t=x(kp)*u; %碟形运算的乘积项
x(kp)=x(k)-t; %碟形运算的加法项
x(k)=x(k)+t;
end
u=u*WN; %修改旋转因子,多乘一个基本DFT因子WN
end
end
y=x; %输出
‘肆’ 急求一份多目标遗传算法matlab代码!
我给你一个标准遗传算法程序供你参考:
该程序是遗传算法优化BP神经网络函数极值寻优:
%% 该代码为基于神经网络遗传算法的系统极值寻优
%% 清空环境变量
clc
clear
%% 初始化遗传算法参数
%初始化参数
maxgen=100; %进化代数,即迭代次数
sizepop=20; %种群规模
pcross=[0.4]; %交叉概率选择,0和1之间
pmutation=[0.2]; %变异概率选择,0和1之间
lenchrom=[1 1]; %每个变量的字串长度,如果是浮点变量,则长度都为1
bound=[-5 5;-5 5]; %数据范围
indivials=struct('fitness',zeros(1,sizepop), 'chrom',[]); %将种群信息定义为一个结构体
avgfitness=[]; %每一代种群的平均适应度
bestfitness=[]; %每一代种群的最佳适应度
bestchrom=[]; %适应度最好的染色体
%% 初始化种群计算适应度值
% 初始化种群
for i=1:sizepop
%随机产生一个种群
indivials.chrom(i,:)=Code(lenchrom,bound);
x=indivials.chrom(i,:);
%计算适应度
indivials.fitness(i)=fun(x); %染色体的适应度
end
%找最好的染色体
[bestfitness bestindex]=min(indivials.fitness);
bestchrom=indivials.chrom(bestindex,:); %最好的染色体
avgfitness=sum(indivials.fitness)/sizepop; %染色体的平均适应度
% 记录每一代进化中最好的适应度和平均适应度
trace=[avgfitness bestfitness];
%% 迭代寻优
% 进化开始
for i=1:maxgen
i
% 选择
indivials=Select(indivials,sizepop);
avgfitness=sum(indivials.fitness)/sizepop;
%交叉
indivials.chrom=Cross(pcross,lenchrom,indivials.chrom,sizepop,bound);
% 变异
indivials.chrom=Mutation(pmutation,lenchrom,indivials.chrom,sizepop,[i maxgen],bound);
% 计算适应度
for j=1:sizepop
x=indivials.chrom(j,:); %解码
indivials.fitness(j)=fun(x);
end
%找到最小和最大适应度的染色体及它们在种群中的位置
[newbestfitness,newbestindex]=min(indivials.fitness);
[worestfitness,worestindex]=max(indivials.fitness);
% 代替上一次进化中最好的染色体
if bestfitness>newbestfitness
bestfitness=newbestfitness;
bestchrom=indivials.chrom(newbestindex,:);
end
indivials.chrom(worestindex,:)=bestchrom;
indivials.fitness(worestindex)=bestfitness;
avgfitness=sum(indivials.fitness)/sizepop;
trace=[trace;avgfitness bestfitness]; %记录每一代进化中最好的适应度和平均适应度
end
%进化结束
%% 结果分析
[r c]=size(trace);
plot([1:r]',trace(:,2),'r-');
title('适应度曲线','fontsize',12);
xlabel('进化代数','fontsize',12);ylabel('适应度','fontsize',12);
axis([0,100,0,1])
disp('适应度 变量');
x=bestchrom;
% 窗口显示
disp([bestfitness x]);
提问者评价
谢谢!
‘伍’ 用MATLAB+计算1-1000立方和的程序
以下是一个使用MATLAB编写的程序,可以计算1-1000的立方和:
n = 1000; % 设置上限
% 计算立方和
sum = 0;
for i = 1:n
sum = sum + i^3;
end
% 输出结果
disp(sum);
首先定义了上限值n为1000,然后使用for循环辩毕乱来计算1到n的立方和。具体地,在每次循环中,将当前数字的立方加入到 sum 变量中。
最后,使用disp()函数将计算结果输出到命令窗口中。
在计算大量数据携档时,程序可能需要较长的运行时间和大量的内存空间。如果需要对更大范围的数进行求和,可能需数梁要对代码进行优化或采用更高效的算法。
‘陆’ 数学建模各种算法MATLAB的编程代码,越详细越好
给你推荐个网站:数学中国http://www.madio.net
不过要简单注册一下,发发评论,就有积分了,这样就可以下载东西,与他人交流,挺权威的数学建模网站,希望能帮到你。
算法里面有,给你个网址http://www.madio.net/forum.php?mod=viewthread&tid=198727
这个算法我下载了,可以传给你
‘柒’ 用matlab编写拉格朗日插值算法的程序
做了一个测试,希望有所帮助。代码:% 用matlab编写拉格朗日插值算法的程序,并以下面给出的函数表为数据基础,
% 在整个插值区间上采用拉格朗日插值法计算f(0.6),写出程序源代码,输出计算结果
% x -2.15 -1.00 0.01 1.02 2.03 3.25
% y 17.03 7.24 1.05 2.03 17.06 23.05
function main()
clc;
x = [-2.15 -1.00 0.01 1.02 2.03 3.25];
y = [17.03 7.24 1.05 2.03 17.06 23.05 ];
x0 = 0.6;
f = Language(x,y,x0)function f = Language(x,y,x0)
%求已知数据点的拉格朗日插值多项式
%已知数据点的x坐标向量: x
%已知数据点的y坐标向量: y
%插值点的x坐标: x0
%求得的拉格朗日插值多项式或在x0处的插值: fsyms t l;
if(length(x) == length(y))
n = length(x);
else
disp('x和y的维数不相等!');
return; %检错
endh=sym(0);
for (i=1:n)
l=sym(y(i));
for(j=1:i-1)
l=l*(t-x(j))/(x(i)-x(j));
end;
for(j=i+1:n)
l=l*(t-x(j))/(x(i)-x(j));
end;
h=h+l;
end
simplify(h);if(nargin == 3)
f = subs (h,'t',x0); %计算插值点的函数值
else
f=collect(h);
f = vpa(f,6); %将插值多项式的系数化成6位精度的小数
end结果:
f = 0.0201>>