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;

  

 

转载于:https://www.cnblogs.com/Iknowyou/p/7069067.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值