Преобразование Лапласа неявной функции

Я работаю с функцией p(t), которая является функцией переменной времени t. У меня нет явного выражения p как функции времени, и я хотел бы применить преобразование Лапласа к выражению, включающему функцию p. Я начал с определения всех параметров как символьных в MATLAB.

syms m ms k t p f;
f=(m+ms/3)*(diff(p(t),t))^2+k*(p(t))^2;

Когда я выполняю эти строки, я получаю эту ошибку.

введите здесь описание изображения

Я думаю, что проблема связана с тем, что я пытаюсь дифференцировать функцию p по отношению к t, но я не уверен. Есть ли способ получить преобразование Лапласа функции f?


person chsafouane    schedule 28.01.2017    source источник
comment
Какое сообщение об ошибке вы получаете?   -  person codeaviator    schedule 28.01.2017
comment
@Cebri Вот сообщение об ошибке, которое я получаю. Ошибка при использовании sym/subsindex (строка 769). Недопустимое индексирование или определение функции. При определении функции убедитесь, что аргументы являются символическими переменными, а тело функции представляет собой выражение SYM. При индексировании ввод должен быть числовым, логическим или ':'. Ошибка в sym/subsref (строка 814) R_tilde = встроенный('subsref',L_tilde,Idx);   -  person chsafouane    schedule 28.01.2017
comment
@ Адриан Готово. Спасибо!   -  person chsafouane    schedule 28.01.2017
comment
@chsafouane в тексте, пожалуйста. Изображения а) труднее читать и б) мы не можем скопировать оттуда текст, что особенно неприятно, когда речь идет о коде. В противном случае: я думаю, вы правы в своем предположении, что проблема p(t), поскольку MATLAB считает, что вы индексируете (неизвестную) функцию p с индексами в t. Я надеюсь, что кто-то с опытом работы с неявными функциями может помочь вам здесь.   -  person Adriaan    schedule 28.01.2017
comment
@Adriaan Спасибо, Адриан, и мне очень жаль за неудобства. Я немного новичок на сайте, и я не всегда знаю, как размещать сообщения в правильном формате. Я позабочусь о том, чтобы в следующий раз этого не случилось ^-^   -  person chsafouane    schedule 28.01.2017


Ответы (1)


Проблема заключается в определении параметров. Чтобы этот код работал, необходимо небольшое изменение, когда дело доходит до определения функции "p".

syms m ms k t p(t) f;
f=(m+ms/3)*(diff(p(t),t))^2+k*(p(t))^2;

Стоит отметить, что переменная «t» должна быть определена до p. Этот код определяет «p» как «symfun», который является типом, присвоенным функции, когда она определена с помощью символьного инструментария.

person chsafouane    schedule 28.01.2017