Aide sur matlab

Résolu/Fermé
yondaime - 18 mars 2008 à 17:20
 kam - 19 avril 2010 à 15:03
Bonjour,

Je dois écrire un programme pour résoudre des équations différentielles du premier et du second ordre sur matlab, mais je n'y connais strictement rien, pourriez-vous m'aider s'il vous plait ?

Merci.

34 réponses

salutt profff :)
ca va bien

Ca va tout a fonctionne, j'ai utilise les polynome de lagrange interpoles par les noeuds de tchebichev et ca roule..les deux zeros de la fonctions je les ai bien...de meme j'ai devolepee une fonction pour calculer la deriver d'un polynome ...trop facile ... newton pour les zero pour ma fonction est satisfaisant ... tout et fini pour cette partie...reste un ptit probleme et opla fini...quelquechos dont je ne comprends meme pas la question... peut etre ce serai facile de te donner la question.. et tu me dirais des astuces que je trouve trop utiles..... des astuces de ce qui est demande, comment commencer et d'ou, comment faire, et ou chercher... c'est la 2eme et derniere partie de mon probleme
ou f est la meme fonction donee par les xi et yi

resoudre numeriquement l'equation differentielle dy/dx (x) = f
y(-1)-0
sur [-1,20] pour les pas 0.05, 0.1 ... utilisant
1)euler progressive
2) heun
3) runge-kutta 4
-dessiner la courbe integrale obtenue dans chaque cas et precisez l'effet du pas d'integration sur la solution numerique
B-Deduire une valeur approchee de l'ntegrale de f sur [-1,20] et comparez aux valeurs obtenus en partie 1
C-resoudre numeriquement l'equation differentielle y'(x) = f'(x)
y(-1) = -1.751
sur [-1,20] pour les pas 0.05, 0.1 ....utilisant runge-kuta 4 ... commentez
------------------------------------------------------------------------------------------------------------------
et ce serai tout, je devrais arriver a implementer sa d'ici a dimanche soir, et j'espere qu'avec ton aide precieuse j'arriverai :) .... merci d'avance, mon ami Sacabouffe
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
17 mai 2008 à 03:01
Eheh... salut!
Vi, ça va bien. Ça a l'air d'aller pour toi aussi apparemment :-D
Tu vois, tu progresses sans même t'en rendre compte, les trucs te paraissent simples et en plus ça marche.
Ben pour le reste, tu devrais pas avoir trop de soucis. Toutes les méthodes dont tu as besoin sont expliquées sous Wikipédia :-D
https://fr.wikipedia.org/wiki/M%C3%A9thode_d%27Euler
https://en.wikipedia.org/wiki/Heun%27s_method
https://fr.wikipedia.org/wiki/M%C3%A9thode_de_Runge-Kutta
Bon, avec Matlab, c'est toujours mieux de faire tout en matriciel (quand il y a assez de mémoire pour ça), mais même si tu fais des boucles c'est pas un drame.
Si t'as des soucis pour coder ça, dis-le moi. Mais tu devrais pas avoir de mal, il y a rien de bien compliqué.
Bonne nuit mon ami rawad25
0
slt, j ai voir que vous ette un assistant dans les formule mathematique , et pour cela je te pose mon problemme
avant tous , je suis en trein de prepare une application sur la methode de classification des texte basé sur la machine a vecteure de suppor (svm),et pendant le traitement de mes données (cordoné x et y) dans un plan de 2axe( terme ,frequence) pour trouver un hyperplan separateure optimale, j ai trouve que la methode svm basé sur les multiplicateure de lagrange pour l'optimisation et trouver les vecteure de support corespondant,
comment faire pour calculer ces multiplicateure de lagrange par matlab, ou donne moi un pseudo code montre comment calculer ces multiplicateure, puisque ces derniere c la base pour resoudre mon problemme et la porte a trouver l'hyperplan optimale, aide moi svp dans les plus pres delais si possible
accepte mes salutation distingué et mercie pour vos aides
cordialement
0
Prof, ce que je n'arrive pas a comprendre c'est comment commencer... que prendre f ?
comment integrer ... et la reponse que devrait elle etre ?
merci prof Sacabouffe, bonnenuit a toi aussi :)
0
salut de nouveau Prof :)
ce que je voudrais savoir, que faire avant d'appliquer les methodes :)
appliquer les methodes sur quoi ? sur une fct pt par pt sa se fait ? ou sur un polynome...
ce que je veux en effet est non les methodes, mais comment faire ? comment commencer par resoudre la 1ere question, comment deduire une integrale ,et la 3eme question
juste quelques notes pour me mettre le travail en train :)
merci, s.v.p. urgences :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
18 mai 2008 à 01:06
Salut

C'est dit dans l'énoncé, f est la fonction donnée par les points xi et yi, c'est-à-dire f(xi)=yi pour tout i.

A moins que tu parles du f des liens Wikipédia. Dans ce cas, remplaçons-le momentanément par un grand F. Les liens Wikipédia parlent donc d'équations différentielles du type u'(t)=F(t,u(t)) (c'est la forme générale d'une équation différentielle).
Il suffit de prendre ton équation différentielle à toi et de regarder ce qu'est ton grand F dans ton cas.
Ton équation différentielle c'est u'(x)=f(x) où l'inconnue est u bien évidemment (ce qui est noté dy/dx dans ton énoncé).
Donc si tu cherches à écrire ton équation différentielle sous la forme générale, ton F(x,u(x)) c'est rien d'autre que f(x), c'est tout.

Voilà donc ce qu'il fait faire pour calculer la solution u de ton équation différentielle (je rappelle que f(xi)=yi pour tout i).

Pour Euler:
u(i+1)=u(i)+(x(i+1)-x(i))*y(i)

Pour Heun:
u(i+1)=u(i)+(x(i+1)-x(i))/2*(y(i+1)+y(i))

Pour Runge-Kutta 4:
Je te laisse l'écrire... :-D

Bonne nuit
0
Salut Prof de nouveau....
merci de tout...
je vais te decevoir, mais j'y arrive pas, c'a m'emmerde cette question deja....et le temps me coince bcp...
c'est un projet que je fais a ma master et c'est hyper important.....
s'il te plait je voudrais un bout de code.... sur matlab
un code qui donne euler pour le premier pas...et je continuerais les autre mois meme de facon identique...
et comment deduire une valeur approchee de l'integrale....
enfin...un tout petit code comment resoudre la question 3 ... pour le premiers pas...
Je serais troppppp reconnaisant... s'il te plait, c'est une urgence et quelquechose de vital... :)
je devrais rendre ca aujourd'hui....
a plus mon ami
0
salut de nouveau ... j'avais oublie de mentioneer dans la donnée de la question 1 qu'on nous demande de rapprocher y(x) par taylor, je sais pas si sa aide ou clompique les choses :)...
a plus
0
Salut,,,,
Enfin....Je ne verrai pas de decevoir aussi, je pense que j'ai reussi a faire le boulot... grace a ton aide immence :)
Merci mon proffffffffffffffffffffff.....
merci bcp......
merci
merci
merci
merci...
il ne me reste que rk4 ... maintenant je sors et je retourne la nuit pour y penser...
GOD BLESS U
au revoir mon ami :)
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
18 mai 2008 à 22:00
Salut
Ben je vois que t'as bossé, c'est cool :-DDD
Pour la formule de Taylor, je t'en avais parlé ici, rien de bien compliqué.
Quand on te dit "dessiner la courbe intégrale", ça veut juste dire que tu dois tracer la courbe représentative de la solution de l'équation différentielle, c'est tout.
Si tu veux vérifier ce que t'as fait pour Euler et Heun, je te file les codes.
function f = compute_Euler(x,y,f0)
%% Calcul de f'=y f(x(1))=f0
xm = circshift(x,[0 1]);
ym = circshift(y,[0 1]);
%%
f = (x-xm).*ym;
f(1) = f0;
f = cumsum(f);

function f = compute_Heun(x,y,f0)
%% Calcul de f'=y f(x(1))=f0
xm = circshift(x,[0 1]);
ym = circshift(y,[0 1]);
%%
f = (x-xm)/2.*(y+ym);
f(1) = f0;
f = cumsum(f);

Pour Runge-Kutta, vu que t'es censé connaître la valeur de la fonction au demi-pas d'espace, tu peux l'approcher par la moyenne entre les pas entiers. Si tu y arrives pas, j'écrirais quelque chose vite fait.
A plus
0
Salut
wiiiiiii
s'il te plait.... j'ai besoin de ca pour le rendre demain :)
mon heros :P a plus... s'il te plait runge-kutta semble etre complique :)
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
18 mai 2008 à 23:50
Salut
function f = compute_RK4(x,y,f0)
%% Calcul de f'=y f(x(1))=f0
%% Taille de x impaire
xm = circshift(x,[0 2]);
x = x(1:2:end);
xm = xm(1:2:end);
ym = circshift(y,[0 2]);
ymid = [0 y(2:2:end)];
y = y(1:2:end);
ym = ym(1:2:end);
%%
f = (x-xm)/6.*(y+4*ymid+ym);
f(1) = f0;
f = cumsum(f);

A plus
0
salut...
Merci...
ma dernière question je l'espere bien :)
comment deduire une valeur approchée de l'integrale a partir de ce qu'on vient de faire (question 2)
et pour la question 3--> que faut il changer dans le code pour etre en train de calculer rk4 .. pour la fct y'=f'
et y(-1)=-1.75 qui n'est autre que f!!!!
j'espere que tu n'ai pas endormi encore sinon a demain :)
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
29 mai 2008 à 18:18
Salut
CCM - Charte - Respect d'autrui
Ne pas poster un message sur une discussion en cours qui n’est pas la vôtre...
Place-toi dans le répertoire où est ton fichier ou précise le chemin complet.
A plus
0
tu trouvra une slipe
0