Have a look at the manual; Chapter 4 on the structure of the ODEFILE, and how to add it in the GUI.
Thank you for your response. The problem has been solved. Now, there is still one question I would like to ask you. I have already created my own user function. How should I call it in the MatCont GUI?
EEG is not a variable, but an expression, so remove that from the coordinates, and put it before the differential equations, not after. If you need the value of "EEG" then add it as a user function, or compute it afterwards.
How should I make the necessary adjustments so that the model can be imported into the system?
Could you please tell me how to solve the problem of the coordinates on the left not matching when I add the model?
The expressions (ZP to vf) should come before the differential equations. It is code, if you compute those intermediate quantities after you use them, who could tell what value they should have.
Could you please tell me how to solve the problem when my program keeps giving errors?
Hello, 10D mechanical system (5 coordinates+5 velocitie): Coordinates: x1, x2, x3, x4, x5, vx1, vx2, vx3, vx4, vx5 State-space form: M = 5x5 mass matrix; K = 5x5 stiffness matrix; C = 5x5 damping matrix; F = 5x1 nonlinear forces; A = [0(5×5) I(5×5); -M^(-1)K -M^(-1)C] B = [0(5×5); M^(-1)] dy = Ay + BF Issues: GUI editor auto-splits the lines "Equations don't match coordinates" error No Starter/Activator windows after load Questions: Matrix form supported directly in ODE field (dy=Ay+BF)? If yes,...
Hello, 10D mechanical system (5 coordinates+5 velocitie): Coordinates: x1, x2, x3, x4, x5, vx1, vx2, vx3, vx4, vx5 State-space form: M = 5x5 mass matrix; K = 5x5 stiffness matrix; C = 5x5 damping matrix; F = 5x1 nonlinear forces; A = [0(5×5) I(5×5); -M^(-1)K -M^(-1)C] B = [0(5×5); M^(-1)] dy = Ay + BF Issues: GUI editor auto-splits the lines "Equations don't match coordinates" error No Starter/Activator windows after load Quetions: Matrix form supported directly in ODE field (dy=Ay+BF)? If yes, the...
Dear Ram, The Graphical User Interface looks for a file "model.mat" with a particular structure including equations. These equations are then converted into a "model.m" file. If you supply only the ".m-file" then the interface does not know about it. However, you could still use MatCont in command-line mode as during the simulations and continuation that m-file is the necessary ingredient. Best regards, Hil
I have prepared a model.m file in Matlab and copied in MATCONT /system/ model.m in directory and when I asked matcont to lead my model it doesn’t it show. It shows only in-built models. Then I have to type manually in System window of Matcont and loaded it. Why matcont doesn’t take it directly With warm Regards Dr. Ram Singh, Assistant Professor * Department of Mathematical Sciences BGSB University, Rajouri-185131 (J&K-India)* On Tue, Jan 20, 2026 at 8:28 PM hilmeijer hilmeijer@users.sourceforge.net...
It's clear some people simply need and want this, even though from a plotting point of view it is slightly ambiguous as it concerns just a single value for the state (and max=min). This can be achieved through the following change: In file GUI\CLContOutputInterpreter.m Add the following lines 120,121 plotsel.declareItem('coordinates', coordinates{index}, 'Max', sprintf('max(%s)', coordinates{index}), @(x, h, f, s, ind, i)x(index, ind)); plotsel.declareItem('coordinates', coordinates{index}, 'Min',...
Dear Hil and colleagues, I observe a new phenomenon, which I didn't encounter earlier: I want to draw a bifurcation diagram with steady solutions and periodic orbits. As soon as I select to draw the maximum value of a state variable along a periodic branch, the stationary solutions vanish from the figure and I obtain messages like plotDiagram: solution rejected, invalid layout (LP_LP(1).mat). If you need some test data, I could provide these. With kind wishes Alois
The error suggests you use the symbol x in your code but you do not give it a value. However, without the model specification we cannot be sure. Good luck debugging.
While try to run the model for bifurcation, the error is shown as attachment , please help me why is showing undefined function 'x' for input argument of type double
Dear Hil and colleagues, with an example, that I wanted to present in the lecture, I observe a bad error in MatCont 7.6: For a triple pendulum with follower force loading and a supporting spring I follow a branch of Hopf points in the parameter plane and encounter also ZH points. Quite regularly I obtain the error message, that an unexpeted error occured caused by missing/wrong indices. The same problem occurs also, when I follow the zero eigenvalue and encounter the ZH point. The reason for this...
The tutorial also shows what to plot, and the documentation explains what these continuation variables mean.
Hmm... As the tutorials were fine for you, nothing seems strange. But without details to reproduce this error, it's too hard to see what's happening.
Hi, I'm getting a wacky error making a bifurcation to nearly the normal form of the saddle-node bfn. Any insights on whether I'm doing something wrong or if its a faulty installation? Previously I went through the tutorial for the lorenz system and recreated the bifurcation in the manual without any issues. PS: I'm new to this fine app, and also to MATLAB. Thank you!!
Thank you for your sharing. While I viewed mat-file in Systems/diagram/ (figure 1), which Tables correspond to the x and y-axis data of the frequency response curve? What do these data represent, such as "f", "h" and "x" (figure 2).
Such post-processing for paper-quality figures one could better do separately. Data for all curves are saved into mat-files in a folder Systems/diagram/ The manual and tutorial show you how to make the plot, and then you can edit this to your preference.
I can get frequency response curve plot by setting certain parameters value such as Figure 1. If I want to explore effect of one parameter (e.g., damping ratio) on frequency response properties, how can these curves with changing parameters be plotted in one figure, such as Figure 2? Or, can the data of one curve be saved to plot in one figure for showing multiple response curves?
Thank you so much!!I have solved this problem .
On the left, your system reads as M dy/dt with y=(a1,b1,a2,b2) and a matrix M, so it is completely coupled. In the syntax we really expect a1'=.... b1'=.... and so on, in that order, that's what the error message refers to. You could still apply the inverse of M to both sides to arrive at that form.
Here we discuss issues with the software, not the use, one should do research themselves. And perhaps the finishing remarks in that document need to be spelled out explicitly: 1. My first concern is that the response for a 2DOF-system is not purely periodic, but more likely it's a torus. Continuation will not help you as continuation of tori is not supported, so you may be better of with long time simulations. (In contrast to the 1DOF-oscillator mentioned in the tutorial). 2. My second concern is...
dear @hilmeijer would you please help me to figure out how to study the effect of changing one parameter in the frequency response curve? thank you
I have rewrite the equations ,but there is still the problem.could you help me check?
Apply the procedure as above, rewrite your equations first to a system of first-order ODEs.
Dear hilmeijer:I have the same problem could you help me ?!!
Dear hilmeijer:Thank you very much for your help, it is with your help that I have solved the problem.
Hi community i want to model a 2dof nonlinear oscillating system and observe the effect of changing the nonlinearity term. I reached the frequency response of the system by following the document "Frequency response of nonlinear oscillator" by H. Meijer. Now I need to plot a 3d bifurcation curve to change one of the parameters of the system and plot the amplitude over a range of frequency. I would be so thankful if anyone could help me. What should I do now? i am using Matlab R2022, and MatcontM...
This is not clear to me, I have been told it works up to some extent (in command line) but not all functions and commands will work. You will have to try and do this yourself.
I would like to ask, if it is possible to use matcont with gnu octave? I have to use matcont for doing the frequency response analysis
I would like to ask, if it is possible to use matcont with gnu octave as my organization's license to MATLAB is ended? But I have to use matcont for doing the frequency response analysis
I would like to ask, if it is possible to use matcont with gnu octave as my organization's license to MATLAB is ended?
Hello, your equation for y8 looks somewhat strange, I guess you forgot some *-signs. What are dy1 and dy2? Are you looking for steady states? If the problem occurs for y1 and y8, it should be easy to find the corresponding stationary solutions from the y1-y6-equilibria., because y7 and y8 do not appear in these equations. You could also solve these 2 equations separately. Good luck Alois
Hello, I have downloaded and installed MatCont7p6; I am using Matlab 2022a. My system is: name: CCCC time: t cooedinates: y1, y2, y3, y4, y5, y6,y7,y8 parameters:I1, C1, K1, Fz, PL, PR, Kv, D1, r, L_val, R_val, H_val, V_val, C2, K2, W, K3, I2, I3, mn, cn, kn, d derivatives: SSSNN userfunctions: (none) equations: CcL = 2.0539 - 1.0823 * PL; CcR = 2.0539 - 1.0823 * PR; KvL = (0.813 * PL - 0.024) * Kv; KvR = (0.813 * PR - 0.024) * Kv; FzL = (1 - (KvL * D1 / Fz) * sin(y1 * sin(r) + y3)) * Fz / 2; FzR...
Frequently matcont starts far away from the initial guess. but usually continuation helps to reach the desired range. I guess this is related to the implemented algorithm for creating the first solution. and sometimes it occurs, when the parameter values are changed a little bit.
You could set the damping and the excitation to zero and look for periodic solutions of the remaining autonomous, conservative system. Since the system is conservative, the periodic solutions will be neutrally stable.
No, there is no such tutorial. You refer to a theoretical result, that's not what we treat in this forum.
There are so many details missing in your story. Please consider someone who is not looking at your screen and does not know your equations. "I plotted only the stable portion"; let's rephrase to "I re-simulated the last part after transients"? Suggestion: Untick "Pseudo-Arclength/Moore-Penrose" in the Continuer window OR simply extend the curve (many times).
I want to plot the frequency response curve of a parametric vibrating beam, which, as is well known, consists of equilibrium points and limit cycle.I first used Floquet theory to locate the possible resonance peaks. Then, I plotted a time history using w=20. Ignoring the beginning of the time history, I plotted only the stable portion. Based on this stable limit cycle, I plotted the frequency response curve.However, the w value on the time history plot is 20, but the first point when plotting the...
I want to plot the frequency response curve of a parametric vibrating beam, which, as is well known, consists of equilibrium points and limit cycle.I first used Floquet theory to locate the possible resonance peaks. Then, I plotted a time history using w=20. Ignoring the beginning of the time history, I plotted only the stable portion. Based on this stable limit cycle, I plotted the frequency response curve.However, the w value on the time history plot is 20, but the first point when plotting the...
Is there any tutorial to find the backbone curve as shown by dash-dot line in the following image?
thanks!
thanks!
Hello,. why do you think there should be a LP point? Just follow your branches and see, what happens. These need not be connected. What happens to the left of the second curve? I can only second Hil's response: The authors of MatCont cannot solve the users' problems, If you need help, you should take significantly more effort to explain your model and your efforts so far; in your case also the reasoning for your expectations. Kind regards Alois Steindl
It is always great if the potential of MatCont is explored, but it is an advanced tool. One needs some background knowledge and/or experience in nonlinear dynamics to use it. I am sorry, this does not look like a bug or feature to solve, we do not have time to help. But here is my intuition: The appearance happens "far away" and is not related to a trivial equilibrium, hence you cannot find it immediately with continuation.
Dear professor, I'm studying this biomathematical model which I want to draw a bifurcation diagram with "b" as the parameter.I calculated that there is one positive equilibrium point when b=0.1, and two positive equilibrium points when b=1. Therefore, theoretically, there should be a “LP” point appearing in the bifurcation diagram with respect to “b”, but it does not show up in the plot. I hope you can help me take a look at this.
Hello, it seems that your matcont system is in some strange state. Try to call matcont clean or matcont clean reset as proposed right at the start of matcont.m Good luck Alois
I'm experiencing a critical startup failure in the MATCONT. The error occurs during initialization and prevents the toolbox from launching properly. Primary Error: "test_EP_BP" does not exist!
Such conditional statements make the system non-smooth. For bifurcation analysis, we require derivatives to be well-defined, so as such, no it won't work. BUT you may be able to approximate your conditional expression with a smooth function: use a term with tanh(b (x-c)) or a 1/(1+exp(-b (x-c)); These are nearly zero where you need it, and the parameter b you can choose to make the switch steep.
Thank you Prof. Meijer, Let me ask the first question differently. Does MatCont' GUI support conditional statement for piecewise non-smooth systems like for example, a simple Duffing oscillator with two different right-hand side (f(x) x>0 , g(x) x<0). A large number of papers employed slow-fast analysis with Matcont with needs defining conditional expression such as attached.
Thank you Prof. Meijer, Let me ask the first question differently. Does MatCont' GUI support conditional statement for piecewise non-smooth systems like for example, a simple Duffing oscillator with two different right-hand side (f(x) x>0 , g(x) x<0). A large number of papers employed slow-fast analysis with Matcont with needs defining conditional expression such as attached.
Regarding point 1; I simply cannot follow you. This forum is for questions related to the use of MatCont, not about modelling or specific equations. When you force a system periodically, then you mostly look at the (periodic) response, so limit cycles, not equilibria. Regarding point 2; Yes, for bifurcation analysis and continuation MatCont expects an autonomous ODE X'=F(X) and in your case X=(x,y,u,v).
Thank you professor. I ask a few more questions here related to this part. 1- For fingding equilibrium point, the autonomous form is used in papers. According to the attached piece of paper, how we can write the slow variable (\delta =sin(wt)) as conditional expression based on Z+ and Z-? I think something is wrong in transforming non-autonomous original ODE to the autonomous form used in slow-fast systems analysism because very simpler equations exhibit more bifurcations including folding point,...
Thank you professor. I ask a few more questions here related to this part. 1- For fingding equilibrium point, the autonomous form is used in papers. According to the attached piece of paper, how we can write the slow variable (\delta =sin(wt)) as conditional expression based on Z+ and Z-? I think something is wrong in transforming non-autonomous original ODE to the autonomous form used in slow-fast systems analysis. 2- for finding limit cycle I should use the form (u,v) in the previous question?...
Cannot help at this stage: (1) I cannot read those characters (chinese?) (2) there are no further details, so no way one could understand the problem you encounter.
I am drawing a one-parameter bifurcation diagram. When calculating backwards from a certain value of the parameter, it should theoretically reach a saddle-node bifurcation, but it does not show up as shown in the figure. Another problem is that the monitor does not display numerical values. How can I solve these issues?
You're looking at a periodically forced oscillator. As soon as u,v are not zero, there is no equilibrium, so it should fail, as it does. Instead you may look for a limit cycle, see https://meijerhge.personalweb.utwente.nl/MatCont/FrequencyResponse.pdf
Hello, I am trying to finding equilibrium points of an oscillator. Despite time solution of the system goes well (see pic1), after choosting the final point as initial condition, Matcont is unable to find equilibrium points regardless what I change in the setting. Even when I solve the equations via ODE45 for long time and enter the final values as initial condition, that does not work too. The definition of system of equation and settings are attached, please share your comments for this issue.
Hello, I have downloaded and installed MatCont7p6; I am using Matlab 2022a. As shown in the figure, it is a double bifurcation. The horizontal and vertical coordinates correspond to a parameter. How is the curve that passes through the HH point drawn? I sincerely hope you can provide guides and help. Thank you in advance for your time and consideration. With best regards.
thank you!!!
I've pasted your system in Matcont7p4 and MatCont7p6 but using Matlab2023b. Compiled it without problems. Sorry, I cannot reproduce your error, so I don't know... Perhaps rely on numerical derivatives only?
Hello, I have downloaded and installed MatCont7p6; I am using Matlab 2022a. My system is: name: CCCC time: t cooedinates: y1, y2, y3, y4, y5, y6 parameters: I1, I2, I3, C1, K1, Fz, PL, PR, Kv, D1, r, L, R, H, V, C2, K2, W, K3 derivatives: SSSNN userfunctions: (none) equations: CcL = 2.0539 - 1.0823 * PL; CcR = 2.0539 - 1.0823 * PR; KvL = (0.813 * PL - 0.024) * Kv; KvR = (0.813 * PR - 0.024) * Kv; FzL = (1 - (KvL * D1 / Fz) * sin(y1 * sin(r) + y3)) * Fz / 2; FzR = (1 + (KvR * D1 / Fz) * sin(y1 * sin(r)...
Finally some time to look into this. I can see the warnings&errors appear, but digging through I observe another problem. Your system is badly scaled, with such large values of the parameters and coordinates, and when I follow the code, I observe that the dimension of the stable manifold is zero. That leads to missing equations and hence the mismatch in dimensions. Try to rescale your system so that the numerics do not suffer from that, or locate the BT-point with more precision.
Hello, I have downloaded and installed MatCont7p6; I am using Matlab 2024b. My system is: X'=Lambd-betZ/(b+Z)XY-muuX Y'=betZ/(b+Z)XY-alphZY-muuY Z'=p(1-etalphZY/(a+alphZY))Z-(m_0+m_1Z)Z where Lambd,bet,muu,alph,p,et,a,m_0,m_1 and b are parameters and X,Y,Z are coordinates, and I choose the first and second order derivatives to be calculated symbolically, and others are calculated numerically. After the continuation of the limit point curve, I found two BT points(which I believe indicates the existence...
ok
Can you please copy&paste your input equations here as text (not as an image)? Thank you.
Dear Davide! thank you very much for your reply! I have modified the import method according to your solution and requirements, and successfully imported the equation. However, I found that the interface for selecting the initial point could not pop up, and matlab issued a warning prompt, making it impossible to proceed with the subsequent run.
Dear Wei Jian, sorry for letting you wait. I looked into your system and your input and I see the following problems. In your input there are two equations for each of y1, y3 and y5, while only one should appear, specifically the differential one. If you want to use the names psi, delta and q for those coordinates (to keep closer to the mathematical notation), you certainly can: just declare them in the coordinates field and use them instead of y1, y3 and y5. (I would even suggest, for clarity, to...
Dear Professor Hilmeijer! Thank you very much for your reply. When I imported matcont, it would prompt "no delay found"
This requires further investigation; we need to see if the syntax for the delay works the way you think it does, and want it to.
Dear Professor Hilmeijer! Recently, I have been using the new feature of matcont to solve the delay system, but writing it as a dde file cannot be imported into matcont. I represent y5[t] as q[a,t] also as q[t], where a is already a constant. Also, since the speed v is a variable, can matcont recognize q[a,t-2*a/v]? How should this item be expressed and are there any other questions that enable matcont to solve this delay system? I hope the professor can answer my doubts. Thank you very much!!
It is still there. You can find it at another place. Main Menu --> Select --> Manage Userfunctions. Here you can add these to the current system.
This is always nontrivial and requires lots of work. What you can do is set Omega=0.6, and then simulate first with the forcing kept the same, but systematically changing a state variable of the system you're forcing, e.g. $z$. At some point the simulation should start to differ. If it is a subharmonic, then also adjust the guess for the period.
Dear experts: If I want to get isolated branch solutions for frequency response (see figure attachment), I need to repeat simulation with different initial conditions via Matcont according to literature work. However, while I set different initial values of x and x_dot (x and y in Matcont), they are changed and remains nearly same for each operation through selecting "P Last Point" after "Extend" simulation. Detailed conditions can be seen in attachment figures. Finally, I only get same response...
Dear experts: If I want to get isolated branch solutions for frequency response (see figure attachment), I need to repeat simulation with different initial conditions via Matcont according to literature work. However, while I set different initial values of x and x_dot (x and y in Matcont), they are changed and remains nearly same for each operation through selecting "P Last Point" after "Extend" simulation. Detailed conditions can be seen in attachment figures. Finally, I only get same response...
Okay. Thank you!
Dear experts: If I want to get isolated branch solutions for frequency response (see figure attachment), I need to repeat simulation with different initial conditions via Matcont according to literature work. However, while I set different initial values of x and x_dot (x and y in Matcont), they are changed and remains nearly same for each operation through selecting "P Last Point" after "Extend" simulation. Detailed conditions can be seen in attachment figures. Finally, I only get same response...
Numerical continuation provides you with a part of a curve through discrete approximations. If you want a larger bit of the curve, consider adding more points or increasing the stepsize (coarse approximation). Two options with trade-off of accuracy and speed: 1 In the main window, you can choose "Compute --> Extend" and then your current curve computation is prolonged. 2 In the Continuer Window, change "MaxStepSize" to 0.5 (this requires some experimenting).
Dear experts; I want to plot frequency response of my dynamic equation via Matcont. However, I can't obtain compete amplitude-frequency response line plot. While I increase MaxNumPoints from 300 to 1000 or even 2000 in Continuer, the data is still not enough (amplitude response value for frequency that is lower than upper LPC point, as shown in frequency response plot). I sincerely hope somebody can help for solving this problem. Thank you very much. Best regards
Hi, I am tryimg to replicate a report for below duffing equation. a'=-zita.a-(F/2) sin(phi) phi'=-(1/a)(sigma . a-(3/8)gamma . a^3+(F/2)*cos(phi)) report is given belwo https://www.slideshare.net/slideshow/engi5671matcont-69412508/69412508#1 to plot the backbone curve, in the report they have used user function to transfer as below. Omega=1+epsilon . sigma aF=a/│F│ Why I am not able to see the user function into the main menu. If you have removed it from the latest version, any way to do such transformation?...
Hi, I am tryimg to replicate a report for below duffing equation. a'=-zita.a-(F/2) sin(phi) phi'=-(1/a)(sigma . a-(3/8)gamma , a^3+(F/2)*cos(phi)) report is given belwo https://www.slideshare.net/slideshow/engi5671matcont-69412508/69412508#1 to plot the backbone curve, in the report they have used user function to transfer as below. Omega=1+epsilon . sigma aF=a/│F│ Why I am not able to see the user function into the main menu. If you have removed it from the latest version, any way to do such transformation?...
Hi, I am tryimg to replicate a report for below duffing equation. a'=-zitaa-(F/2)sin(phi) phi'=-(1/a)(sigmaa-(3/8)gammaa^3+(F/2)cos(phi)) report is given belwo https://www.slideshare.net/slideshow/engi5671matcont-69412508/69412508#1 to plot the backbone curve, in the report they have used user function to transfer as below. Omega=1+epsilonsigma aF=a/│F│ Why I am not able to see the user function into the main menu. If you have removed it from the latest version, any way to do such transformation?...
Please accept my deepest respect and sincere gratitude for taking the time to enlighten me. Your explanation has been truly eye-opening. I now realize that my previous understanding was confined to low-dimensional systems. To summarize, in higher-dimensional systems, the eigenvalues from other dimensions can influence the stability of equilibrium points, resulting in scenarios where local equilibria undergo fold bifurcations without any actual change in their stability. Once again, thank you very...
There is no contradiction, the fold-bifurcation happens on the center-manifold, but here you also have a (non-empty) unstable manifold. To see that, let's start with the equilibrium branch, lower left and move towards the Hopf bifurcation. Here two eigenvalues get a positive real part. Increasing I further, the eigenvalues become real, one stays positive, and one becomes zero at the fold bifurcation. This continues until everything is reversed near the upper fold and Hopf bifurcation points. So bottomline;...
Dear experts, In my study of a 3D system, while plotting the one-parameter bifurcation diagram, I found that the equilibrium points on both sides of the fold bifurcation (FB) are unstable (and the fold bifurcation point is non-degenerate), which contradicts the definition of a fold bifurcation. However, MatCont's numerical window explicitly shows that the eigenvalues of the equilibrium points on both sides have at least one positive real part (i.e., both are unstable). I also verified this using...
Perhaps you could examine the one-parameter bifurcation diagrams on other planes or visualize the three-dimensional structure of the bifurcation diagram. Since your system is three-dimensional, the disappearance of the limit cycle might be caused by a homoclinic bifurcation occurring when it collides with the equilibrium curve on another plane.
Short answer: no Long answer: MatCont allows you to compute curves, and what you ask means you need one more condition, so higher codimension. Instead, if you want to compute manifolds, then compute many curves changing the third parameter and patch the resulting curves. That patching is hard, and this is one of the reasons why methods for computing 2D-surfaces for codimension-one bifurcations are always case-specific.