数学建模(贺明峰老师)实践作业
标签:
it |
数学建模作业
作业1:
解:方法实现:用C语言编程计算迭代数据,保存为**.txt文件,然后用matlab调用画图。
具体操作:C程序如下:
#include"stdio.h"
void
{
int
float
x[0]=0.618;
for(n=0;n<1000;n++)
x[n+1]=k*x[n]*(1-x[n]);
for(n=1;n<=1000;n++)
}
把得到的文本文件复制到matlab/work目录下,运行matlab,输入如下命令:
>>data11=load('hundun11.txt')
>>x=data11(:,1)
>>y=data11(:,2)
>>plot(x,y,'.')
>>plot(x,y)
得到图像1-1散点图和1-2连线图。
重复上述步骤,得到k=2,k=3,k=3.4,k=3.56分别对应的图像2、3、4、5。
作业2:以作业1中的迭代数列,作费根鲍姆图,取横轴为k,纵轴为x,对k取步长0.01,0<=k<=4,对每个k值迭代2000次,取后1000次的数值标在相应的竖线上。
解:实现方法如作业一;
具体步骤:考虑到在C语言中分配过大数组容易出错,故把数据分成四段,即取k为0~1,1~2,2~3,3~4,依次作出图像,并保存上一步图像,最后得到完整图像。
C程序如下:
#include"stdio.h"
void
{
int
float
for(m=0;m<100;m++)
{
x[m][n+1]=k*x[m][n]*(1-x[m][n]);
for(m=0;m<100;m++)
{
}
>>data0=load('hundun0.txt')
>>k0=0.01:.01:1
>>plot(k0,data0)
>>hold
http://s1/middle/6a3f6e61491332bc9e900&690&690
http://s5/middle/6a3f6e61491332bb13a94&690&690
http://s3/middle/6a3f6e61491332bbaa2f2&690&690
http://s1/middle/6a3f6e61491332bb33760&690&690
http://s11/middle/6a3f6e61491332bb263aa&690&690

加载中…