zoukankan      html  css  js  c++  java
  • FEM一维

      

    问题原型 

    边界条件:

     

    (1)取 alpha,beta=1 f=x

    (2)p r q=1

    (4)(5)

    实际结果如下:

     

     完整代码如下

    clc; clear all
    M=40; % Local-segment number
    N=M+1;%points number
    av=1;bv=1;L=1;le=L/M;
    alpha=ones(M,1)'*av;
    beta=ones(M,1)'*bv;
    l=ones(M,1)'*le;
    f=[1:M]*le;
    % 2. boundary condition
    p=1;%x=0 position
    r=1;%x=L position
    q=1;
    %3 print input
    
    %4 get K: K(i,i) to a , k(i+1,i) to c
    i=2:N-1;
    a=[alpha(1)/l(1)+beta(1)*l(1)/3,...
            alpha(i-1)./l(i-1)+beta(i-1).*l(i-1)/3  ...
              + alpha(i)./l(i)+beta(i).*l(i)/3, ...
              alpha(M)/l(M)+beta(M)*l(M)/3]';
    i=1:N-1;
    c=[-alpha(i)./l(i)+beta(i).*l(i)/6]';
    
    %5 get b
    i=2:N-1;
    b=[f(1)*l(1)/2,  ...
        f(i-1).*l(i-1)/2+f(i).*l(i)/2, ...
        f(M)*l(M)/2]';
    
    %6 boudary condition apply
    
    a(end)=a(end)+r; %x=L third condition
    b(end)=b(end)+q;
    
    K=diag(a,0)+diag(c,-1)+diag(c,+1);
    K(1,1)=1; b(1)=p;K(1,2:end)=0;%x=0 1st condition
    
    %7 compute
    x=(0:M)*le;
    y=K^(-1)*b;
    plot(x,y);
    
    hold on;
    x1=(0:100)*0.01;
    c1=-1/2/exp(1);
    c2=1-c1;
    y1=c1*exp(x1)+c2*exp(-x1)+x1;
    plot(x1,y1,'-r');
    hold off;
    

      

  • 相关阅读:
    pickle示例
    Python 升级致yum 问题,pip 异常
    jdk 环境
    zookeeper
    Kafka-Monitor
    Kafka
    nxlog 日志采集
    elasticsearch 基本配置
    elasticsearch 单机多实例
    Elaticsearch 集群
  • 原文地址:https://www.cnblogs.com/Iknowyou/p/7069067.html
Copyright © 2011-2022 走看看