没有合适的资源?快使用搜索试试~ 我知道了~
首页MATLAB编程:详述数值模拟图的关键代码示例
该文档是一份关于"8-本书数值模拟图的MATLAB程序"的详细指南。文档提供了大量的MATLAB编程实例,用于生成书中涉及的数值模拟图形。每一章的附录部分详细列出了一系列图例,每个图对应一个特定的MATLAB程序,覆盖了MATLAB编程在数值模拟领域的应用。这些程序可能涉及到线性代数、信号处理、控制系统设计、优化算法等多种数学模型的实现。 通过这份资料,读者可以学习到如何使用MATLAB来解决实际问题,例如求解微分方程、绘制复杂函数图像、进行数据可视化以及执行数值计算等。每个程序通常包含必要的代码解释和注释,帮助初学者理解其工作原理,并对MATLAB的基本语法和功能有深入的理解。 此外,这份文档不仅适用于正在学习或研究数值模拟的工程或科学学生,也对MATLAB编程的工程师、研究人员和数据分析师具有参考价值。它提供了丰富的实践案例,有助于提升读者在MATLAB环境下的编程技能和解决问题的能力。 对于那些想要进一步探索MATLAB在数值模拟中的具体应用的人来说,这是一份非常实用的参考资料,可以直接用于教学、研究或者作为开发项目的参考。通过阅读和实践这些程序,读者能够加深对MATLAB工具箱中各种工具的理解,提高其在工程计算和数据分析方面的效率。
资源详情
资源推荐
v2=(j+899)/500; v1=0.7*v2;
for k=1:m
if (Q(k,1)>=0)&(Q(k,2)>=0)
%若矩阵 Q 第 k 行第一列及第二列各元素全大于等于 0,执行下列语句
Q(k+1,1)=Q(k,1)+v1*Q(k,1)*(B*f*(1-d12*d21)*Q(k,1)*Q(k,2)/((1+f*d21)*Q(k,1)+ …
(f+d12)*Q(k,2))^2-c1*Q(k,1));
Q(k+1,2)=Q(k,2)+v2*Q(k,2)*(B*f*(1-d12*d21)*Q(k,1)*Q(k,2)/((1+f*d21)*Q(k,1)+ …
(f+d12)*Q(k,2))^2-c2*Q(k,2));
L(k,1)=B*a1*(Q(k,1)+d12*Q(k,2))/(a1*(Q(k,1)+d12*Q(k,2))+a2*(Q(k,2)+ …
d21*Q(k,1)))-c1*Q(k,1);
L(k,2)=B*a2*(Q(k,2)+d21*Q(k,1))/(a2*(Q(k,2)+d21*Q(k,1))+a1*(Q(k,1)+ …
d12*Q(k,2)))-c2*Q(k,2);
mylogic=0;
else
mylogic=1;
break;
end
end
if (mylogic==0)
AP1(j,1)=sum(L(m-48:m+1,1)); %对矩阵 L 的第 m-48 行到 m+1 行第一列求和
MS1(j,1)=sum(Q(1:m,1))/m; AP2(j,1)=sum(L(m-48:m+1,2));
MS2(j,1)=sum(Q(1:m,2))/m;
else
AP1(j,1)=NaN; MS1(j,1)=NaN; AP2(j,1)=NaN; AR2(j,1)=NaN; MS2(j,1)=NaN;
end
end
t=1:1:n; subplot(2,1,1); %分割成 2*1 的子图,上方为当前图
plot((t+899)/500,AP1(t,1),'k','MarkerSize',5);
hold on; plot((t+899)/500,AP2(t,1),'b','MarkerSize',5);
axis([1.8 2.8 186 210]); xlabel('\lambda_2'); ylabel('profit','Rotation',0);
Q=zeros(1000,2); L=zeros(1000,2); n=501;
AP1=zeros(n,1); MS1=zeros(n,1); AP2=zeros(n,1); MS2=zeros(n,1);
d12=0.4; d21=0.4; c1=3.5; c2=3; m=200; mylogic=0; a1=1; a2=1; f=a2/a1;
Q(1,1)=0.2; Q(1,2)=0.2; B=10;
for j=1:n
v1=(j+899)/500; v2=0.7*v1;
for k=1:m
if (Q(k,1)>=0)&(Q(k,2)>=0)
Q(k+1,1)=Q(k,1)+v1*Q(k,1)*(B*f*(1-d12*d21)*Q(k,1)*Q(k,2)/((1+f*d21)*Q(k,1)+ …
(f+d12)*Q(k,2))^2-c1*Q(k,1));
Q(k+1,2)=Q(k,2)+v2*Q(k,2)*(B*f*(1-d12*d21)*Q(k,1)*Q(k,2)/((1+f*d21)*Q(k,1)+ …
(f+d12)*Q(k,2))^2-c2*Q(k,2));
L(k,1)=B*a1*(Q(k,1)+d12*Q(k,2))/(a1*(Q(k,1)+d12*Q(k,2))+a2*(Q(k,2)+ …
d21*Q(k,1)))-c1*Q(k,1);
9
L(k,2)=B*a2*(Q(k,2)+d21*Q(k,1))/(a2*(Q(k,2)+d21*Q(k,1))+a1*(Q(k,1)+ …
d12*Q(k,2)))-c2*Q(k,2);
mylogic=0;
else
mylogic=1;
break;
end
end
if (mylogic==0)
AP1(j,1)=sum(L(m-48:m+1,1)); MS1(j,1)=sum(Q(1:m,1))/m;
AP2(j,1)=sum(L(m-48:m+1,2)); MS2(j,1)=sum(Q(1:m,2))/m;
else
AP1(j,1)=NaN; MS1(j,1)=NaN; AP2(j,1)=NaN; AR2(j,1)=NaN; MS2(j,1)=NaN;%不定量 end
end
t=1:1:n;subplot(2,1,2);%下方为当前图
plot((t+899)/500,AP1(t,1),'k','MarkerSize',5); hold on;
plot((t+899)/500,AP2(t,1),'b','MarkerSize',5);
axis([1.8 2.8 180 220]); xlabel('\lambda_1'); ylabel('profit','Rotation',0);
附录 1.8 图 4.9 的 Matlab 程序
%Q(k+1,1)=Q(k,1)+v1*Q(k,1)*(B*k*(1-d1*d2)*Q(k,1)*Q(k,2)/((1+k*d2)*Q(k,1)+(k+d1)*…
Q(k,2))^2-c1*Q(k,1));
%Q(k+1,2)=Q(k,2)+v2*Q(k,2)*(B*k*(1-d1*d2)*Q(k,1)*Q(k,2)/((1+k*d2)*Q(k,1)+(k+d1)*…
Q(k,2))^2-c2*Q(k,2));
clear all;%清空工作区间
Q=zeros(1000,2); L=zeros(1000,2);%生成 2000 行 2 列的二维零矩阵
n=1001; AP1=zeros(n,1); MS1=zeros(n,1); AP2=zeros(n,1); MS2=zeros(n,1); %生成一维零矩阵
d12=0.52; d21=0.5; c1=3; c2=2.8; m=200; mylogic=0; a1=1; a2=1; f=1;
Q(1,1)=0.3; Q(1,2)=0.3; B=10; %赋值
for j=1:n
v1=(j+999)/500; v2=v1;
for k=1:m
if (Q(k,1)>=0)&(Q(k,2)>=0)
Q(k+1,1)=Q(k,1)+v1*Q(k,1)*(B*f*(1-d12*d21)*Q(k,1)*Q(k,2)/((1+f*d21)*Q(k,1)+ …
(f+d12)*Q(k,2))^2-c1*Q(k,1));
Q(k+1,2)=Q(k,2)+v2*Q(k,2)*(B*f*(1-d12*d21)*Q(k,1)*Q(k,2)/((1+f*d21)*Q(k,1)+ …
(f+d12)*Q(k,2))^2-c2*Q(k,2));
L(k,1)=B*a1*(Q(k,1)+d12*Q(k,2))/(a1*(Q(k,1)+d12*Q(k,2))+a2*(Q(k,2)+ …
d21*Q(k,1)))-c1*Q(k,1);
L(k,2)=B*a2*(Q(k,2)+d21*Q(k,1))/(a2*(Q(k,2)+d21*Q(k,1))+a1*(Q(k,1)+ …
d12*Q(k,2)))-c2*Q(k,2);
10
mylogic=0;
else
mylogic=1;
break;
end
end
if (mylogic==0)
AP1(j,1)=sum(L(m-48:m+1,1)); AP2(j,1)=sum(L(m-48:m+1,2));
MS1(j,1)=sum(Q(1:m,1))/m; MS2(j,1)=sum(Q(1:m,2))/m;
else
AP1(j,1)=NaN; MS1(j,1)=NaN; AP2(j,1)=NaN; AR2(j,1)=NaN; MS2(j,1)=NaN;
end
end
t=1:1:n;subplot(2,2,1);%分割为 2*2 的子图,左上方为当前图
plot((t+999)/500,AP1(t,1),'k','MarkerSize',5); hold on;
plot((t+999)/500,AP2(t,1),'b','MarkerSize',5);
xlabel('\lambda_1'); ylabel('profit','Rotation',90); %axis([2 3.5 200 215]);
Q=zeros(1000,2); L=zeros(1000,2); n=501;
AP1=zeros(n,1); MS1=zeros(n,1); AP2=zeros(n,1); MS2=zeros(n,1);
d12=0.5; d21=0.4; c1=3.5; c2=3; m=200; mylogic=0; a1=1; a2=1; f=a2/a1;
Q(1,1)=0.3; Q(1,2)=0.3; B=10;
for j=1:n
v1=(j+999)/500; v2=v1;
for k=1:m
if (Q(k,1)>=0)&(Q(k,2)>=0)
Q(k+1,1)=Q(k,1)+v1*Q(k,1)*(B*f*(1-d12*d21)*Q(k,1)*Q(k,2)/((1+f*d21)*Q(k,1)+ …
(f+d12)*Q(k,2))^2-c1*Q(k,1));
Q(k+1,2)=Q(k,2)+v2*Q(k,2)*(B*f*(1-d12*d21)*Q(k,1)*Q(k,2)/((1+f*d21)*Q(k,1)+ …
(f+d12)*Q(k,2))^2-c2*Q(k,2);
L(k,1)=B*a1*(Q(k,1)+d12*Q(k,2))/(a1*(Q(k,1)+d12*Q(k,2))+a2*(Q(k,2)+ …
d21*Q(k,1)))-c1*Q(k,1);
L(k,2)=B*a2*(Q(k,2)+d21*Q(k,1))/(a2*(Q(k,2)+d21*Q(k,1))+a1*(Q(k,1)+ …
d12*Q(k,2)))-c2*Q(k,2);
mylogic=0;
else
mylogic=1; break;
end
end
if (mylogic==0)
AP1(j,1)=sum(L(m-48:m+1,1)); MS1(j,1)=sum(Q(1:m,1))/m;
AP2(j,1)=sum(L(m-48:m+1,2)); MS2(j,1)=sum(Q(1:m,2))/m;
else
AP1(j,1)=NaN; MS1(j,1)=NaN; AP2(j,1)=NaN; AR2(j,1)=NaN; MS2(j,1)=NaN;
end
11
剩余63页未读,继续阅读
老帽爬新坡
- 粉丝: 92
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- zlib-1.2.12压缩包解析与技术要点
- 微信小程序滑动选项卡源码模版发布
- Unity虚拟人物唇同步插件Oculus Lipsync介绍
- Nginx 1.18.0版本WinSW自动安装与管理指南
- Java Swing和JDBC实现的ATM系统源码解析
- 掌握Spark Streaming与Maven集成的分布式大数据处理
- 深入学习推荐系统:教程、案例与项目实践
- Web开发者必备的取色工具软件介绍
- C语言实现李春葆数据结构实验程序
- 超市管理系统开发:asp+SQL Server 2005实战
- Redis伪集群搭建教程与实践
- 掌握网络活动细节:Wireshark v3.6.3网络嗅探工具详解
- 全面掌握美赛:建模、分析与编程实现教程
- Java图书馆系统完整项目源码及SQL文件解析
- PCtoLCD2002软件:高效图片和字符取模转换
- Java开发的体育赛事在线购票系统源码分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功