Traduction Programme MatLab en SciLab

Fermé
laure64 - 3 mai 2013 à 10:14
 laure64 - 4 mai 2013 à 10:24
Bonjour,

je souhaiterai savoir si quelqu'un serait capable de me traduire ce programme MatLab en SciLab s'il vous plait ?


% INVLAP Numerical Inversion of Laplace Transforms
function [radt,ft]=INVLAP(Fs,tini,tend,nnt,a,ns,nd);
% Fs is formula for F(s) as a string
% tini, tend are limits of the solution interval
% nnt is total number of time instants
% a, ns, nd are parameters of the method
% if not given, the method uses implicit values a=6, ns=20, nd=19
% it is recommended to preserve a=6
% increasing ns and nd leads to lower error
% an example of function calling
% [t,ft]=INVLAP('s/(s^2+4*pi^2)',0,10,1001);
% to plot the graph of results write plot(t,ft), grid on, zoom on
FF=strrep(strrep(strrep(Fs,'*','.*'),'/','./'),'^','.^');
if nargin==4
a=6; ns=20; nd=19; end; % implicit parameters
radt=linspace(tini,tend,nnt); % time vector
if tini==0 radt=radt(2:1:nnt); end; % t=0 is not allowed
tic % measure the CPU time
for n=1:ns+1+nd % prepare necessary coefficients
alfa(n)=a+(n-1)*pi*j;
beta(n)=-exp(a)*(-1)^n;
end;
n=1:nd;
bdif=fliplr(cumsum(gamma(nd+1)./gamma(nd+2-n)./gamma(n)))./2^nd;
beta(ns+2:ns+1+nd)=beta(ns+2:ns+1+nd).*bdif;
beta(1)=beta(1)/2;
for kt=1:nnt % cycle for time t
tt=radt(kt);
s=alfa/tt; % complex frequency s
bt=beta/tt;
btF=bt.*eval(FF); % functional value F(s)
ft(kt)=sum(real(btF)); % original f(tt)
end;
toc



Merci d'avance.

A voir également:

1 réponse

soulsy Messages postés 2738 Date d'inscription dimanche 1 mai 2011 Statut Membre Dernière intervention 21 juillet 2017 365
3 mai 2013 à 10:25
Bonjour,

Je connais pas assez les 2 pour le faire mais par contre il y a sur le site de Scilab un "traducteur" Matlab-Scilab :
https://help.scilab.org/docs/5.4.1/fr_FR/section_36184e52ee88ad558380be4e92d3de21.html
0
bon je ne suis vraiment pas douée en scilab et matlab , du coup j'ai pas compris comment ca marche le site que tu m'as envoyé ... :/ Mais merci quand meme !
0
soulsy Messages postés 2738 Date d'inscription dimanche 1 mai 2011 Statut Membre Dernière intervention 21 juillet 2017 365
Modifié par soulsy le 3/05/2013 à 19:55
C'est pas compliqué :) c'est la liste des fonctions matlab, tu cherches celle que tu veux traduire en scilab (CTRL+F sur la page sinon c'est par ordre alphabétique) et ensuite tu cliques sur la fonction et par exemple tu obtiens ceci (j'ai pris une fonction au hasard) :
https://help.scilab.org/docs/5.4.1/fr_FR/m2sci_balance.html
On voit donc que la fonction balance de Matlab a pour équivalent balanc en Scilab. Et tu as même un exemple plus bas.

Et je viens de me rappeler mais Scilab intégre un convertisseur, tu peux le trouver dans le menu "Applications" de Scilab. J'avais lu qu'il convertissait pas à 100% mais c'est déjà un début.
0
Merci beaucoup :) je vais essayer de me débrouiller avec ca ;) !
0