我需要Interp1(來自matlab的線性方法)的幫助。 問題如下:在matlab中計算線性插值時的範圍問題
我有一個向量,函數值爲fx。
f = @(xq)interp1(x, fx, xq);
[~, x_t] = ode45(@(t,x)f(x), [0 1], 2);
哪裏值XQ來自:
fx = 1.0e+03 *
2.0500
-0.0005
-0.0005
-0.0004
-0.0003
-0.0004
-0.0005
-0.0005
-0.0006
-0.0007
-0.0008
-0.0008
-0.0009
-0.0010
-0.0011
-0.0011
-0.0012
-0.0013
-0.0013
-0.0014
-0.0015
-0.0015
-0.0016
-0.0016
-0.0017
-0.0018
-0.0018
-0.0019
-0.0019
-0.0020
-0.0020
-0.0021
-0.0022
-0.0022
-0.0023
-0.0023
-0.0024
-0.0024
-0.0025
-0.0025
-0.0026
-0.0027
-0.0027
-0.0028
-0.0028
-0.0029
-0.0029
-0.0030
-0.0030
-0.0031
-0.0031
-0.0032
-0.0032
-0.0033
-0.0033
-0.0034
-0.0034
-0.0035
-0.0035
-0.0036
-0.0036
-0.0037
-0.0037
-0.0038
-0.0038
-0.0038
-0.0039
-0.0039
-0.0040
-0.0040
-0.0041
-0.0041
-0.0042
-0.0042
-0.0043
-0.0043
-0.0043
-0.0044
-0.0044
-0.0045
-0.0045
-0.0046
-0.0046
-0.0046
-0.0047
-0.0047
-0.0048
-0.0048
-0.0048
-0.0049
-0.0049
-0.0050
-0.0050
-0.0050
-0.0051
-0.0051
-0.0051
-0.0052
-0.0052
-0.0053
-0.0053
-0.0053
-0.0054
-0.0054
-0.0054
-0.0055
-0.0055
-0.0055
-0.0056
-0.0056
-0.0056
-0.0057
-0.0057
-0.0057
-0.0057
-0.0058
-0.0058
-0.0058
-0.0059
-0.0059
-0.0059
-0.0059
-0.0060
-0.0060
-0.0060
-0.0060
-0.0061
-0.0061
-0.0061
-0.0061
-0.0062
-0.0062
-0.0062
-0.0062
-0.0062
-0.0063
-0.0063
-0.0063
-0.0063
-0.0063
-0.0063
-0.0064
-0.0064
-0.0064
-0.0064
-0.0064
-0.0064
-0.0064
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0065
-0.0064
-0.0064
-0.0064
-0.0064
-0.0064
-0.0064
-0.0064
-0.0063
-0.0063
-0.0063
-0.0063
-0.0062
-0.0062
-0.0062
-0.0062
-0.0061
-0.0061
-0.0061
-0.0061
-0.0060
-0.0060
-0.0060
-0.0059
-0.0059
-0.0059
-0.0058
-0.0058
-0.0058
-0.0057
-0.0057
-0.0056
-0.0056
-0.0055
-0.0055
-0.0054
-0.0054
-0.0053
-0.0053
-0.0052
-0.0052
-0.0051
-0.0051
-0.0050
-0.0050
-0.0049
-0.0048
-0.0048
-0.0047
-0.0047
-0.0046
-0.0045
-0.0045
-0.0044
-0.0043
-0.0042
-0.0042
-0.0041
-0.0040
-0.0039
-0.0038
-0.0038
-0.0037
-0.0036
-0.0035
-0.0034
-0.0033
-0.0032
-0.0031
-0.0030
-0.0030
-0.0029
-0.0028
-0.0027
-0.0025
-0.0024
-0.0023
-0.0022
-0.0021
-0.0020
-0.0019
-0.0018
-0.0017
-0.0015
-0.0014
-0.0013
-0.0012
-0.0010
-0.0009
-0.0008
-0.0006
-0.0005
-0.0004
-0.0002
-0.0001
0.0000
0.0002
0.0003
0.0005
0.0006
0.0008
0.0009
0.0011
0.0013
0.0014
0.0016
0.0018
0.0019
0.0021
0.0023
0.0024
0.0026
0.0028
0.0030
0.0032
0.0034
0.0035
0.0037
0.0039
0.0041
0.0043
0.0045
0.0047
0.0049
0.0052
0.0054
0.0056
0.0058
0.0060
0.0063
0.0065
0.0067
0.0069
0.0072
0.0074
0.0077
0.0079
0.0081
0.0084
0.0086
0.0089
0.0092
0.0094
0.0097
0.0100
0.0102
0.0105
0.0108
0.0111
0.0113
0.0116
0.0119
0.0122
0.0125
0.0128
0.0131
0.0134
0.0137
0.0140
0.0144
0.0147
0.0150
0.0153
0.0157
0.0160
0.0163
0.0167
0.0170
0.0174
0.0177
0.0181
0.0185
0.0188
0.0192
0.0196
0.0199
0.0203
0.0207
0.0211
0.0215
0.0219
0.0223
0.0227
0.0231
0.0235
0.0239
0.0244
0.0248
0.0252
0.0257
0.0261
0.0266
0.0270
0.0275
0.0279
0.0284
0.0289
0.0293
0.0298
0.0303
0.0308
0.0313
0.0318
0.0323
0.0328
0.0333
0.0338
0.0343
0.0349
0.0354
0.0359
0.0365
0.0370
0.0376
0.0381
0.0387
0.0393
0.0398
0.0404
0.0410
0.0416
0.0422
0.0428
0.0434
0.0440
0.0447
0.0453
0.0459
0.0466
0.0472
0.0479
0.0485
0.0492
0.0499
0.0505
0.0512
0.0519
0.0526
0.0533
0.0540
0.0547
0.0554
0.0562
0.0569
0.0576
0.0584
0.0591
0.0599
0.0607
0.0615
0.0622
0.0630
0.0638
0.0646
0.0654
0.0663
0.0671
0.0679
0.0688
0.0696
0.0705
0.0713
0.0722
0.0731
0.0740
0.0749
0.0758
0.0767
0.0776
0.0785
0.0794
0.0804
0.0813
我與計算插值如下之前,已經有了x軸
x = [0.00111:0.0111:5];
我有一些幫助的值?
解決這個ODE後,我得到了一些NaN值。我不懂爲什麼。我相信我的fx值和x值是正確的,或者可能不是?fx的值是固定的,所以我正在多次更改x的值,但沒有任何外觀。
爲什麼我會得到NaN值,我該如何解決這個問題?它在範圍之外?
我知道這不是對你們中許多人來說最有趣也是最具挑戰性的問題,但我真的很感謝你們的幫助! :)
預先感謝您!
我ODE45插值後的函數f後的結果:
x_t =
2.0000
1.8696
1.7382
1.6081
1.4810
1.3584
1.2412
1.1304
1.0262
0.9290
0.8388
0.7555
0.6788
0.6084
0.5440
0.4853
0.4319
0.3834
0.3395
0.2999
0.2643
0.2323
0.2038
0.1784
0.1559
0.1360
0.1186
0.1035
0.0903
0.0788
0.0688
0.0601
0.0523
0.0452
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
嗨@丹我非常抱歉在我的問題給出的信息缺乏!我會盡力更好地解釋我的問題。 我的FX確實是一個ODE。 通常我們寫x_dot = f(x),但在我的情況下我沒有顯式的函數f(x)。我只是有函數值(這是fx)。 我有一個測試函數x_dot(這是明確給出)和測試解決方案。我找到了一個元模型(近似於x_dot的RHS)。這個元模型是我的fx,它是x的一個ODE和離散函數,我想解決這個問題。 我希望這能澄清你的問題。我很樂意提供更多的信息是必要的。 –
又一次:D我沒有一堆點,我有作爲列向量給出的函數值。 –
@SergioSarmiento你能夠(理論上)用手解決這個問題嗎?我不這麼認爲......我敢肯定,你需要在功能性表單中傳遞「f」才能傳遞給ode45 ......只是看看文檔中的例子。 – Dan