valdelirio
(usa Ubuntu)
Enviado em 05/03/2012 - 15:34h
Olá!
Eu escrevi em matlab, que é semelhante a octave. Espero que ajude.
Primeiro seu código foi escrito como uma função (function) .m, com duas saídas, a matriz Der e o vetor fun. Segue abaixo tal function:
function [Der,fun]=bilin(samp,i,j)
Der=zeros(2,4);
fun=zeros(4,1);
eta=samp(i,1);
xi=samp(j,1);
etam=0.25*(1-eta);
etap=0.25*(1+eta);
xim=0.25*(1-xi);
xip=0.25*(1+xi);
fun(1)=4*xim*etam;
fun(2)=4*xim*etap;
fun(3)=4*xip*etap;
fun(4)=4*xip*etam;
Der(1,1)=-etam;
Der(1,2)=-etap;
Der(1,3)=etap;
Der(1,4)=etam;
Der(2,1)=-xim;
Der(2,2)=xim;
Der(2,3)=xip;
Der(2,4)=-xip;
Salve-a em alguma pasta, eu a salvei com o nome bilin.m. Depois para usá-la você deve entrar no workspace, direcionar a pasta gravada que esta gravada a function e criar as variáveis de entrada, que nesse caso são samp, i e j. A variável samp me pareceu ser um vetor-coluna e i e j são inteiros que não ultrapassam o número de linhas de samp. Abaixo está um exemplo (os comandos estão após o prompt >>):
>> samp=[2;4];i=1;j=2;
>> [A,B]=bilin(samp,i,j)
você terá como resposta:
A =
0.2500 -0.7500 0.7500 -0.2500
0.7500 -0.7500 1.2500 -1.2500
B =
0.7500
-2.2500
3.7500
-1.2500
Nesse caso A é a matriz Der e B é o vetor fun.
Qualquer dúvida pode escrever.
Abraço