Ajude a Asast
Patrocinadores
Últimos assuntos
» Novo site para desportistas / New site for athletes
Sex Mar 17, 2017 8:31 am por Admin

» List files by date
Sex Mar 17, 2017 8:24 am por Admin

» RegExp - Add XXX to the begin of a String
Sex Nov 18, 2016 1:44 am por Admin

» RegExp - Add XXX to the end of a String
Sex Nov 18, 2016 1:38 am por Admin

» Great book about DOD programming
Sex Nov 11, 2016 6:59 am por Admin

» MESOS (Apache)
Qui Set 29, 2016 1:51 am por Admin

» Site de aluguer entre particulares
Sex Jul 01, 2016 3:01 am por Admin

» Noite das maravilhas - Nuit des merveilles
Sex Jul 01, 2016 2:54 am por Admin

» Site para procura de emprego no Luxemburgo
Qui Jun 30, 2016 7:13 am por Admin

AdSense
Contributo

duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco

Mensagem  Admin em Seg Jan 05, 2009 2:08 am

Desculpa colocar aqui esta duvida , mas não sabia em que secção é que deveria colocar.

Gostaria de obter alguma ajuda no programa que estou a tentar fazer.
O meu objectivo é minimizar (optimizar) os valores de k1,k2,k3 usando a função fminsearch do Matlab.
Para tal, criei duas m-files, uma contendo a função fminsearch e a função objectivo, e a outra contém o algoritmo para o

calculo do historico de concentrações.
Contudo as duas m-files estão interligadas, porque para obtermos o historico (perfil) de concentrações, é necessário

optimizar os valores de k1,k2,k3.

O meu problema é que, ainda não tenho grande experiencia com matlab, e aparece-me no programa o seguinte erro:

??? Input argument "k2" is undefined.

Error in ==> cianeto_p_principal>fo at 31
[t,c]=cianeto(k1,k2,k3)

Error in ==> fminsearch at 205
fv(:,1) = funfcn(x,varargin{:});

Error in ==> cianeto_p_principal at 15
[k_bom]=fminsearch(@fo,[k10 k20 k30]);


Por isso procuro alguém que me possa ajudar a resolver o meu programa.
Se alguém tiver algum tempo que possa dispensar para me ajudar, agradecia imenso.
Envio-vos de seguida as respectivas m-files..
Se puderem tentem correr no vosso computador e verificar qual o erro do programa.

Obrigado pela vossa cooperação.

Vasco Mendes


________________________________________________________________________
________________________________________________________________________
function p_principal ()

clc
clear all
close all

global k10 k20 k30 t c cianeto
k10=1e-2;
k20=2e-2;
k30=1e-2;


%k_inicial=[k10 k20 k30]; %estimativas iniciais de k1 k2 e k3

[k_bom]=fminsearch(@fo,[k10 k20 k30]);



[t,c]=cianeto(k_bom);


function valor_fo=fo(k1,k2,k3) %k2 k3] %função que nos vai calcular o erro


global cianeto t c


[t,c]=cianeto(k1,k2,k3)


c5_final=c(end,5) %ultimo valor de c6 ...
c5_exp=0.1 %mol/dm3 valor obtido experimentalmente .... no final do processo
valor_fo=((abs(c5_final-c5_exp))/c5_exp)*100 %calculo do erro



_________________________________________________________________
_________________________________________________________________
function [t,c]=cianeto(k1,k2,k3)

clc
clear all
close all

global nc nr V k

%___CONDIÇÕES INICIAIS DE OPERAÇÃO_____%

ca0=0.5; %mol/dm3
cb0=1; %mol/dm3
cc0=0; %mol/dm3
cd0=0.1; %mol/dm3
ce0=0; %mol/dm3
cf0=0; %mol/dm3
ci0=0; %mol/dm3
cj0=0; %mol/dm3



%CONSTANTES CINÉTICAS considerando reacção pseudo primeira ordem


V=5; %(m3) volume do reactor
nc=8; % nºde componentes
tempo=200; %(h) horas


%___ODE PARA PERFIL DE CONCENTRAÇÃO___%

tspan=[0 tempo];
c0=[ca0 cb0 cc0 cd0 ce0 cf0 ci0 cj0];
[t,c]=ode15s(@reaccao,tspan,c0);

n=length(t)
ca=c(:,1)
cb=c(:,2)
cc=c(:,3)
cd=c(:,4)
ce=c(:,5)
cf=c(:,6)
ci=c(:,7)
cj=c(:,Cool




function [dcdt]=reaccao(t,c)

global k nc nr V k1 k2 k3 k

dcdt=zeros(8,1);


%____REACÇÕES____

r(1)=-k1*c(1)*c(2);
r(2)=-k1*c(1)*c(2)-(k3*c(2)*c(5));
r(3)=+k1*c(1)*c(2)-(k2*c(3)*c(4)^2);
r(4)=2*k1*c(1)*c(2)-(2*k2*c(3)*c(4)^2);
r(5)=k2*c(3)*c(4)^2-(k3*c(2)*c(5));
r(6)=k2*c(3)*c(4)^2+k3*c(2)*c(5);
r(7)=k3*c(2)*c(5);
r(Cool=k3*c(2)*c(5);




%__BALANÇO DE MASSA___

for i=1:1:8
dcdt(i)=r(i);
end
avatar
Admin
Admin

Mensagens : 596
Data de inscrição : 21/01/2008
Idade : 40

Ver perfil do usuário http://forum-informatico.forumeiros.com

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum