Question: Problem with dsolve

Hello, My problem is as following:

 

I have tried 2 options for solving the problem below, trying to plot the behaviour of a system to a predetermined function.

First I tried to use dsolve as usual:

restart; with(plots); C := setcolors(); with(LinearAlgebra);
eq1 := Force = Mass*(diff(y(t), `$`(t, 2)));
formula1 := 2.6*BodyWeight*abs(sin(4*Pi*t));
2.6 BodyWeight |sin(4 Pi t)|
BodyWeight := 80*9.81;
plot(formula1, t = 0 .. 2);


eq2 := formula1-SpringConstant*(diff(y(t), t)) = Mass*(diff(y(t), `$`(t, 2)));
/ d \ / d /
2040.480 |sin(4 Pi t)| - SpringConstant |--- y(t)| = Mass |--- |
\ dt / \ dt \

d \\
--- y(t)||
dt //
Mass := .200;
Springt := 200;
200
SpringConstant := Youngsmodulus*Surface/DeltaLength;
DeltaLength := 0.2e-1-y(t);
Surface := .15;
Youngsmodulus := 1600*10^6-20*t^2;
eq2;
/ 2 \ / d \
0.15 \-20 t + 1600000000/ |--- y(t)|
\ dt /
2040.480 |sin(4 Pi t)| - ------------------------------------- =
0.02 - y(t)

/ d / d \\
0.200 |--- |--- y(t)||
\ dt \ dt //

incs := y(0) = 0, (D(y))(0) = 0;
eq4 := dsolve({eq2, incs});
Warning: System is inconsistent

 

Second, I tried using a numerical solving, with maxfun.


restart; with(plots); C := setcolors(); with(LinearAlgebra);
eq1 := Force = Mass*(diff(y(t), `$`(t, 2)));
formula1 := 2.6*BodyWeight*abs(sin(4*Pi*t));
2.6 BodyWeight |sin(4 Pi t)|
BodyWeight := 80*9.81;
plot(formula1, t = 0 .. 2);


eq2 := formula1-SpringConstant*(diff(y(t), t)) = Mass*(diff(y(t), `$`(t, 2)));
/ d \ / d /
2040.480 |sin(4 Pi t)| - SpringConstant |--- y(t)| = Mass |--- |
\ dt / \ dt \

d \\
--- y(t)||
dt //
Mass := .200;
Springt := 200;
200
SpringConstant := Youngsmodulus*Surface/DeltaLength;
DeltaLength := 0.2e-1-y(t);
Surface := .15;
Youngsmodulus := 1600*10^6-20*t^2;
eq2;
/ 2 \ / d \
0.15 \-20 t + 1600000000/ |--- y(t)|
\ dt /
2040.480 |sin(4 Pi t)| - ------------------------------------- =
0.02 - y(t)

/ d / d \\
0.200 |--- |--- y(t)||
\ dt \ dt //

incs := y(0) = 0, (D(y))(0) = 0;
eq4 := dsolve({eq2, incs}, y(t), type = numeric, output = listprocedure, maxfun = 10^7);
[
[t = proc(t) ... end;, y(t) = proc(t) ... end;,
[

d ]
--- y(t) = proc(t) ... end;]
dt ]

test := rhs(eq4[2]);
proc(t) ... end;

This one does plot, but no further than 0.2*10^-6. I have tried compiling the data, but this has not worked yet.

 

Does anyone know a way to work around such a problem. Is it possible to plot the equation using a for loop? If yes, how?

 

 

Please Wait...