solve an equation by iterration

1 vue (au cours des 30 derniers jours)
Brice Thomas
Brice Thomas le 8 Oct 2016
Commenté : Torsten le 11 Oct 2016
Hello everyone!
I haven't been using matlab for a while and I struggle on a simple equation.
I need to obtain this result: Sigma = solve( Sigma== Sigma0*(1+k*(Epsilon-Sigma/E))^n; ) All parameters sigma0, k, Epsilon, E and n=0.2; are known. The only reason for witch I need matlab is the fact that sigma (the unknown), is on both side of the equation, and I need a iterative solver.
I though about the ode45 function but I can not find a example that fit's what I want to obtain. if I am not mistaken, I can find the derivative of the function.
dSigma= -n*Sigma0*(1+k*(Epsilon-Sigma/E))^(n-1)*(k/E)
Can someone tell me the few lines required to solve this? Thank you!

Réponses (2)

Massimo Zanetti
Massimo Zanetti le 8 Oct 2016
Put Sigma in the other side of the equation by changing it sign, and then use fsolve. https://it.mathworks.com/help/optim/ug/fsolve.html
  1 commentaire
Brice Thomas
Brice Thomas le 11 Oct 2016
I still strugle, could you give a example of code? As I detailled in the answer.
Thank you!

Connectez-vous pour commenter.


Brice Thomas
Brice Thomas le 8 Oct 2016
Sorry, I struggled one hour one this simple problem without seeing the program works at the end of the day...
I decided to make a simple example to test the fsolve, but even here, it does not compile and give me my root.
Here is a screen-shot of the example and the code.
function [r] = H(X) % a general function that take imput: [0:0.01:4] and must give me the % roots of sine (X) on the interval.
function [ Y ] = Test1( X )
Y=(log(X)-2); plot(X,Y); end
function [Z]=Myroot(X) X0=0.3; Z=fsolve(Test1(X),X0) end
r=Myroot(X) end
My real problem requires only for me to find the root of the expression. For this I wanted to make a function and solve it. But as I said, I strugle. Maybe helping pointing what is wrong here will help me on the other problem.
Thank you!
  2 commentaires
John D'Errico
John D'Errico le 8 Oct 2016
Please stop adding answers every time you make a comment. This is not an answer. There is a button to make a comment. Use it.
Torsten
Torsten le 11 Oct 2016
Use
Z=fsolve(@Test1,X0)
instead of
Z=fsolve(Test1(X),X0)
Best wishes
Torsten.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by