椭圆型差分
来源:互联网 发布:网络直播遗体火化 编辑:程序博客网 时间:2024/06/10 04:40
椭圆型差分
//精确解function z = gFun(x,y) z = (%e)^( %pi * ( x + y)) * sin( %pi * x) * sin( %pi * y);endfunction//外力function z = fFun(x,y) z = 2 * %pi * %pi * (%e)^( %pi * ( x + y)) .* ( sin( %pi * x) .* cos( %pi * y) + cos( %pi * x) .* sin( %pi * y));endfunction//稀疏矩阵function y = createMatrixA( M) B = diag( ones(M,1) * 4) + diag( -1 * ones(M -1,1), 1) + diag( -1 * ones(M-1,1), -1); diagB = []; for i = 1 : M diagB = sysdiag(diagB,B); end A = diagB; LA = diag( -1 *ones ( M * M - M, 1), -1 * M); UA = diag( -1 * ones( M * M - M ,1), M); A = A + LA + UA ; y = A; endfunction//direclet边界function y = boundary(x0,y0) y = 0;endfunction//右向量function y = createVectorB(M, h,X, Y) B = zeros(M * M , 1); for i = 1 : M for j = 1 : M tp = 0; tp = -1 * h * h * fFun(X (i + 1), Y(i + 1)); if ( i == 1) then tp = tp + boundary(X(i + 1 - 1),Y(i + 1)); end if ( i == M) then tp = tp + boundary(X(i + 1 + 1), Y(i + 1)); end if ( j == 1) then tp = tp + boundary(X(i + 1), Y(i + 1 - 1)); end if ( j == M) then tp = tp + boundary(X(i + 1), Y(i + 1 + 1)); end B( (i -1) * M + j) = tp; end end y= B; endfunction//网格剖分M = 30;X = linspace(0,1, M + 2);Y = linspace(0,1, M + 2);A = createMatrixA(M);//A = sparse(A);b = createVectorB(M, X(2) - X(1), X,Y);solution = A \b;solution = matrix( solution, M, M);globalXY = feval( X(2:M + 1), Y(2:M+1), gFun);mesh( X(2:M+1),Y(2:M+1), globalXY);figuremesh( X(2:M+1), Y(2:M+1), solution);err = abs(solution - globalXY);//figure//mesh(X(2:M+1), Y(2:M+1), err)//plot3d(X(2:M+1), Y(2:M+1),err)
注:1.微分方程差分形式数值解到此为止
2. 椭圆型差分,求解稀疏矩阵,可采用gauss-sidel,jacobi迭代求解,特殊的共轭梯度法;
3, 双曲型守恒性方程、差分收敛性不再累赘。 双曲型守恒性方程有点深度,有时间再搞;
4. 差分形式对于边界处理繁琐,精度低,但简单易懂;
5. 有限元处理偏微分涉及到图形学相关,funny
2. 椭圆型差分,求解稀疏矩阵,可采用gauss-sidel,jacobi迭代求解,特殊的共轭梯度法;
3, 双曲型守恒性方程、差分收敛性不再累赘。 双曲型守恒性方程有点深度,有时间再搞;
4. 差分形式对于边界处理繁琐,精度低,但简单易懂;
5. 有限元处理偏微分涉及到图形学相关,funny
0 0
- 椭圆型差分
- 椭圆
- 椭圆ellipse
- 椭圆曲线
- 绘制椭圆
- 椭圆曲线拟合
- 椭圆追踪
- 椭圆曲线
- 椭圆拟合
- 椭圆拟合
- 椭圆图片
- 椭圆图片
- tikz-椭圆
- WEBGL椭圆
- 椭圆运动
- 椭圆曲线
- 1105.椭圆
- sdnu1105.椭圆
- 双曲型偏微分(谱方法)
- Linux中安装nginx
- P01 (*) 获取列表最后一个元素【重补】
- Android Studio——android中的文件操作详解以及内部存储和外部存储
- 月入30K的程序员要避开哪些坑?
- 椭圆型差分
- Tomcat去除项目名称和端口号,直接使用ip地址访问项目的方法
- Android PullToRefresh 源码分析
- Android 应用程序无响应(ANR)报错原因
- [Coursera]算法基础_Week9_考试_Q3
- Trees Made to Order
- threadpool——python线程池
- JNI 调用第三方dll 报错 RUNTIME ERROR R6031
- Space Ant