Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab:循环通过2个积分得到一系列值_Matlab_Numerical Methods_Integral_Numerical Integration - Fatal编程技术网

Matlab:循环通过2个积分得到一系列值

Matlab:循环通过2个积分得到一系列值,matlab,numerical-methods,integral,numerical-integration,Matlab,Numerical Methods,Integral,Numerical Integration,我编写了一些matlab代码,加载到3个文本文件中,以定义r、t和t变量(每个文件包含763个数字的垂直列表) 我首先需要对每个t和r值运行第一个积分,以导出“tr”。我知道我需要为此包含一个for循环,因此代码会在每个t和r对上迭代—我不知道如何迭代 其次,我取这个新的tr值,需要做2次线性插值。第一个线性插值将使用t和r来找到一个新的tru\r,第二个线性插值将使用t和t之间的线性插值来找到一个新的tru\t 第二个积分相当简单——同样,我不知道如何做for循环来迭代每个新的tr_r和tr_

我编写了一些matlab代码,加载到3个文本文件中,以定义r、t和t变量(每个文件包含763个数字的垂直列表)

我首先需要对每个t和r值运行第一个积分,以导出“tr”。我知道我需要为此包含一个for循环,因此代码会在每个t和r对上迭代—我不知道如何迭代

其次,我取这个新的tr值,需要做2次线性插值。第一个线性插值将使用t和r来找到一个新的tru\r,第二个线性插值将使用t和t之间的线性插值来找到一个新的tru\t

第二个积分相当简单——同样,我不知道如何做for循环来迭代每个新的tr_r和tr_t值

建议?完整的代码如下

谢谢大家!

%Load Data
load ejradius.txt %loads text into workspace
fid = fopen( 'ejradius.txt');
data = textscan(fid, '%f');
fclose(fid);
r = data{1};

load ejtime.txt %loads text into workspace
fid = fopen( 'ejtime.txt');
data = textscan(fid, '%f');
fclose(fid);
t = data{1};

load ejtemp.txt %loads text into workspace
fid = fopen( 'ejtemp.txt');
data = textscan(fid, '%f');
fclose(fid);
T = data{1};

%Constants
h = 6.62607004e-34;
c = 2.9979e10;
k = 1.38064852e-23;

fun = @(x) t-((r)./c).*(1-cos(x))
tr = integral(fun,0,pi./2); 

tr_r = interp1(t,r,linear,tr); %linear interpolation to find new r given t,r, and tr
tr_T = interp1(t,T,linear,tr); %linear interpolation to find new T given t,T, and tr

fun2 = @(f) ((2.*pi.*h.*(f).^3)./c).*(1./exp((h.*(f))./(k.*(tr_T))-1));
f = integral(fun2,3.9e14,3.4e16);

fun3 = @(x) (tr_r.^2).*cos(x)
R = integral(fun3,0,pi./2);
R2 = R.*(2.*pi);
Lt = f.*R2;

我认为答案与的答案相似,我认为答案与的答案相似