function [alpha,N,U]=youxianchafen2(r1,r2,up,under,num,deta) %[alpha,N,U]=youxianchafen2(a,r1,r2,up,under,num,deta) %该函数用有限差分法求解有两种介质的正方形区域的二维拉普拉斯方程的数值解 %函数返回迭代因子、迭代次数以及迭代完成后所求区域内网格节点处的值 %a为正方形求解区域的边长 %r1,r2分别表示两种介质的电导率 %up,under分别为上下边界值 %num表示将区域每边的网格剖分个数 %deta为迭代过程中所允许的相对误差限 n=num+1; %每边节点数 U(n,n)=0; %节点处数值矩阵 N=0; %迭代次数初值 alpha=2/(1+sin(pi/num));%超松弛迭代因子 k=r1/r2; %两介质电导率之比 U(1,1:n)=up; %求解区域上边界第一类边界条件 U(n,1:n)=under; %求解区域下边界第一类边界条件 U(2:num,1)=0;U(2:num,n)=0; for i=2:num U(i,2:num)=up-(up-under)/num*(i-1);%采用线性赋值对上下边界之间的节点赋迭代初值 end G=1; while G>0 %迭代条件:不满足相对误差限要求的节点数目G不为零 Un=U; %完成第n次迭代后所有节点处的值 G=0; %每完成一次迭代将不满足相对误差限要求的节点数目归零 for j=1:n for i=2:num U1=U(i,j); %第n次迭代时网格节点处的值 if j==1 %第n+1次迭代左边界第二类边界条件 U(i,j)=1/4*(2*U(i,j+1)+U(i-1,j)+U(i+1,j)); end if (j>1)&&(j U2=1/4*(U(i,j+1)+ U(i-1,j)+ U(i,j-1)+ U(i+1,j)); U(i,j)=U1+alpha*(U2-U1); %引入超松弛迭代因子后的网格节点处的值 end if i==n+1-j %第n+1次迭代两介质分界面(与网格对角线重合)第二类边界条件 U(i,j)=1/4*(2/(1+k)*(U(i,j+1)+U(i+1,j))+2*k/(1+k)*(U(i-1,j)+U(i,j-1))); end if j==n %第n+1次迭代右边界第二类边界条件 U(i,n)=1/4*(2*U(i,j-1)+U(i-1,j)+U(i+1,j)); end end end N=N+1 %显示迭代次数 Un1=U; %完成第n+1次迭代后所有节点处的值 err=abs((Un1-Un)./Un1);%第n+1次迭代与第n次迭代所有节点值的相对误差 err(1,1:n)=0; %上边界节点相对误差置零 err(n,1:n)=0; %下边界节点相对误差置零 G=sum(sum(err>deta))%显示每次迭代后不满足相对误差限要求的节点数目G end
标签: 有限差分
上传时间: 2018-07-13
上传用户:Kemin
本源代码是基于STM32F4xx硬件平台设计的贪吃蛇小游戏,主要难点在:随机点产生、贪吃蛇转向、贪吃蛇贪吃点;本部分主要接收产生随机点,产生随机点需要注意两个方面:1、随机点在有效的范围内;2、贪吃点与贪吃蛇不重合。产生随机点主要有两个函数,分别如下://随机数产生任务void rng_chansheng(void *p_arg){OS_err err;while(1){OSSemPend(&RNG_SEM,0,OS_OPT_PEND_BLOCKING,0,&err);zou.x = RNG_Get_RandomRange(0,50)*8 + 40;zou.y = RNG_Get_RandomRange(0,50)*8 + 260;lcd_fangkuan(zou.x,zou.y,zou.x+SHE_FAANGKUAN_SIZE,zou.y+SHE_FAANGKUAN_SIZE);OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_HMSM_STRICT,&err); //延时500ms}}//往下方向画一个实心的正方形,代表贪食蛇的一段void lcd_fangkuan(u16 x1,u16 y1,u16 x2 ,u16 y2){u16 i,j;u16 xx,yy;if(((x2 - x1) != SHE_FAANGKUAN_SIZE)||((y2 - y1) != SHE_FAANGKUAN_SIZE))return ;if(x1 > x2) {xx = x1;x1 = x2;x2 = xx;}if(y1 > y2){yy = y1;y1 = y2;y2 = yy;}if((y1 < 260)|| (y2 > 660)||(x1 < 40)||(x2 > 448)){game_yun_error = 1;LCD_ShowString(150,300,500,24,24,"GAME OVER!!");return ;}for(i=x1; i<x2; i++){for(j=y1; j<y2; j++){LCD_DrawPoint(i,j);}}}
上传时间: 2022-08-10
上传用户:
VIP专区-嵌入式/单片机编程源码精选合集系列(43)资源包含以下内容:1. 单片机利用霍尔元件册电机速度的c语言程序.2. ARM Image for uCOSII for lpc2131工程模板.3. 汉字库的实现 一.获取字库.exe 可以获得汉字库及英文字库 二.查看字库.exe 可以查看汉字库及英文字库的点阵显示效果 三.显示程序.h 获取字库点阵及显示的源代码 四.其它资料 相关的字.4. 2410上的I/O控制数码管的应用程序.5. NORTi3 is a realtime multitasking operating system conforming to the micro-ITRON 3.0 specification..6. ADE7758三相电能芯片读写源程序.7. AT91RM9200PQ208电路图.8. 嵌入式系统驱动开发.9. 嵌入式系统驱动程序.10. 数控电流源61控制程序 包含zlg7289的61控制程序.11. Open Jtag小组的产品。有了它.12. flash读写原代码.13. 设计一个可容纳四组参赛的数字式抢答器.14. ps2键盘的设计.15. 简明扼要地介绍了uIP TCP/IP协议堆栈的eCOG1端口。文中还描述了一 个应用于简单的web网页服务器的实例。 开放源uIP软件包为在不牺牲互操作性或RFC标准的条件下.16. 5单片机1实用系统.17. 此文档为采用FPGA实现的以太网MAC层.18. 一个用新方法实现的堆管理器.19. Xinx ISE 官方源代码盘第二章.20. Xilinx ISE 官方源代码盘 2.21. Xilinx Ise 官方源代码盘 第四章.22. Xilinx ISE 官方源代码盘 第五章.23. Xilinx ISE官方源代码盘 第六章.24. Epson 清零程序大全.25. Xilinx ISE 官方源代码盘第七章 Part1.26. Xilinx ISE 官方源代码盘第七章 Part 2.27. Xilinx ISE 官方源代码盘第八章.28. Xilinx ISE 官方源代码盘第九章.29. Xilinx ISE 官方源代码盘第十章.30. 是HD61202液晶显示汉字的完整程序代码.31. keil c 编写的tea5767HL 的程序代码.32. 这是关于vc5416dsk的文档其中有其原理图 为学vc54xdsp的好的参考资料.33. 这是关于PDIUSBD12usb接口开发的资料.34. 此为tidsp(vc54x)对语音音频采集压缩编码解码设计原理图及pcb图,非常具有参考价值.35. 心电采集设计,有源码,很不错,用MSP430做的,有用的可以下来.36. 改进版的红外遥控器解码程序 抗干扰能力非常强 至今未出现误触发.37. I2C总线LINUX驱动程序.38. CyPress的C8051F32X系列底层驱动(C语言)及上位机demo(vc环境).39. 微机接口实验程序 。。 。。 。。 。。 。。 。。 。。.40. 前有人传的imagewrite中少了文件ecc.c,根本不能编译成功,见图err,现把完整文件改名了上传.
上传时间: 2013-06-12
上传用户:eeworm