Подгонка кривой для нахождения аргумента передаточной функции - PullRequest
0 голосов
/ 17 мая 2018

У меня есть пара векторов данных, x и y, определенных следующим образом:

data = [
     0    0; 
     0.05 1.108646244630E-01;
     0.10 2.217423074817E-01;
     0.15 3.325947375398E-01;
     0.20 4.434863433851E-01;
     0.25 5.543595496420E-01;
     0.30 6.652338361973E-01;
     0.35 7.761094191116E-01;
     0.40 8.869865144820E-01;
     0.45 9.978653384221E-01;
     0.50 1.108746107036E+00];

 x = data(:,1);
 y = data(:,2);

они связаны уравнением

y = (cos(k*L)^2-(0.8194*k*cos(k*L)*sin(k*L))*x;

, где k=3 - фиксированное число.

Теперь я хочу найти правильное значение L, для которого приведенное выше уравнение соответствует моим данным.

Хотя данные выглядят линейными, я хочу найти правильное значение L, для которого данные соответствуют начальной линейной части синусоидальной кривой этой передаточной функции.

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 17 мая 2018

Вот как это сделать с помощью набора инструментов для кривой :

  1. Начните с определения x и y, затем вызовите cftool:

    Command window screenshot

  2. Вы получите следующий экран, на котором вам нужно выбрать свои «данные X» и «данные Y»:

    cftool start screen screenshot

  3. После выбора векторов x и y, которые мы создали ранее, будет показано линейное соответствие по умолчанию:

    cftool default fit screenshot

    (как вы уже можете видеть, это практически идеальное соответствие для отношений между x и y)

  4. Чтобы сделать cftool подходящей для вашей модели, щелкните раскрывающийся список с надписью «Полином» и выберите параметр «Пользовательское уравнение», а затем напишите свою модель. Если установлен флажок Auto fit (по умолчанию), вы сразу же получите соответствие:

    enter image description here

Как вы можете видеть, мы получили это L = 0.7157, но мы также видим, что на самом деле подгонка не проходит через точки, что означает, что хотя бы одно из следующих утверждений верно:

  • Модель (т. Е. Пользовательское уравнение, в котором появляется L) неверна.
  • Задача подбора установлена ​​неправильно (например, найденный L находится за пределами ожидаемых границ и т. Д.).

Вам нужно найти корень проблемы (могут быть неуместные скобки в модели) и исправить ее.

...