0

いくつかの定数 (Hz、h、LR、k、T) を使用する以下の関数を最小限に抑えたいのですが、最終的にエラーが発生します....この問題から抜け出してください.... .rpt ファイルをロードしましたコードの上に表示されている値が含まれています.......よろしくお願いします。

3.25E+008   9.55E+002
3.03E+008   1.61E+005
2.77E+008   3.35E+005
2.54E+008   1.98E+006
1.17E+008   1.48E+003
1.13E+008   6.20E+004
1.00E+008   7.96E+005
9.15E+007   2.12E+003

format compact
format long

Hz = 3;
h = 3.99E-10;
LR = 0.1;
k = 8.3145;
T = 297.15;

load sdata_ndata.rpt
count = size(sdata_ndata,1);
xdata = zeros(count,1);% Stress
ydata = zeros(count,1);% Nf

for i=1:count

   xdata(i) = sdata_ndata(i,1);
   ydata(i) = sdata_ndata(i,2);

end

%Function to calculate the sum of residuals for a given p1 and p2
fun = @(p) sum((ydata-(((p(1)*(Hz*h*(1-LR))*xdata)*(exp((p(2))/(k*T))))/(((k*T)^2)*((exp((p(1)*xdata)/(k*T)))-(exp((p(1)*LR*xdata)/(k*T))))))).^2);

%starting guess
pguess = [1.338463e-003;1.234006e+005];

%optimise
[p,fminres] = fminsearch(fun,pguess)
4

1 に答える 1

1

エラーは の定義にありfunます。そこで、その部分

...(k*T))))/(((k*T)^2)...

(n,n)予想される形状ではなく、形状になるマトリックス分割を作成します(n,1)。したがって、減算は機能しなくなります。除算を要素ごとの除算に置き換えます

...(k*T))))./(((k*T)^2)...
于 2016-02-04T08:29:08.460 に答える