matlab 扩散方程求系数

目前我在研究一种材料的在高温湿环境的透湿情况,分别在不同时间不同材料的位置测出来了含水量,时间t、位置x、含水量c是符合菲克第二定律,希望指导如何编程求出公式里面的系数D,测量的数据如图

img

img

1.因为是4种材料,所以对源数据重新排列

img


2.分别计算4种材料的扩散系数,思路为,计算c对t的偏导—计算c对x的二阶偏导—计算扩散系数D

clc
clear
%% 计算第一种材料
%读取数据
t1=xlsread('1.xlsx','A2:A5');
x1=xlsread('1.xlsx','B2:B5');
c1=xlsread('1.xlsx','C2:C5');

%计算c对t的偏导
dc1=[c1(2)-c1(1),c1(3)-c1(2),c1(4)-c1(3)];
dt1=[t1(2)-t1(1),t1(3)-t1(2),t1(4)-t1(3)];
dc_t1=dc1./dt1;

%计算c对x的二阶偏导
dx1=[x1(2)-x1(1),x1(3)-x1(2),x1(4)-x1(3)];
dc_x1=dc1./dx1;

ddc_x1=[dc_x1(2)-dc_x1(1),dc_x1(3)-dc_x1(2)];
ddx1=[dx1(2)-dx1(1),dx1(3)-dx1(2)];
ddc_x1=ddc_x1./ddx1;

%计算材料1的扩散系数D
D11=dc_t1(1)/ddc_x1(1)
D12=dc_t1(2)/ddc_x1(2)

%% 计算第二种材料
%读取数据
t2=xlsread('1.xlsx','A7:A10');
x2=xlsread('1.xlsx','B7:B10');
c2=xlsread('1.xlsx','C7:C10');

%计算c对t的偏导
dc2=[c2(2)-c2(1),c2(3)-c2(2),c2(4)-c2(3)];
dt2=[t2(2)-t2(1),t2(3)-t2(2),t2(4)-t2(3)];
dc_t2=dc2./dt2;

%计算c对x的二阶偏导
dx2=[x2(2)-x2(1),x2(3)-x2(2),x2(4)-x2(3)];
dc_x2=dc2./dx2;

ddc_x2=[dc_x2(2)-dc_x2(1),dc_x2(3)-dc_x2(2)];
ddx2=[dx2(2)-dx2(1),dx2(3)-dx2(2)];
ddc_x2=ddc_x2./ddx2;

%计算材料2的扩散系数D
D21=dc_t2(1)/ddc_x2(1)
D22=dc_t2(2)/ddc_x2(2)

%% 计算第三种材料
%读取数据
t3=xlsread('1.xlsx','A12:A15');
x3=xlsread('1.xlsx','B12:B15');
c3=xlsread('1.xlsx','C12:C15');

%计算c对t的偏导
dc3=[c3(2)-c3(1),c3(3)-c3(2),c3(4)-c3(3)];
dt3=[t3(2)-t3(1),t3(3)-t3(2),t3(4)-t3(3)];
dc_t3=dc3./dt3;

%计算c对x的二阶偏导
dx3=[x3(2)-x3(1),x3(3)-x3(2),x3(4)-x3(3)];
dc_x3=dc3./dx3;

ddc_x3=[dc_x3(2)-dc_x3(1),dc_x3(3)-dc_x3(2)];
ddx3=[dx3(2)-dx3(1),dx3(3)-dx3(2)];
ddc_x3=ddc_x3./ddx3;

%计算材料3的扩散系数D
D31=dc_t3(1)/ddc_x3(1)
D32=dc_t3(2)/ddc_x3(2)

%% 计算第四种材料
%读取数据
t4=xlsread('1.xlsx','A17:A20');
x4=xlsread('1.xlsx','B17:B20');
c4=xlsread('1.xlsx','C17:C20');

%计算c对t的偏导
dc4=[c4(2)-c4(1),c4(3)-c4(2),c4(4)-c4(3)];
dt4=[t4(2)-t4(1),t4(3)-t4(2),t4(4)-t4(3)];
dc_t4=dc4./dt4;

%计算c对x的二阶偏导
dx4=[x4(2)-x4(1),x4(3)-x4(2),x4(4)-x4(3)];
dc_x4=dc4./dx4;

ddc_x4=[dc_x4(2)-dc_x4(1),dc_x4(3)-dc_x4(2)];
ddx4=[dx4(2)-dx4(1),dx4(3)-dx4(2)];
ddc_x4=ddc_x4./ddx4;

%计算材料4的扩散系数D
D41=dc_t4(1)/ddc_x4(1)
D42=dc_t4(2)/ddc_x4(2)

3.得到结果

img


(因为每种材料有4组数据,公式为二阶偏微分,所以每种材料会得到两个扩散系数,具体用哪个或者怎么处理看题主后续工作)
(我也是材料专业的,因为代码是临时写的,没有加注释,看不明白的地方,私聊)

C的原函数是啥?要知道二元函数关系式才能求偏导吧

希望可以提供一些新思路