因为只知道R(x)的一些x及对应的函数值,并不知道表达式所以。。。。刚刚接触matlab相关的数值计算:
自己打算这样做:
for i = 1:1:24000
filename=sprintf('%d.Rrc',i);
ex = importdata(filename); % read the .Rrc file for R_r([J/cm2])
data = ex.data;
R_x = data(:,2)
%
x = 0.005:0.01:0.4950;
d = 0.00048;
r = 0.0002;
lim = (d-r):0.0001:(d+r);
F_x = sym('2*R_x*x*acos((d^2+x^2-r^2)/(2*d*x))');
F_xi = spline(x,F_x,lim);
M_R = trapz(x,F_xi,lim);
fid = fopen('M_R.dat','w');
fprintf(fid,'%d\n',M_R);
end
fclose(fid);
但是其中插值部分有问题:你还有什么意见或者关于matlab数值计算的学习资料推荐吗?
@fengW: 不用 matlab,让你用手工计算,会吗?
@Launcher: 会啊,但是数据文件太多!
@fengW: 你是不会用 matlab 积分公式,还是不会使用 matlab 从文件读取数据?
@Launcher: 恩 给你具体说我遇到的问题吧?
我从文件读到数据是关于一个R(x)函数及对于的一些x点的值,我先通过x的这些点的值求出整个积分部分的值,让后再插值、积分得到。但具体实现时好像自己的程序有问题,
@fengW: 这我就不知道了。
@Launcher: 已解决
请原谅我不懂。