forum-informatico
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Ajude a Asast
Patrocinadores
Últimos assuntos
» Artigo ethereum
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptyTer Set 24, 2019 1:16 pm por jpmartins

» Artigo Bitcoin
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptyTer Set 24, 2019 1:13 pm por jpmartins

» Novo site para desportistas / New site for athletes
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptyTer Dez 04, 2018 8:19 am por Admin

» Check used port with the command line
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptyTer Dez 04, 2018 8:10 am por Admin

» Check the port where mariaDB is running
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptySeg Dez 03, 2018 4:59 am por Admin

» Check the linux version
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptySeg Dez 03, 2018 3:12 am por Admin

» Granting rights to a database for a user
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptyQui Nov 29, 2018 2:04 am por Admin

» Create new user
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptyQui Nov 29, 2018 2:01 am por Admin

» Change level of password security level
duvida no programa de matlab _ fminsearch - Tópico posteado por elcaco EmptyQui Nov 29, 2018 1:59 am por Admin

AdSense
Contributo

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

Ir para baixo

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

Mensagem  Admin 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
Admin
Admin
Admin

Mensagens : 607
Data de inscrição : 21/01/2008
Idade : 47

https://forum-informatico.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos