用matlab求解有限差分法问题

2024-05-17 07:43

1. 用matlab求解有限差分法问题

那是因为绘图的轴限制错了,也改过来就行了
axis ( [ 0 ,17 ,0 ,10 ,0 ,100 ]) ; 
这个地方改成
axis ( [ 0 ,42 ,0 ,24,0 ,100 ]) ; %表示的意思是限制x,y,z三个轴的显示长度
%方括号里面的意思是[x的最小值,x的最大值,y的最小显示值,y的最大显示值,z的最小显示值,z的最大显示值]
还有后面的text那几句可以改了,改轴的标签吗,可以这样
text ( - 6 ,10 ,120 ,'v' ,'FontSize' ,10) ; 
	text ( - 4 ,12 ,0 ,'h' ,'FontSize' ,10) ; 
	text (18 ,0 ,0 ,'b' ,'FontSize' ,10) ;三句改成下面一句
xlabel('b'),ylabel('h'),zlabel('v')
同样的下面的也可以改
text ( - 2 ,10 ,'h' ,'FontSize' ,10) ; 
	text (17 ,1 ,'b' ,'FontSize' ,10) ;改成:
xlabel('b'),ylabel('h'), 

也就是成图开始下面改成:
%- - - - - - - - - - - - 结果成图- - - - - - - - - - 
	subplot (1 ,2 ,1)      % 分割图形窗口为1 ×2 个子坐标系,且第1个为当前坐标系 
	mesh ( v2)                        % 绘三维曲面图 
	h1 = mesh ( v2) ; 
	set ( h1 ,'LineWidth' ,1 ,'EdgeColor' ,' b' ) 
    xlabel('b'),ylabel('h'),zlabel('v')
	axis ( [ 0 ,42 ,0 ,25 ,0 ,100 ]) ; 
	subplot (1 ,2 ,2) 
	contour ( v2 ,'k-' )                % 绘等值线图 
    xlabel('b'),ylabel('h')

用matlab求解有限差分法问题

2. matlab中怎样用有限差分法

可以看一下这个
http://wenku.baidu.com/link?url=apvtPIhq4XERQ9tv_8dNdQng0vIMbQF0LKMxGtoufj7gnguN3Gd_jyQfLC9q984HfrX1Va2ak1rMrukDGeuR4GB16I_U0lG5PPdW2UVQaEe
有限差分法及matlab实现

3. 求助matlab中有限差分法中追赶法的实现

for ii=1:n
 B=zeros(M-1,1);
 A=zeros(M-2,1);
 C=zeros(M-2,1);
 S=zeros(M-1,1);
 for ii=1:M-2
 B(ii)=1+2*r;
 A(ii)=-r;
 C(ii)=-r;
  S(ii)=u(ii+1,1);
  end
    B(M-1)=1+2*r;
    S(M-1)=u(M,1);
    u(1,2)=0;
    u(M+1,2)=0;
    
    S(1,1)=S(1,1)+r*u(1,2);
    S(M-1,1)=S(M-1,1)+r*u(M+1,2);
   S(1) = S(1)/B(1);
    T = B(1);
    k = 2;
    while k~=M
        B(k-1)=C(k-1)/T;
        T=B(k)-A(k-1)/B(k-1);
        S(k)=(S(k)-A(k-1)*S(k-1))/T;
        k=k+1;
    end
    k=1;
    while k~=M-1
        S(M-1-k)=S(M-1-k)-B(M-1-k)*S(M-k);
        k=k+1;
    end
    u(2:M,2)=S;        
  u(:,1)=u(:,2);      
end
如题,我写的一段小程序,实现A*u(j-1,n)+B*u(j,n)+C*u(j+1,n)=u(j,n-1)差分方程的求解,其中u(j,n-1)记为S(),  这是程序中的一小部分,最后的输出结果就是u中的数据基本都是inf无穷大,我查了一下,A和C数组中的数据都正确,但是B数组中的数据变成
-0.056738
-Inf
-0.056738
-Inf
-0.056738
-Inf
1.128
我找了一下午 实在看不到错误在哪里了。。求达人指教指教! 谢谢

求助matlab中有限差分法中追赶法的实现

4. 如何用MATLAB实现:电磁场二维圆形场域的有限差分法(重点是圆形)

按说任何形状的区域,都可以用三角网格划分为有限个小区域来表示
误差大,效果不好,很多时候都是三角网格的划分不合理,或者密度不够

对于圆形区域来说,三角网格划分可能是最有效的区域划分办法了
matlab的pdetool里面有一套完整的区域三角划分和偏微分方程解法

5. 如何用matlab实现有限差分法求解静电场边值问题!!

开放性使MATLAB广受用户欢迎。除内部函数外,所有MATLAB主包文件和各种工具包都是可读可修改的文件,用户通过对源程序的修改或加入自己编写程序构造新的专用工具包。

如何用matlab实现有限差分法求解静电场边值问题!!

6. matlab 利用有限差分法解偏微分方程 矩阵out of memory

这个真好像没有办法,matlab矩阵太大了就是不行!

7. 基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急

你是有限差分法不懂,还是matlab语言不懂?前者不懂可以去看数值计算方面的书籍,后者不懂得先去学matlab。

基于有限差分法求解的二维谐振子的MATLAB程序如下。哪位大神能帮我做个注明啊,完全看不懂啊,,急

8. 什么是有限元法和有限差分法?

有限元法(finite element method)是一种高效能、常用的数值计算方法。科学计算领域,常常需要求解各类微分方程,而许多微分方程的解析解一般很难得到,使用有限元法将微分方程离散化后,可以编制程序,使用计算机辅助求解。
有限差分方法(finite difference method)一种求偏微分(或常微分)方程和方程组定解问题的数值解的方法,简称差分方法。

扩展资料:
有限差分法(FDM)的起源,讨论其在静电场求解中的应用。以铝电解槽物理模型为例,采用FDM对其场域进行离散,使用MATLAB和C求解了各节点的电位。由此,绘制了整个场域的等位线和电场强度矢量分布。同时,讨论了加速收敛因子对超松弛迭代算法迭代速度的影响,以及具有正弦边界条件下的电场分布。
有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。
该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。
该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。
参考资料来源:百度百科-有限元法
参考资料来源:百度百科-有限差分法
最新文章
热门文章
推荐阅读