sexta-feira, 12 de dezembro de 2014

Criador da web diz que internet deveria ser 'direito humano'

Tim

Tim Berners-Lee, o criador da World Wide Web, afirmou que a a internet deveria ser um "direito humano", uma vez que muitas pessoas não podem acessar a rede, seja por falta de um dispositivo conectado, seja por censura do governo.
Berners-Lee disse que a internet ajuda a promover a igualdade, mas somente se ofercer liberdade de espressão e leis de proteção à privacidade.

"É hora de reconhecer a internet como um direito humano básico", afirmou o criador da web. "Isso significa garantir acesso a internet a um custo acessível, garantindo que os pacotes de internet sejam fornecidos sem discriminação comercial ou política, e protegendo a privacidade e liberdade dos usuários da web onde quer que eles morem".
Um levantamento da Web Index indica que o monitoramento da internet é fraco ou inexistente em 84% dos países, mas quase 40% bloqueiam conteúdos sensíveis de "moderado ou extremo grau" e que 50% dos usuários da web vivem em locais com severa restrição de direitos na internet. Mais de 4.4 bilhões de pessoas ainda não têm acesso à rede.
Berners-Lee trabalhava como engenheiro no laboratório CERN quando propôs a ideia da criação da World Wide Web, em 1989.
Internet não é um projeto da CIA - O inventor da World Wide Web disse nesta quinta-feira que o presidente russo, Vladimir Putin, errou ao alegar que a Internet é um projeto criado por espiões dos Estados Unidos da agência de inteligência norte-americana, a CIA.
Putin, ex-espião da KGB que não usa email, disse que não restringirá o acesso à Internet aos cidadão russos, mas em abril ele alimentou temores de que o Kremlin poderia deflagrar uma repressão da Internet, alegando que nasceu a partir de "um projeto da CIA".
"A Internet não é criação do CIA", disse à Reuters Tim Berners-Lee, cientista de computação que inventou a web em 1989 - o mesmo ano da queda do Muro de Berlim - quando questionado sobre o comentário de Putin sobre a CIA.
Berners-Lee disse que a Internet foi inventada com a ajuda de dinheiro do governo norte-americano, mas que foi disseminada por acadêmicos.
"Foi a comunidade acadêmica que conectou suas universidades, portanto foi criada por pessoas inteligentes e bem intencionadas que acreditaram que se tratava de uma boa ideia", disse ele.
Berners-Lee criticou os Estados Unidos e a Grã-Bretanha anteriormente por minarem a base da Internet com seus programas de vigilância. Ele também instigou a China a derrubar "o Grande Firewall" que limita o acesso do povo chinês à Internet.
(com Reuters)

Disponível em: http://info.abril.com.br/noticias/tecnologia-pessoal/2014/12/criador-da-web-diz-que-internet-deveria-ser-direito-humano.shtml 

quinta-feira, 4 de dezembro de 2014

HTML Básico


HTML Básico
Neste tutorial veremos uma introdução de como funciona a linguagem HTML. Veremos as principais tag's da linguagem.
por Leandro Oriente


Este artigo trata de uma introdução ao HTML. O HTML é uma abreviação de HyperText Markup Language ou seja que em português significa, Linguagem de marcação de Hipertexto. Os arquivos HTML são interpretados pelos navegadores (browsers), portanto, caso você tenha algum arquivo HTML no computador, basta pedir que o seu navegador abra ele.
O HTML trabalha com o sistema de tags (etiquetas). Esse sistema funciona da seguinte maneira.
Ex:

1
<tag>Conteúdo da tag</tag>
Toda tag aberta, deve ser fechada, salvo raras exceções, nesses casos ela pode ser fechada da seguinte maneira:

1
</tag>
Uma tag HTML pode conter outra tag dentro dela, e quantas forem necessárias.

1
2
3
<tag>
  <outraTag>texto</outraTag>
</tag>
Algumas tag's possuem propriedades que podem possuir valores. Um exemplo claro é a tag de imagem que possui o caminho da imagem.

1
<img src="caminhoImg.jpg" />

É importante seguir alguns padrões ao criar seu arquivo HTML.

- Primeiramente tente sempre que possível usar as letras em caixa baixa, ou seja, todas em minúsculo.
- Nesse artigo irei abordar somente o HTML. Antigamente os desenvolvedores personalizavam a aparência da página no próprio HTML, porém atualmente estamos fazendo isso pelo arquivo CSS. Portanto, caso gostem desse artigo, posso escrever um sobre CSS básico para personalizar uma página HTML
- O comentário em HTML é feito da seguinte maneira <!–Comentário a seguir –>
- Tente manter seu documento indentado para facilitar a manutenção. Uma tabulação com 2-4 espaços é o suficiente para ajudar na endentação do documento.
Ex:

1
2
3
<tag>
  <outraTag />
</tag>
- Evitem de colocar elementos redundantes no código. Um uso comum é o de <br /> para pular linhas e definir uma altura para um elemento, enquanto o correto seria definir a altura através do Css.
- Uma página HTML tem a extensão .html, porém elas podem ser geradas dinamicamente com alguma linguagem com o PHP, ASP, PYTHON… Então em alguns casos essa extensão é alterada para a extensão da linguagem utilizada para gerar a página HTML.

Quais editores HTML usar.

Para escrever código HTML basta um simples editor de texto como o bloco de notas (notepad). Porém eu recomendo editores mais robustos para facilitar um pouco sua vida. Os principais são es seguintes:
- Sublime Text 2: Considero o melhor editor atualmente. Experimente usar a extensão Zen Coding em conjunto com ele e experimente o máximo da performance ao criar seus arquivos HTML.
- Notepad ++: Outro excelente editor. Possui uma interface simples mas é bem poderoso também.
- Dreamweaver: Um excelente editor para iniciantes. Cuidado com o modo Design. Evite de editar seu HTML por ele pois ele não gera um código muito semântico.

Vou abordar agora as principais tags HTML e explicar um pouco de seu funcionamento.

HTML – <html> </html>
Essa tag é responsável por definir o início de um documento HTML e seu fim. Logo deve ser aberta no início do documento e fechado no seu final.
HEAD – <head></head>
Tag que define o início e o fim do cabeçalho do documento. Abordaremos mais abaixo o que deve ser inserido no cabeçalho.
BODY – <body></body>
Tag onde devem ser inseridos os conteúdos do site que deverão ficar visíveis ao usuários quando a página for renderizada no navegador.
Somente com essas três tags já podemos ter uma estrutura HTML básica. Segue um exemplo.

1
2
3
4
5
6
7
8
9
<!DOCTYPE html>
<html>
    <head>
        <!--conteudo do head-->
    </head>
    <body>
        <!--conteudo do body-->
    </body>
</html>
O <!DOCTYPE html> inserido antes da tag <html> no exemplo anterior é para especificar para o navegador o tipo de página HTML que ele vai renderizar. Existem diferentes tipos de HTML usados atualmente porém os mais usados são o HTML 5, cujo doctype especificado é o que eu utilizei no exemplo, o HTML 4.1 e o XHTML. Nos últimos dois exemplos o doctype é um pouco mais complexo, trazendo informações sobre o tipo de documento (Strict, transitional e frameset). Porém recomendo que sempre utilizem o doctype do HTML 5, pois ele é mais enxuto e mesmo que não utilize HTML 5 em sua página não vai prejudicar em nada a renderização da página pelo browser.

Cabeçalho <head>

No cabeçalho trazemos informações que serão usadas pelo navegador como:
TITLE – <title>Sou o título da página</title>
Título da página a ser exibido (texto que fica na aba de seu navegador quando uma página esta aberta)
LINK – <link href="" type="" media="" rel="" />
Geralmente usado para selecionar arquivo externo no HTML. Um uso comum dele é para selecionar arquivos CSS (responsáveis por definir a aparência da sua página para o usuário final).
Ex:

1
<link href="estilo.css" type="text/css" media="screen" rel="stylesheet" />

Nessa linha, definimos que arquivo a ser utilizado na página é do tipo CSS, para ser renderizado em telas (Monitores, TV's, smartphones…) METATAGS – code><meta name="" content="" />
Metatags tem uma infinidade de funções que não irei citar aqui, porém nesse link existem mais informações sobre todas elas, http://www.w3.org/TR/html401/struct/global.html#h-7.4.4.
Atualmente só costumo utilizar duas. Uma para referenciar para os buscadores um breve resumo sobre a página, chamada DESCRIPTION. O seu uso é basicamente da seguinte forma:
<meta name="description" content="Aqui entra o resumo sobre a página. É recomendável que você não ultrapasse 160 caracteres nesse texto" />
E a metatag CHARSET. Com ela você define que tipo de codificação que o seu texto vai usar ao ser renderizado pelo navegador. Recomendo utilizar o utf-8 mesmo. Porém existem casos onde é preciso usar uma diferente. Existem duas formas de usar o charset. Uma para HTML 5 e uma para os demais. Seguem os exemplos:
HTML 5: <code><meta charset="utf-8" /></code>
Demais: <code><meta http-equiv=”Content-Type” content=”text/html;charset=utf-8″ /></code>
Novamente, recomendo utilizar a marcação do HTML 5 por ser mais enxuta.
Existe ainda a tag <script> que é chamada no cabeçalho por alguns desenvolvedores, porém, prefiro chama-la no final do <body> para não atrapalhar no carregamento dos demais componentes de suas página.
Segue uma exemplo de um cabeçalho:

1
2
3
4
5
6
7
<!doctype html>
<head>
    <title>Título da página</title>
    <meta charset="utf-8" />
    <meta name="description" content="Breve resumo sobre o conteúdo desta página" />
    <link href="estilo.css" rel="stylesheet" type="text/css" />
</head>

Corpo da página – <body>

Dentro da tag <body> é que vão entrar todos os elementos que ficarão visíveis aos usuários. As tags usadas dentro do body podem ser divididas em inline e block. Tags inline são tags que mantem o fluxo comum do conteúdo e tags block quebram o fluxo e geram o elemento abaixo do último block. Você pode usar uma tag inline dentro de uma block, mas não pode usar uma block dentro de uma inline por questões de semântica.
Vou agrupa as principais tags e explicar o seu funcionamento:
<h1></h1>– O H1 é utilizado para marcar um título. Você pode utilizar diversos níveis de relevância, para isso basta mudar o número na tag. As heading tags como são chamadas, vão de 1 á 6. Ou seja, você pode ter um<h1></h1> <h2></h2> … <h6></h6>. É recomendável por questões de otimização e semântica que você utilize apenas um <h1>, que seria o título da página como um todo, e que posicione ele o quanto antes no <body>. Porém as demais tags de título podem ser usadas conforme a necessidade.
Ex:
1
<h1>Sou um título relevante</h1>
<p></p>– O P é utilizado para definir um parágrafo.
Ex:
1
<p>Sou um elemento de parágrafo</p>
<span></span>– SPAN é uma tag inline usada para marcar um trecho de texto. Ele é frequentemente usado para personalizar um trecho de texto em um paragráfo via css, já que naturalmente não altera nada no HTML.
Ex:
1
<p>Sou um<span>pequeno parágrafo</span></p>
<Strong></Strong>– O STRONG é utilizado para deixar um texto em negrito. A tag <b></b> tem um comportamento semelhante porém a W3C recomenda utilizar o <Strong>.
Ex:
1
<p>O trecho a seguir está em<b>negrito</b></p>
<em></em>– A tag EM é utilizada para deixar um elemento em itálico. A tag <i> foi utilizada durante muito tempo para isso porém a W3C recomenda que utilize o <em> mesmo.
Ex:
1
<p>O trecho a seguir está em<em>itálico</em></p>
<u></u>– A tag U é usada para sublinhar um termo.
Ex:
1
<p>Pequeno texto com trecho<u>sublinhado</u></p>
<br />– A tag BR é utilizada para definir uma quebra de linha. Seu uso deve ser cauteloso. Evite usar muitos BR's em casos onde deveriam existir paragráfos.
Ex:
1
2
<p>Primeira linha<br />
  segunda linha</p>
<ul></ul> – <ol></ol> – <li></li>– Os elementos UL e OL são usados para iniciar uma lista, sendo o <ul> para uma sem ordenação numérica e o <ol> para uma com ordenação numérica. Os elementos dentro dessa lista devem ser marcados com a tag LI.
Ex:

1
2
3
4
<ul>
  <li>Sou um elemento de uma lista</li>
  <li>Sou outro elemento dentro da lista</li>
</ul>
<a></a>– O A é um elemento responsável por "linkar" páginas/arquivos na sua página. Através do atributo href você pode especificar aonde está a página/arquivo a ser linkado na página.
Ex:

1
2
<a href="clientes.html">Página de clientes</a>
<a href="currículo.pdf">Curriculo</a>
Link externo:
1
<a href=http://www.siteexterno.com>Site externo sendo linkado</a>

<img /> – A tag IMG é usada para renderizar uma imagem no site. É necessário que o campo src seja preenchido com o caminho para a imagem. Os campos width e height devem ser preenchidos com a largura e a altura da imagem em pixels, é muito importante que esse campo esteja sempre preenchido para evitar que o navegador tenha que calcular sozinho o tamanho da imagem. O campo alt, deve conter uma pequena descrição da imagem para o caso do navegador não conseguir reproduzir a imagem e por questões de acessibilidade para leitores de tela usados por cegos.
Ex:
1
<img src="imagem.jpg" width="50" height="50" alt="Descrição da imagem" />
<div></div>– O DIV é uma tag de bloco, usado para agrupar elementos semelhantes. Um uso comum dele é para categorizar o cabeçalho (Header) da página, o conteúdo (content) e o rodapé (footer). É muito utilizado para auxiliar na personalização do site através do Css.
Ex:

1
2
3
4
<div>
  <h2>Título relevante</h2>
  <p>Texto do bloco</p>
  <img src="alerta.jpg" width="10" height="7" alt="alerta" /></div>
<table></table> – <td></td> – <tr></tr> – A tag TABLE é usada para dermacar uma tabela. As linhas são marcadas com a tag TR enquanto as colunas ficam com a tag TD. É possível agrupar colunas com o atributo colspan e linhas com o atributo rowspan. Um <td colspan="2"></td> significa que aquela coluna vai ocupar o espaço de duas colunas.
Ex: Tabela 2×2

1
2
3
4
5
6
7
8
9
10
<table>
  <tr>
    <td>Primeira coluna da primeira linha</td>
    <td>Segunda coluna da primeira linha</td>
  </tr>
  <tr>
    <td>Primeira coluna da segunda linha</td>
    <td>Segunda coluna da segunda linha</td>
  </tr>
</table>
<form></form>– A tag FORM serve para demarcar a área de um formulário. No caso do form abordarei as tags utilizadas por ele em grupos diferentes pois são muitos. A tag form tem o atributo action, que determina qual ação vai ser executada quando ele for submetido.
Ex:
1
2
<form action="envioFormulario.php">
</form>
<input />– A tag INPUT pode adquirir características especificas de acordo com o atributo type que ele receber.
Ex:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<input type="text" value="Digite aqui" />
<!--Campo onde o usuário pode digitar um pequeno texto.
Caso queira deixar um valor por padrão,
basta adicionar um atributo value com o valor desejado.-->
<input type="submit" />
<!-- Cria um botão que vai submeter o formulário ao ser clicado.-->
<input type="file" />
<!-- Cria um campo para fazer uploads de arquivos.-->
<input type="radio" type="grupo" />
<!-- Cria um campo para seleção única.
As opções disponíveis são agrupadas pelo type, ou seja,
se houverem 3 inputs radio com o mesmo type,
o usuário só poderá escolher um deles.-->
<input type="checkbox" />
<!-- Bem semelhante ao radio, porém permite múltipla seleção.-->
<textarea></textarea>– A tag TEXTAREA tem um comportamento semelhante ao do input text, porém ele é destinado a textos maiores.
Ex:
1
<textarea></textarea>
<label></label>– A tag LABEL permite que você atribua uma legenda a um campo do seu formulário. Existem duas formas de usa-la:
Ex:
1-
1
2
3
<label>Sou uma legenda
  <input type="text" />
</label>

2 -
1
2
<label for="campo">Sou uma legenda</label>
<input type="text" id="campo" />

ALGUMAS TAGS HTML 5

Não irei muito a fundo nesse tópico pois boa parte das tags HTML 5 ainda não estão totalmente compatíveis com todos os navegadores. Principalmente quando falamos do Internet Explorer 8 ou inferior.
<header></header>– A tag HEADER serve para limitar o cabeçalho da sua página. Ele foi criado com a intenção de simplificar o famoso <div id="cabecalho"> / <div id="header">. Cuidado para não confundi-lo com a tag HEAD. O HEADER deve ser utilizado dentro do BODY como auxiliar semântico, enquanto o HEAD fica dentro da tag HTML e trás informações somente visíveis para o navegador.
<footer></footer>– O FOOTER assim como o HEADER serve para auxiliar na formatação da página e veio para substituir a famoso <div id="rodapé">/<div id="footer">.
<aside></aside>– A tag ASIDE é utilizada para demarcar as regiões laterais das páginas que geralmente carregam elementos de navegação, ou informações auxiliares ao conteúdo principal.
<section></section> -A tag SECTION tem um funcionamento muito semelhante ao da DIV porém ela serve para demarca que um bloco de conteúdo possui uma relação mais próxima. Enquanto o DIV não carrega valor semântico algum.
<article></article>– A tag ARTICLE serve para definir o conteúdo principal de uma página.
<nav></nav>– A tag NAV é usada para indicar uma navegação. Ela deve ser usada para agrupar links de navegação.
A principal diferença dessas tags novas das DIV's é que elas passam valor semântico enquanto a DIV só serve como auxiliar para formatação, sem passar valor algum.
Caso queiram utilizar as tags citadas acima em qualquer navegador, mesmo que ele não leia HTML 5, basta inserir o seguinte script no final de sua página:

1
2
3
<!--[if lt IE 9]>
    <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->

ID's e CLASS

OsID'ssão atributos que podem ser atribuídos a qualquer tag presente no <body>. Com ele é possível identificar um elemento facilmente. Isso ajuda muito no desenvolvimento do Css e na programação do Javascript (falaremos adiante sobre isso). É importante ressaltar que o ID deve ser único, ou seja, só pode existir um por página.
Exemplos clássicos de ID's são para definir cabeçalhos, rodapés e blocos de conteúdo.
Ex:

1
2
3
<div id="cabeçalho"></div>
<img src="perfil.jpg" height="50" width="20" id="imagemPerfil" />
<span id="horario">12:30</span>
Já oCLASSdeve ser utilizado para agrupar elementos com atribuições semelhantes. Se você vai usar um botão com as mesmas características em vários locais do site, vale a pena colocar um CLASS nele e personalizar somente uma vez no css.
Ex:

1
<input type="submit" value="Enviar" class="botaoForm" />

CSS e JAVASCRIPT

OCssé um arquivo que visa personalizar o modo como seu HTML aparece para o usuário. Ele deve ser chamado dentro da tag <head> no topo do site.
Ex: <code><link href="estilo.css" type="text/css" media="screen" rel="stylesheet" /></code>
O Javascripté uma linguagem muito ponderosa que permite que o desenvolvedor altere elementos na página HTML. O ideal é que ele seja chamado no fim da página (antes do fechamento da tag body) para não atrasar o carregamento dos demais componentes do seu HTML. Caso tenha interesse em estudar, recomendo olhar também a biblioteca javascript jQuery.
Ex:

1
2
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript">//Aqui vai o seu código javascript</script>
Vou me conter as esses comentários para não sair do foco do artigo. Em breve postarei sobre Css e Javascript também.

Exemplo de uma página HTML completa:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Título da página</title>
<meta name="description" content="Sou o description da página. Uma breve descreição" />
<link href="css/estilo.css" type=text/css rel=stylesheet>
<!--[if lt IE 9]><script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>
<body>
<header> <a href="/"><img src="logo.jpg" alt="Logo site" width="200" height="50"></a>
  <nav>
    <ul>
      <li><a href="/">Home</a></li>
      <li><a href="clientes.html">Clientes</a></li>
      <li><a href="empresa.html">Empresa</a></li>
      <li><a href="contato.html">Contato</a></li>
    </ul>
  </nav>
</header>
<section>
  <h1>Sou o título da página</h1>
  <h2>Sou um subtitulo</h2>
  <p>Sou um conteúdo comum.
  <em>Estou em italico</em>.
  <b>Estou em negrito</b>
  <u>Estou sublinhado</u></p>
</section>
<footer>Sou o rodapé</footer>
<script src="js/javascript.js" type="text/javascript"> </script>
</body>
</html>

ORGANIZANDO E HOSPEDANDO SEU SITE

De aqui em diante falarei de coisas que saem um pouco do escopo do HTML mas que são essenciais para o desenvolvimento de um site.
A principal dela é a organização. Seu site vai ter diversos arquivos HTML. Vamos supor que seja um site empresarial. De cara teríamos uma página para a Home, uma para Empresa, uma para Clientes e uma para Contatos. Então na pasta principal do site, teríamos um arquivo home.html (ou index.html), empresa.html, clientes.html e contato.html.
Porém o site teria diversos outros arquivos como por exemplo, arquivos Css, Imagens usadas no site, Javascripts, documentos anexados nas páginas… Então acaba sendo interessante, criar pastas para arquivos semelhantes. Geralmente trabalho com a seguinte estrutura:
- Site (aqui ficam os arquivos html)
– Css (aqui ficam os arquivos css)
– JS (aqui ficam os arquivos javascript)
– Img (aqui ficam as imagens do site)
– Docs (aqui ficam os demais documentos, pdfs, txt…)
Após isso é necessário providenciar duas coisas para que seu site entre de vez no ar. Uma hospedagem e um domínio.
O domínio .com.br pode ser adquirido no registro.br por apenas R$ 30,00 mensais.
Já a hospedagem deve ser paga a uma empresa terceirizada. Existem planos de R$ 10,00 mensais até planos bem mais caros, porém é importante pesquisar o que melhor se adequa ao seu caso. Existem hospedagens gratuitas, porém não recomendo nenhuma delas.
Após o registro do domínio e o plano de hospedagem, vai ser necessário que você envie seus arquivos para o servidor. Para isso é necessário uma programa de envio ftp. Eu recomendo o filezilla (http://filezilla-project.org/). Basta preencher no programa os dados de host, username e password que a hospedagem irá fornecer e subir o seu diretório com os arquivos
do site para o servidor. É importante que na raiz do site tenha um arquivo chamado index.html que seria a página inicial do site. Geralmente a pasta raiz do site no servidor se chama public_html.
Leandro Oriente – Desenvolvedor Front-End



quarta-feira, 3 de dezembro de 2014

Simulação de um Sistema discreto dinamico não linear.





1)                  Para o sistema dinâmico descrito pelo modelo não linear de quarta ordem:

a) Determine o ponto de equilíbrio do sistema. Utilize a função “fsolve” do Matlab que baseiase no método de Newton Haphson. Dica: As equações ficam em um arquivo e o comando “fsolve” em outro arquivo distinto.
 Exemplo:
(20-A e 0.45-B)

Arquivo 1:
function F=arquivo1(x)
F = [-0.5.*x(1).^2 + 0.5.*x(2).^2 - 0.2;
     -20*sin(x(1)) - 0.45*x(2); % conjunto de equação –> f(x)=0
     -1*x(2)^2 + 0.2*x(4);
     -175*sin(x(3)) - 0.6*x(4)];
end



Arquivo 2:

clc, clear all, close all
x0=[1 ; 1 ; 1 ; 1]; % Condições iniciais para resolução
options=optimset('Display','iter'); % Opção da saída
[x,fval]=fsolve(@arquivo1,x0, options); % Chamando a função

Use o help do matlab para mais detalhes.

Ponto de Equilíbrio:
x =    -0.0142 ;    0.6326 ;    -0.0069 ;    2.0010.

fval = 1.0e-007 *

    0.0777 ,  -0.0000 ;  -0.1555 ,   0.


b) Determine o modelo linear na forma x’(t)=Ax(t) . Utilize o comando “jacobian” do Matlab que baseia-se na expansão em série de Taylor truncada na primeira ordem. Dica: É necessário declarar variáveis simbólicas e depois atribuir valores para as variáveis.

Exemplo:

% declaração das variáveis simbólicas
x1=sym('x1'); x2=sym('x2');x3=sym('x3'); x4=sym('x4');

% conjunto de equações não lineares – x(ponto)=f(x
F = [-0.5.*x1.^2 + 0.5.*x2.^2 - 0.2;
     -20*sin(x1) - 0.45*x2;
     -1*x2^2 + 0.2*x4;
     -175*sin(x3) - 0.6*x4];

X=[x1,x2,x3, x4];
FX=jacobian(F,X);

% atribuição de valores para as variáveis
x1=x(1); x2=x(2); x3=x(3); x4=x(4);
A=subs(FX);
A =
    0.0142    0.6326         0         0
  -19.9980   -0.4500         0         0
         0   -1.2652         0    0.2000
         0         0 -174.9959   -0.6000


c) Calcule os autovalores referentes ao modelo linear obtido e diga se o sistema é estável ou instável.
     As raízes características são os autovalores da matriz.
eig(A)
-0.2179 + 3.5492i ;  -0.2179 - 3.5492i ;   -0.3000 + 5.9084i ;   -0.3000 - 5.9084i
     O sistema é estável. Pois, se todo autovalor real de A é negativo e todo autovalor complexo de A tem parte real negativa, então x = 0 é um ponto de equilíbrio assintoticamente estável: toda solução tende a zero quando t  ® ¥.


d) Faça uma simulação baseada no modelo linear considerando uma perturbação de +10% na variável de estado x2 (ou seja, Δx 2(0) = x2(0)*0,1). Para implementar a simulação linear use o comando “initial” do Matlab.


A =[   0.0142    0.6326         0         0
     -19.9980   -0.4500         0         0
            0   -1.2652         0    0.2000
            0         0 -174.9959   -0.6000];
       
  
 x0=[1 1.1 1 1]; % vetor de condição inicial
 % Pertubação de 10% em x2

 % Matriz B= [1 0 0 0
 %        C=  0 1 0 0
 %        D=  0 0 1 0
 %        E=  0 0 0 1]

 B=[1 0 0 0];  % como é malha aberta

subplot(2,2,1); % controle de impressão da figura.(numero de linhas,numero de colunas,Primeira Posição para o grafico Grafico)
sys = ss(A,[],B,[]);
initial(sys,x0)
legend('L -x1 (Perterbação em x2=10%)',1);
title('Perturbação em x2');
xlabel('Tempo(s)');
ylabel('Amplitude');


subplot(2,2,2);% controle de impressão da figura.(numero de linhas,numero de colunas, Segunda Posição para o grafico Grafico)
C=[0 1 0 0];
sys = ss(A,[],C,[]);
initial(sys,x0)
legend('L -x2 (Perterbação em x2=10%)',1);
title('Perturbação em x2');
xlabel('Tempo(s)');
ylabel('Amplitude');




subplot(2,2,3);% controle de impressão da figura.(numero de linhas,numero de colunas,Terceira Posição para o grafico Grafico)
D=[0 0 1 0];
sys = ss(A,[],D,[]);
initial(sys,x0)
legend('L -x3 (Perterbação em x2=10%)',1);
title('Perturbação em x2');
xlabel('Tempo(s)');
ylabel('Amplitude');


subplot(2,2,4); % % controle de impressão da figura.(numero de linhas,numero de colunas, Quarta Posição para o grafico Grafico)
E=[0 0 0 1];
sys = ss(A,[],E,[]);
initial(sys,x0)
legend('L -x4 (Perterbação em x2=10%)',1);
title('Perturbação em x2');
xlabel('Tempo(s)');
ylabel('Amplitude');




e) Faça uma simulação não linear considerando uma perturbação de +10% na variável de estado x2 (ou seja,  x2inicial (0) = x (0)*1,1 ). Para implementar a simulação use o comando ODE45 do Matlab que utiliza o método de Runge-Kutta de integração numérica. Dica: As equações ficam em um arquivo e o comando “ode45” em outro arquivo distinto. Exemplo:
Arquivo 1:
TSPAN=[0 10.0];
Y0=[x0(1) x0(2) ]; % Condições iniciais
[ta,ya]=ODE45('arquivo2',TSPAN,Y0,[],T1,T2); % função que resolve as equações
figure(1)
plot(ta,ya(:,1)); % “Plota” a variável x1
legend('xxxx',1);
title('xxxx')
xlabel('tempo [s]')
ylabel('xxx [yy]')

Arquivo 2:
function arquivo2 = odefile(t,y,options,T1,T2);
Arquivo2(1,1)= -inv(T1)*y(2) +y(1); % Equações diferenciais
Arquivo2(2,1)= T2*arquivo2(1,1) + y(2); % Equações diferenciais

function principal 
clear all;
clc;
TSPAN=[0 15.0];  % tempo de simulaçao
XX0=[1 1.1 1 1]; % Condições iniciais com 60% em x2
options = odeset('Abstol',1e-6,'Reltol',1e-6);% erro relativo e erro absoluto

[ta,ya]=ode45('arquivo7',TSPAN,XX0,[]); % função que resolve as equações

subplot(2,2,1)
plot(ta,ya(:,1)); % “Plota” a variável x1
legend(' x1 (Perturbação em x2 de 10%',1);
title('Perturbação em x2');
xlabel('Tempo [s]');
ylabel('Amplitude');

subplot(2,2,2)
plot(ta,ya(:,2)); % “Plota” a variável x1
legend(' x2 (Perturbação em x2 de 10%',1);
title('Perturbação em x2');
xlabel('Tempo [s]');
ylabel('Amplitude');

subplot(2,2,3)
plot(ta,ya(:,3)); % “Plota” a variável x1
legend(' x3 (Perturbação em x2 de 60%',1);
title('Perturbação em x2');
xlabel('Tempo [s]');
ylabel('Amplitude');
 
subplot(2,2,4)
plot(ta,ya(:,4)); % “Plota” a variável x4
legend(' x4 (Perturbação em x2 de 10%',1);
title('Perturbação em x2');
xlabel('Tempo [s]');
ylabel('Amplitude');





f) Compare a resposta linear com a resposta não linear das variáveis x2 e x3 para uma perturbação de +10% e outra de +60% na variável x2.

Perturbação de + 10% na Variável X2
Resposta Linear
Resposta Não Linear
     Observando os gráficos da variável X2, a resposta linear e da resposta não linear para uma perturbação de +10% na variável X2, conclui-se que a resposta não linear estabiliza em um tempo menor que a resposta linear, porem a resposta não linear atinge maior amplitude que a resposta linear.
     Observando os gráficos da variável X3, da resposta linear e da resposta não linear para uma perturbação de +10% na variável X2, conclui-se que a resposta não linear decai significativamente estabilizando neste valor negativo em um curto espaço de tempo. Já a resposta linear tem uma pequena oscilação e em poucos segundos estabiliza.

















Perturbação de + 60% na Variável X2
Resposta Linear
Resposta Não Linear
     Observando os gráficos da variável X2, a resposta linear e da resposta não linear para uma perturbação de +60% na variável X2, conclui-se que a resposta não linear estabiliza em um tempo menor que a resposta linear, porem a resposta não linear atinge maior amplitude que a resposta linear.
     Observando os gráficos da variável X3, da resposta linear e da resposta não linear para uma perturbação de +60% na variável X2, conclui-se que a resposta não linear decai significativamente estabilizando neste valor negativo em um curto espaço de tempo. Já a resposta linear tem uma pequena oscilação e em poucos segundos estabiliza.

Modelo na forma de espaço de estados a ser usado no exercício 10:

X’(1) (t)=0,5x1^2(t) - 0,1x2 (t) - 0,2
X’(2) (t )= - 9 sen ( x1 (t )) - 0,3 x2 (t )
X’(3) (t )= - 1x2 ^2 (t ) + 0,2 x4 (t )
X’(4) (t )= - 1 7 5 s e n ( x3 (t )) - 0 ,6 x4 (t )

Obs. 1: Nas simulações no domínio do tempo, gere os gráficos apenas das variáveis x2(t) e x3(t) para o intervalo de tempo de 0 a 15 segundos.