问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

matlab编程,有限元方法求解Helmholtz方程的边值问题用,矩阵法

发布网友 发布时间:2022-04-23 05:11

我来回答

1个回答

热心网友 时间:2023-10-15 21:40

clc
clear
tic;
% n 是行与列划分的格子数,对整个[0,1]*[0,1]有n^2个划分,can为方程中的参数k
%这里我们用1,2,3按逆时针来表示一个三角形的各个顶点
% s是一个n^2*10的关联矩阵,s(i,1)表示第i个三角形,s(i,2),s(i,3),s(i,4)分别表示第i个三角形的1,2,3所对应的顶点
% s(i,5),s(i,6);s(i,7),s(i,8);s(i,9),s(i,10)分别表示顶点1,2,3所代表的坐标
%生成关联矩阵s
%A是总刚矩阵
%声明符号变量x y
n=20;
can=20;
s=zeros(2*n^2,10);
h=1/n;
st=1/(2*n^2);
A=zeros((n+1)^2,(n+1)^2);
syms x y;
for  k=1:1:2*n^2
        s(k,1)=k;
        q=fix(k/(2*n));
        r=mod(k,(2*n));
        if (r~=0)
            r=r;
        else r=2*n;q=q-1;
        end
        if (r<=n)
            s(k,2)=q*(n+1)+r;
            s(k,3)=q*(n+1)+r+1;
            s(k,4)=(q+1)*(n+1)+r+1;
            s(k,5)=(r-1)*h;
            s(k,6)=q*h;
            s(k,7)=r*h;
            %%
            % 
            %   for x = 1:10
            %       disp(x)
            %   end
            % 
            s(k,8)=q*h;
            s(k,9)=r*h;
            s(k,10)=(q+1)*h;
        else
            s(k,2)=q*(n+1)+r-n;
            s(k,3)=(q+1)*(n+1)+r-n+1;
            s(k,4)=(q+1)*(n+1)+r-n;
            s(k,5)=(r-n-1)*h;
            s(k,6)=q*h;
            s(k,7)=(r-n)*h;
            s(k,8)=(q+1)*h;
            s(k,9)=(r-n-1)*h;
            s(k,10)=(q+1)*h;
        end
end
%下面生成基函数L(i)表示第i个点顶点的基函数
%生成单刚矩阵d
%生成单刚矩阵并将其加入总纲矩阵
d=zeros(3,3);
B=zeros((n+1)^2,1);
b=zeros(3,1);
%生成A的总刚
for   k=1:1:2*n^2
     L(1)=(1/(2*st))*((s(k,7)*s(k,10)-s(k,9)*s(k,8))+(s(k,8)-s(k,10))*x+(s(k,9)-s(k,7))*y);
     L(2)=(1/(2*st))*((s(k,9)*s(k,6)-s(k,5)*s(k,10))+(s(k,10)-s(k,6))*x+(s(k,5)-s(k,9))*y);
     L(3)=(1/(2*st))*((s(k,5)*s(k,8)-s(k,7)*s(k,6))+(s(k,6)-s(k,8))*x+(s(k,7)-s(k,5))*y);
     for i=1:1:3
        for j=i:3
            d(i,j)=int(int(((((diff(L(i),x))*(diff(L(j),x)))+((diff(L(i),y))*(diff(L(j),y))))-((can^2)*L(i)*L(j))),x,0,1),y,0,1);
            d(j,i)=d(i,j);
        end
     end   
     for i=1:1:3
         for j=1:1:3
             A(s(k,(i+1)),s(k,(j+1)))=A(s(k,(i+1)),s(k,(j+1)))+d(i,j);
         end
     end
     for i=1:1:3
         b(i)=int(int((L(i)),x,0,1),y,0,1);
         B(s(k,(i+1)),1)=B(s(k,(i+1)),1)+b(i);
     end
      
end
%下面根据边界条件来求解有限元方程组Mx=B,齐次边界条件约掉了很多项
M=zeros((n+1)^2,n^2);
j=n^2;
for i=(n^2+n):-1:1
    if ((mod(i,(n+1)))~=1)
        M(:,j)=A(:,i);
        j=j-1;
    else continue
    end
end
%preanswer是未知点的值是(n+1)^2*(n^2)的
preanswer=M\B;
%得到所有节点的值
answer=zeros((n+1)^2,1);
j=1;
for i=1:1:(n^2+n)
    if ((mod(i,(n+1)))~=1)
        answer(i)=preanswer(j);
        j=j+1;
    else answer(i)=0;
    end
end
%%

%   for x = 1:10

%   for x = 1:10

%   for x = 1:10
%       disp(x)
%   end

%       disp(x)
%   end

%       disp(x)
%   end

%生成求解后的图
Z=zeros((n+1),(n+1));
for i=1:1:(n+1)^2
      s=fix(i/(n+1))+1;
      r=mod(i,(n+1));
      if(r==0)
          r=n+1;
          s=s-1;
      else
      end
      Z(r,s)=answer(i);
end
[X,Y]=meshgrid(1:-h:0,0:h:1);
surf(X,Y,Z);
 
 
 
toc;
t=toc;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
amd锐龙r75700g超频性价比装机方案,要核显性能综合表现超 架空电线故障如何排除 ...unexpected T_CONSTANT_ENCAPSED_STRING in 怎么解决这个错啊_百度... php错误Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_S... PHP出现如下情况 syntax error, unexpected T_ENCAPSED_AND_WHITES... php 如何捕获类似于Parse error: syntax error, unexpected T_CONSTA... 挂烫机如何熨西装 戗驳领西装怎么熨烫 西装前片怎么推拉拔烫 西装能不能拿去烫 matlab有限元结构动力学分析与工程应用的源程序怎么用 MATLAB有限元应力分析详细指导 结构分析的有限元法与MATLAB程序设计 里面k=stiffnessmat... Matlab是大型通用有限元分析软件吗 结构分析有限元法与MATLAB程序设计 怎么用matlab搭建有限元转子模型?求程序 求助一个问题matlab的有限元分析 对弹簧元的受力分析,常用SpringElementStiffness函数没有?怎么回事? 有限元用MATLAB分析 下列程序中参数文件格式,头文件代码,函数代码,主程序代码分别是什么 做matlab编程,ANSYS有限元分析,前途如何? 如何用MATLAB求解有限元方法中的方程组? matlab与有限元分析与ANAYSE软件和NASTRAN软件在做有限元是的的区别,特点是什么? 苹果手机12是不是5G手机? 用matlab做有限元分析(FEA)一个车框架 苹果12是不是5G手机? Matlab有限元应变应力分析: iphone12是不是支持5G? 请问一下matlab中能进行有限元分析吗 苹果12min是5g手机吗 iphone12是5G手机吗? iphone12是不是5G手机? 学习matlab 和 ansys 怎么在MATLAB中用有限元法求拉普拉斯算子的特征值!! 适合发朋友圈的高情商句子有哪些? 适合发圈的高情商短句有哪些? 适合早上发朋友圈的高情商句子有哪些? 适合晚上发朋友圈的高情商句子有哪些? 深夜发朋友圈高情商句子有哪些? 收到礼物高情商发朋友圈句子都有哪些? 高情商发朋友圈被秒赞的句子有哪些? 高情商女人发朋友圈的句子 收到礼物高情商发朋友圈句子有哪些? 正能量的高情商说说 高情商短句发朋友圈 眼妆怎么画,有简单容易上手的方法吗? 化眼妆需要哪几种化妆工具,该怎么化... 大学女孩子应该掌握的基本化妆步骤,都有哪些? 化妆时,化眼部的重要步骤有哪些? 请问:现在什么手机视频软件可以播放禁播的动漫? 下什么软件可以看禁播视频 有没有能看到被禁了的动漫的软件(除bilibili和布丁外)