Мне нужна помощь с Interp1 (линейный метод от Matlab). Проблема заключается в следующем:Проблемы с диапазоном при вычислении линейной интерполяции в matlab
У меня есть вектор с значениями функций, называемыми fx.
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 = [0.00111:0.0111:5];
я получил некоторую помощь, прежде чем с вычислением интерполяции следующим образом:
f = @(xq)interp1(x, fx, xq);
[~, x_t] = ode45(@(t,x)f(x), [0 1], 2);
откуда значение хда берется?
Я получаю некоторые значения 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
Hi @Dan Я прошу прощения за недостаток информации, приведенной в моей проблеме !. Я постараюсь лучше объяснить свою проблему. My fx - действительно ODE. Обычно мы пишем x_dot = f (x), но в моем случае у меня нет функции f (x). У меня просто есть значения функции (это fx). У меня есть тестовая функция для x_dot (которая дается явно) и тестовое решение. Я нашел метамодель (приближение RHS x_dot). Эта метамодель - это моя fx, которая является ODE и дискретной функцией x, которую я хочу решить. Надеюсь, это прояснит ваши вопросы. Я бы с удовольствием предоставил больше информации. –
Еще один раз: D У меня нет кучки точек, у меня есть значения функций, заданные как вектор-столбец. –
@SergioSarmiento Можете ли вы (теоретически) решить это вручную? Я бы так не подумал ... Я уверен, что вам нужно 'f' в функциональной форме перейти к ode45 ... просто взгляните на примеры в документах. – Dan