Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public double onCalculo(int iteracao){
- resistorf = Double.parseDouble(resistor.getText().toString());
- capacitorf = Double.parseDouble(capacitor.getText().toString());
- indutorf = Double.parseDouble(indutor.getText().toString());
- tensaof = Double.parseDouble(tensao.getText().toString());
- correntef = Double.parseDouble(corrente.getText().toString());
- tempof = Double.parseDouble(tempo.getText().toString());
- //Transformar miliFarad em Farad
- capacitorf=capacitorf/1000;
- //Calcular o passo
- h=tempof/iteracao;
- //Calcular o Valor Inicial de v'(0)
- wf=(-1)*((tensaof+(resistorf*correntef))/(resistorf*capacitorf));
- //Atribuir variaveis secundarias
- hX=h;
- wT=wf;
- tensaofSec=tensaof;
- //Atribuir as funcoes das EDO's
- funcaoW=(-1)*((wT/(resistorf*capacitorf))+(tensaofSec/(indutorf*capacitorf)));
- funcaoV=wTV;
- for(int i=0;i<iteracao;i++, hX+=h){
- tensaofSec=tensaof;
- wTV=wf;
- wT=wf;
- //Runge-Kutta para a funcao v'(t) e w'(t)
- l1=h*funcaoV;
- k1=h*funcaoW;
- wT=(wf+(k1/2));
- wTV=(wf+(k1/2));
- tensaofSec=(tensaof+(l1/2));
- k2=h*funcaoW;
- l2=h*funcaoV;
- wT=(wf+(k2/2));
- wTV=(wf+(k2/2));
- tensaofSec=(tensaof+(l2/2));
- k3=h*funcaoW;
- l3=h*funcaoV;
- wT=(wf+k3);
- wTV=(wf+k3);
- tensaofSec=(tensaof+l3);
- k4=h*funcaoW;
- l4=h*funcaoV;
- wf=wf+((k1+(2*k2)+(2*k3)+k4)/6);
- tensaof=tensaof+((l1+(2*l2)+(2*l3)+l4)/6);
- }
- return tensaof;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement