Physics Quıestion in Matlab

1 次查看(过去 30 天)
As you can see question in below.I wrote this code but matlab gives some error.What can I do?
if true
function [outputArg1,outputArg2] = untitled2(inputArg1,inputArg2)
F=3;
x=1;
k=-F/x;
k
x(0)=1;
Dx(0)=-0.5;
x(t)=c1*sin(sqrt(k/m)*t)+c2*cos(sqrt(k/m));
end

采纳的回答

Birdman
Birdman 2018-1-21
编辑:Birdman 2018-1-21
Learn how to use Symbolic Toolbox first. Here is one approach:
F=3;m=4;x0=1;
%%1st
k=F/x0;
%%2nd-3rd
syms x(t)
eq=m*diff(x,t,2)==-k*x;
Dx=diff(x,t);
x=dsolve(eq,[x(0)==1 Dx(0)==0.5])
%4th
t=subs(t,0:0.01:2);
x=subs(x,t);
plot(t,x)
  2 个评论
Aykut Albayrak
Aykut Albayrak 2018-1-21
Thank you so much.You are the best matlab coder!
Birdman
Birdman 2018-1-21
Ah, no. Just someone with little experience about this stuff. You are welcome :)

请先登录,再进行评论。

更多回答(1 个)

Roger Stafford
Roger Stafford 2018-1-21
编辑:Roger Stafford 2018-1-21
Matlab does not accept indices equal to zero. These can only be positive integers greater than zero. Therefore "x(0)=1;" and "Dx(0)=-0.5;" are not permitted. The same would apply to "x(t)" if 't' were of improper size.

类别

Help CenterFile Exchange 中查找有关 Code Generation 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by