ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:18.45KB ,
资源ID:8647477      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8647477.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(人口问题数据拟合的MATLAB程序.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

人口问题数据拟合的MATLAB程序.docx

1、人口问题数据拟合的MATLAB程序人口问题数据拟合的MATLAB程序拟合 %拟合数据 人口问题 x=1949 1954 1959 1964 1969 1974 1979 1984 1989 1994; y=5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8; % 1 线性模型 %用一阶多项式 b=polyfit(x,y,1) z=b(2)+b(1).*x; plot(x,y,r*,x,z),xlabel(x) %用矩阵运算 A=ones(size(x), x; b=Ay z=b(1)+b(2).*x; plot(x,y,r*,x,z),xlabel(x) %用

2、线性回归 A=ones(size(x), x; b,c,r,j,R =regress(y,A) % b 回归系数 c 回归系数的置信区间 r 残差 j 拟合数据的置信区间 R 相关系数 F值、p值 z=b(1)+b(2).*x; z1=z+j(:,1); z2=z+j(:,2); plot(x,y,r*,x,z,x,z1,x,z2),xlabel(x) e=sqrt(sum(y-z).2)/8) zz1=z-1.96*e; zz2=z+1.96*e; plot(x,y,r*,x,z,x,zz1,x,zz2) % 2 非线性模型 y=b(2)exp(b(1)x) %转化为线性函数 A=ones(

3、size(x), x; y1=log(y); b1,r,j,R=regress(y1,A) b=exp(b1(1) b1(2) z=b(1).*exp(b(2).*x); e=sqrt(sum(y-z).2)/8) z1=z-1.96*e; z2=z+1.96*e plot(x,y,r*,x,z,x,z1,x,z2) %用非线性函数拟合(缺点 初值不合适,就得不到解) x=49 54 59 64 69 74 79 84 89 94; y=5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8; fun=inline(b(1).*exp(b(2).*x),b,x);

4、 b0=2 0.01; b,r,j=nlinfit(x,y,fun,b0) z=b(1).*exp(b(2).*x); plot(x,y,r*,x,z) nlintool(x,y,fun,b0) %拟合曲线图。 %预报 x=1949 1954 1959 1964 1969 1974 1979 1984 1989 1994; y=5.4 6.0 6.7 7.0 8.1 9.1 9.8 10.3 11.3 11.8; A=ones(size(x), x; b,c,r,j,R =regress(y,A) z=b(1)+b(2).*x; e=sqrt(sum(z-y).2)/8) x1=x 1999

5、2005 zz=b(1)+b(2).*x1; y99=zz(11)-1.96*e zz(11)+1.96*e y05=zz(12)-1.96*e zz(12)+1.96*e z1=z+j(:,1) y99(1) y05(1); z2=z+j(:,2) y99(2) y05(2); plot(x,y,r*,x1,zz,x1,z1,x1,z2),xlabel(x) %人员疏散问题 x=25 50 100 200 500; y=1.9 3.4 4.9 5.6 6.1; b0=2 3; %参数初值 fun=inline( b(1).*x./(b(2)+x),b,x); %拟合函数 b,r,j=nlin

6、fit(x,y,fun,b0) %拟合函数的系数、残差 z=b(1).*x./(b(2)+x); z1=z+j(:,1); z2=z+j(:,2); plot(x,y,*r,x,z,x,z1,x,z2) e=sqrt(sum(y-z).2)/3) zz1=z-1.96*e; zz2=z+1.96*e; plot(x,y,*r,x,z,r,x,zz1,x,zz2) nlintool(x,y,fun,b0) %拟合曲线图。 clf x=1949 1954 1959 1964 1969 1974 1979 1984 1989 1994; y=5.4 6 6.7 7 8.1 9.1 9.8 10.3

7、11.1 11.8; plot(x,y,.r,MarkerSize,20),xlabel(x) %解代数方程 x1,x2=size(x); a=ones(x2,1),x; b=ay %线性回归 b=regress(y,a) y1=b(1)+b(2).*x n=1;%一阶多项式模型 P=polyfit(x,y,n) y2=polyval(P,x) %指数模型转化为线性模型 yl=log(y); Pl=polyfit(x,yl,1) y3=exp(Pl(2).*exp(Pl(1).*x) b2=exp(Pl(2) %指数模型非线性拟合(失败) fun=inline(b(1).*exp(b(2).*

8、x),b,x); b0=0.0001,-30, deta,r,j=nlinfit(x,y,fun,b0); %非线性拟合 xx=25 50 100 200 500; yy=1.9 3.4 4.9 5.6 6.1; beta0=2,3; fun1=inline(b(1).*xx./(b(2)+xx),b,xx); beta,r,j=nlinfit(xx,yy,fun1,beta0) plot(x,y1,x,y2,x,y3,x,y,.r,MarkerSize,20),xlabel(x) 解方程零点的MATLAB语言 零点 % 解方程 51=30*0.5/w+sqrt(0.52-w2) %用内联函数

9、求零点 fun=inline(51-30*0.5/w-sqrt(0.52-w2),w); w0=fzero(fun,0.3) %用函数文件求零点 function y=fun(w) y=51-30*0.5/w-sqrt(0.52-w2); w0=fzero(fun,0.3) %用循环语句搜寻零点 for i=1:100 w=0.3-0.001*i; y=30*0.5/w+sqrt(0.52-w2); if y =51 w0=w, break; end; end; w0 %一元函数直接赋值做图 w=0.2:0.001:0.4; y=51-30.*0.5./w-sqrt(0.5.2-w.2); x

10、=zeros(size(w); plot(w,y,w,x),grid %一元函数用内联函数赋值做图 y=inline(-51+30*0.5/w+sqrt(0.5*2-w*2),w); w=0.1:0.01:0.5; y_char=vectorize(y); Y=feval(y_char,w); plot(w,Y) 求解微分方程的MATLAB语言程序 微分方程 % 一阶微分方程 % 求表达式(符号运算) S=dsolve(Dx=r*x*(1-x/k) S1=dsolve(Dx=r*x*(1-x/k),x(0)=0.01) % 转换为函数值 r=0.3;k=8;C1=0.01; s=subs(S)

11、 t=0:100; ss=subs(s,t,t); plot(t,ss),grid % 求数值解 % 建立函数文件fun.m: function y=fun(x,t) y=0.3*x*(1-x/8); %调用ode23(二、三阶龙格库塔法)解微分方程 t,x=ode23(fun,0, 20,0.01) plot(t,x) %高阶微分方程初值问题 %求数值解要化为一阶方程组 %建立M文件 funs. M function fyy=funs(t,y) fyy=y(1).*(1-y(2).2)-y(2);y(1); t,y=ode23(funs,0,25, 0.25,0 ; plot(t,y) pl

12、ot(t,y(:,1),t,y(:,2),r) %高阶微分方程边值问题 Z=dsolve(x*D2y-3*Dy=x2,y(1)=0,y(5)=0,x) x=1:0.01:5; s=subs(Z); plot(x,s) % lorentz 方程组 %周期轨线 function dot=odone(t,y) dot=10*(y(2)-y(1); 28*y(1)-y(2)-y(1)*y(3); y(1)*y(2)-8/3*y(3); tt,yy=ode45(odone,0 200,1; 2; 3); plot3(yy(:,1),yy(:,2),yy(:,3); %奇怪吸引子 function dot

13、1=odoneq(t,y) dot1=10*(y(2)-y(1)-3*(28*y(1)-y(2)-y(1)*y(3); 28*y(1)-y(2)-y(1)*y(3); y(1)*y(2)-8/3*y(3); t1,y1=ode45(odoneq,0 200,1; 2; 3); plot3(y1(:,1),y1(:,2),y1(:,3),r); 试卷合理的均衡分配方案的计算机程序(MATLAB) 原题: 在大学生数学建模竞赛的评卷工作中,M个评委(M个评委来自不同的学校)要完成N份试卷的打分,竞赛试卷来自K个学校,第j个学校有竞赛试卷lj份,N=?lj(j,1:k)为节省人力,每份试卷只要由其中

14、p(pMKN)个评委进行打分就行, 1。 根据回避原则,要求评委不能阅自己学校的试卷,请给出试卷合理的均衡分配方案的数学模型,使各评委阅卷工作量均衡;试卷分配均衡分散。 2。 给出试卷合理的均衡分配方案的计算机程序,要求用MATLAB或C语言编写。输入参数为p,M,k,n,输出参数为各评委分别阅卷的号码,就下列实例给出问题的答案。 实例:某省由竞赛试卷568份,32个评委阅卷,40所学校,3lj32 h=h-32; end end M(h,j)=i; h=h+1; if h=33 h=1; j=j+1 end end a=b; if n=40 break end b=b+l(n+1); end

15、 M=M %即所求矩阵 求数列2/1 3/2 5/3 8/5 13 /8 21/13 。的前n(,100)项和 求数列2/1, 3/2 ,5/3 ,8/5 ,13 /8 ,21/13 。的前n(,100)项和 a(1)=2;a(2)=3; b(1)=1;b(2)=2; n=100; sum=0; for i=1:n a(i+2)=a(i)+a(i+1); b(i+2)=b(i)+b(i+1); sum=sum+a(i)/b(i); end sum 结果 sum = 162.1030 差分方程的matlab解法 差分方程的一般形式为:a(n+1),r*a(n),b 计算程序: a(1)=a0;%

16、赋初值 b=b0;%赋初值 r=r0;%赋初值 n=n0;%赋初值 for i=1:n-1 a(i+1)=r*a(i)+b; %通项公式 end a %输出a数列的各项值 实例: 比如要计算差分方程 a(n+1),0.85*a(n),11,a(1),2.33的前10项, 可写入下列代码: a(1)=2.33;%赋初值 b=11;%赋初值 r=0.85;%赋初值 n=10;%赋初值 for i=1:n-1 %注意i不能取到10,否则n,10时a(i+1)=a(11). a(i+1)=r*a(i)+b; %通项公式 end a %输出a数列的各项值 运行结果 a = 2.3300 12.9805

17、22.0334 29.7284 36.2691 41.8288 46.5545 50.5713 53.9856 56.8878 张丘建算经 百鸡问题及其解(程序) 百鸡问题及其解(程序) 问题: 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁母雏各几何? 列出方程式 : x + y + z = 100 6*x + 3*y + (1/3)*z= 100 程序1: 只有兩個式子,所以 沒有辦法使用標準的方法去求解。 使用 程式設計的方法,是 使用暴力法 xyz=; for x=0 :100 for y=0 :100 z= 100 - x - y; sum= 6*x + 310*

18、y + (1.0/3.0)*z; if sum-100=0 xyz=xyz x y z; else end end end xyz %如果输出的是xyz=,则表明方程无整数解! 程序2 原方程变形为: z = 100-x-y y=(100-7*x)/4 编程序如下 x=0; xyz=; while x0 y=(100-7*x)/4; z=100-x-y; xyz=xyz x y z; end x=x+1; end xyz - 因为 100-7*x0 ,即x14. 所以可将 while x=100 改为while x14. 这样会提高程序的效率. 对程序2的改进:程序2 x=0; xyz=; w

19、hile x14 %由z = 100-x-y if mod(100-7*x,4)=0 %由y=(100-7*x)/4 y=(100-7*x)/4; z=100-x-y; xyz=xyz x y z; end x=x+1; end xyz 计算所有小于1000的Fibonnaci数列 % 计算所有小于1000的Fibonnaci数 f=1;1; i=1; while f(i)+f(i+1)1000 f(i+2)=f(i)+f(i+1); i=i+1; end f=f,i %运行结果 f = Columns 1 through 12 1 1 2 3 5 8 13 21 34 55 89 144 Columns 13 through 16 233 377 610 987 i = 15

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1