FDFD一维

一维FDTD程序如下

https://wenku.baidu.com/view/699d2b5b4b35eefdc8d333cf.html

function FDTDonedimensionpipei(L,d,T) %version1.0  终端匹配
%FDTDonedimensionpipei(6,0.18,0.5e-9)
t0=3*T;
c=3e8;
u=4*pi*1e-7;
e=8.8541878e-12;
dz=T*c/10;
Nz=fix(L/dz);
dt=dz/2/c;
Ex=zeros(1,Nz+1);
B=zeros(1,Nz+1);
Hy=zeros(1,Nz);
Nt=2*Nz;
for n=0:Nt
    t=n*dt;
    F=exp(-(t-t0).^2./T^2);
    Ex(1)=F;
    for k=1:Nz
        Hy(k)=Hy(k)+dt./u.*(Ex(k)-Ex(k+1))./dz;
    end
    for k=1:Nz-1
        Ex(k+1)=Ex(k+1)+dt./e.*(Hy(k)-Hy(k+1))./dz;
    end
    Ex(1)=B(2)+(c*dt-dz)./(c*dt+dz).*(Ex(2)-B(1));
    Ex(Nz+1)=B(Nz)+(c*dt-dz)./(c*dt+dz).*(Ex(Nz)-B(Nz+1));
    Vref1=d.*Ex(Nz-300);
    Vref2=d.*Ex(Nz-100);
    plot(t,Vref1,‘s‘);
    hold on;
    plot(t,Vref2,‘rx‘);
    hold on;
    B=Ex;
end
时间: 2024-10-09 14:33:29

FDFD一维的相关文章

JAVA一维数组

import java.applet.Applet; import java.awt.*; //用*表示包含awt这个源包下的所有方法成员,awt为图形界面设计包 public class Applet_Example extends Applet{ int a[]; //定义一个一维数组 public void init(){ a=new int[5]; //定义一个一维数组,该数组包含5个元素 a[0]=100; //分别对数组元素赋值 a[1]=101; a[2]=102; a[3]=10

一维数组的三种写法

/** *一维 数组的几种写法 * 记住:①数组的左边不能有数字 *   ②数组的右边既然初始化了数组,那么就要赋值 */ //一维数组的标准格式 String[] arr1 = new String[]{"bo","li","jian"}; //上面的简写格式 String[] arr2 = {"bo","li","jian"}; //初始化容量 String[] arr3 = new

输出 一维数组中最大的数+数组遍历

1 //将数组中最大的数输出 2 //数组遍历 3 int[] arr = new int[]{2,4,1,6,10,11}; 4 System.out.println("输出一维数组 :"); 5 for(int i=0; i<arr.length;i++) 6 { 7 System.out.print(arr[i]+" "); 8 } 9 10 System.out.println(); 11 12 int max = arr[0]; 13 for(int

算法练习:一维数组旋转

题目描述:求一个一维数组向右旋转K个位置后的结果.比如,一维数组{1, 2, 3, 4, 5},当k = 2时,求得的结果为{4, 5, 1, 2, 3}.要求常数级空间复杂度,允许修改原有数组. 一.使用额外的空间(在不要求常数级空间复杂度的情况下) 这样很简单,使用一个额外的空间,保存原有数组的元素,然后可以错位复制原有数组 元素,即可达到题目的要求.比如数组{1, 2, 3, 4, 5},当k = 2时,先将4,5复制到结果数组,然后将1,2,3复制到结果数组的后面部分. //使用额外空间

随机化一维数组

一 问题:假设有一个一维整型数组,随机化这个数组,即使得每个元素在数组中随机出现,且概率一样. 二 解题思路: 1. 构造两个数组,一个辅助数组,用于哈希,另一个用于保留优先级.例如,输入一组数据2,1,0 那么,辅助数组为0,1,2,即首先随机生成一个3之内的整数,比如2,如果在2的位置没有元素,则放入,否则再次随机生成元素,直到辅助数组中所有元素都不相同,将这些都不相同的元素放入优先级数组. 2. 按照优先级,对原数组进行插入排序. 三 代码 /***********************

动态一维、二维输入数组变量

动态输入一维变量: #include <iostream>using namespace std;int main(){int n; cin>>n; int *p=new int[n]; for(int i=0;i<n;i++) { cin>>p[i]; }for(int i=0;i<n;i++) { cout<<p[i]<<t" "; } return 0;} 动态输入二维变量: #include <ios

js中多维数组转一维

法一:使用数组map()方法,对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组. var arr = [1,[2,[[3,4],5],6]]; function unid(arr){ var arr1 = (arr + '').split(',');//将数组转字符串后再以逗号分隔转为数组 var arr2 = arr1.map(function(x){ return Number(x); }); return arr2; } console.log(unid(arra)); 法二

codevs1068乌龟棋-四维DP,五维如何缩减一维

我们从起点x开始暴力枚举所有决策 于是可以得到如下转移 void dfs(int x,int A,int B,int C,int D,int y) { if (x==n) {ans=max(ans,y);} if (A) dfs(x+1,A-1,B,C,D,y+a[x+1]); if (B) dfs(x+2,A,B-1,C,D,y+a[x+2]); if (C) dfs(x+3,A,B,C-1,D,y+a[x+3]); if (D) dfs(x+4,A,B,C,D-1,y+a[x+4]); }

07-JAVA一维数组及多维数组(2)

1. Java数组的定义: 1) 和其它编程语言的数组定义基本相同,具有2要素,分别是类型一致(数组中的数据都是一种类型的)和定长(初始化时就已经确定长度,这也意味着数组的内存空间也确定了,即大小不变了): 2) 在Java中数组类型也是一种引用类型,底层是用面向对象的类实现的: 3) 定义数组:支持两种格式 i. Java格式:type[] arrayName; ii. 传统的C语言格式:type arrayName[];  // 为了满足C程序员的编程习惯 !!更加推荐Java风格的,因为其