<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
  <!ENTITY kappname "&kalgebra;">
  <!ENTITY package "kdeedu">
  <!ENTITY % addindex "IGNORE">
  <!ENTITY % Swedish "INCLUDE">
]>

<book lang="&language;">

<bookinfo>
<title
>Handbok &kalgebra;</title>

<authorgroup>
<author
><firstname
>Aleix</firstname
> <surname
>Pol</surname
> <affiliation
> <address
>&Aleix.Pol.mail;</address>
</affiliation>
</author>
<othercredit role="translator"
> <firstname
>Stefan</firstname
> <surname
>Asserhäll</surname
> <affiliation
><address
><email
>stefan.asserhall@comhem.se</email
></address
></affiliation
> <contrib
>Översättare</contrib
></othercredit
> 
</authorgroup>

<copyright>
<year
>2007</year>
<holder
>&Aleix.Pol;</holder>
</copyright>

<legalnotice
>&FDLNotice;</legalnotice>


<date
>2009-11-8</date>
<releaseinfo
>0.9 (&kde; 4.4.0)</releaseinfo>

<abstract>
<para
>&kalgebra; är en matematisk räknare baserad på taggspråket MathML. För närvarande klarar den av att göra enkla MathML-beräkningar (aritmetiska och logiska) och åskådliggöra tvådimensionella och tredimensionella grafer. Det är egentligen inte nödvändigt att kunna MathML för att använda &kalgebra;. </para>
</abstract>

<keywordset>
<keyword
>KDE</keyword>
<keyword
>kdeedu</keyword>
<keyword
>graf</keyword>
<keyword
>matematik</keyword>
<keyword
>2D</keyword>
<keyword
>3D</keyword>
<keyword
>mathML</keyword>
</keywordset>

</bookinfo>

<chapter id="introduction"
> 
<title
>Inledning</title
> 
<para
>&kalgebra; är en MathML-baserad grafisk räknare. Även om den ursprungligen var inriktad på MathML, kan den nu användas av vem som helst med viss kunskap i matematik.</para
> 

<screenshot>
<screeninfo
>Här är en skärmbild av huvudfönstret i &kalgebra;</screeninfo>
	<mediaobject>
	  <imageobject>
	    <imagedata fileref="kalgebra-main-window.png" format="PNG"/>
	  </imageobject>
	    <textobject>
	    <phrase
>Huvudfönstret i &kalgebra;</phrase>
	  </textobject>
	</mediaobject>
</screenshot>

<para
>Huvudfönstret i &kalgebra; består av en terminalflik, en tvådimensionell flik och en tredimensionell flik. Under flikarna finns ett inmatningsfält för att skriva in funktioner eller utföra beräkningar. </para>

</chapter>

<chapter id="syntax">
<title
>Syntax</title>

<para
>Om man vill förstå hur det fungerar, är det bäst att inse att inmatningen konverteras till MathML, även om det inte är nödvändigt att kunna MathML. Syntaxen är i stort sett baserad på sunt förnuft, och bör inte vara svår för någon. Jag har tittat närmare på syntaxen hos Maxima och Maple, så de ser mycket liknande ut.</para>
<para
>Här är en lista av operatorer vi har sett nu:</para>
<itemizedlist>
<listitem
><para
>+ - * / : Addition, subtraktion, multiplikation och division.</para
> </listitem>
<listitem
><para
>^, **: Upphöjt till, där endera formen kan användas. Dessutom är det möjligt att använda Unicode-tecknet ². Upphöjt till är också ett sätt att skriva rötter. Det kan göras som a**(1/b).</para
></listitem>
<listitem
><para
>-&gt; : Lambda. Det är sättet att ange den bundna variabeln i en funktion.</para
></listitem>
<listitem
><para
>x=a..b : Detta används när man behöver begränsa ett intervall (begränsad variabel+övre gräns+undre gräns). Det betyder att x går från a till b.</para
></listitem>
<listitem
><para
>() : Används för att ange högre prioritet.</para
></listitem>
<listitem
><para
>abc(parametrar) : Funktioner. När tolken hittar en funktion, kontrolleras om abc är en operator. Om den är det, behandlas den som en operator. Om den inte är det, behandlas den som en användarfunktion.</para
></listitem>
<listitem
><para
>:= : Definition. Det används för att definiera ett variabelvärde. Man kan skriva uttryck som x:=3, x:=y (vare sig y är definierad eller inte), omkrets:=r->2*pi*r. </para
></listitem>
<listitem
><para
>? : Villkorsdefinition del för del. Vi kan definiera villkorsoperationer i &kalgebra; del för del. Om villkoret anges före '?' används uttrycket bara om det är sant. Om ett '?' utan något villkor hittas, används den sista instansen. Till exempel: piecewise { eq (x,0) ? 0, eq(x,1) ? x+1, ? x**2 } </para
></listitem>
<listitem
><para
>{ } : MathML-omgivning. Den kan användas för att definiera en omgivning. I huvudsak användbar för att arbeta del för del. </para
></listitem>
<listitem
><para
>= &gt; &gt;= &lt; &lt;= : Jämförelse av värden för respektive lika med, större än, större än eller lika med, mindre än, mindre än eller lika med</para
></listitem>
</itemizedlist>
<para
>Nu kan man ställa sig frågan varför användaren ska bry sig om MathML? Det är enkelt. Med det kan man utnyttja funktioner som cos(), sin() och övriga trigonometriska funktioner, sum() eller product(). Det spelar ingen roll vilken sort den är Man kan använda plus(), times() och allt som har en operator. Booleska funktioner är också implementerade, så man kan exempelvis skriva något som liknar or(1,0,0,0,0).</para>

</chapter>

<chapter id="using-console">
<title
>Använda terminalen</title>
<para
>&kalgebra;s terminal är användbar som räknare. Där finns en lista med deklarerade variabler. Genom att dubbelklicka på dem visas en dialogruta som låter dig ändra deras värden (bara ett sätt att gå förbi loggen). Varje gång du skriver in ett uttryck, ändras värdet hos variabeln "ans" till det senaste resultatet.</para>

<para
>Exempel:</para>
<itemizedlist>
<listitem
><para
>sin(pi)</para
></listitem>
<listitem
><para
>k:=33</para
></listitem>
<listitem
><para
>sum(k*x : x=0..10)</para
></listitem>
<listitem
><para
>f:=p->p*k</para
></listitem>
<listitem
><para
>f(pi)</para
></listitem>
</itemizedlist>

<para
>Menyalternativ:</para>

<variablelist>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>N</keycap
></keycombo
></shortcut
> <guimenuitem
>Ny</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Rensar loggen.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>L</keycap
></keycombo
></shortcut
> <guimenuitem
>Ladda skript</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Kör instruktioner i en fil i tur och ordning. Nyttigt om man vill definiera några bibliotek eller återuppta något tidigare arbete.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>G</keycap
></keycombo
></shortcut
> <guimenuitem
>Spara skript</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Sparar instruktionerna som har skrivits in sedan sessionen påbörjades, för att kunna återanvända dem. Skapar textfiler, som bör vara enkla att ändra med vilken texteditor som helst, såsom Kate.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
></shortcut
> <guimenuitem
>Spara logg</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Sparar loggen med alla resultat i en HTML-fil, för att kunna skriva ut dem eller publicera dem.</para
></listitem>
</varlistentry>

<varlistentry>
<term
><menuchoice
><shortcut
><keycombo action="simul"
>&Ctrl; <keycap
>Q</keycap
></keycombo
></shortcut
> <guimenuitem
>Avsluta</guimenuitem
> </menuchoice
></term>
<listitem
><para
>Stänger av programmet.</para
></listitem>
</varlistentry>

</variablelist>

</chapter>

<chapter id="two-D-graphs">
<title
>Tvådimensionella diagram</title>
<para
>För att lägga till en ny tvådimensionell graf i &kalgebra;, måste man gå till den tvådimensionella fliken och klicka under fliken <guilabel
>Lägg till</guilabel
> för att lägga till den nya funktionen. Då ges fokus till en textruta för inmatning där funktionen kan skrivas in.</para>

<sect1 id="two-D-syntax">
<title
>Syntax</title>
<para
>Om en typisk f(x)-funktion ska användas, är det inte nödvändigt att ange det, men om en f(y)-funktion eller polär funktion önskas, måste y-> och q-> anges som bundna variabler.</para>

<para
>Exempel:</para>
<itemizedlist>
<listitem
><para
>sin(x)</para
></listitem>
<listitem
><para
>x²</para
></listitem>
<listitem
><para
>y->sin(y)</para
></listitem>
<listitem
><para
>q->3*sin(7*q)</para
></listitem>
<listitem
><para
>t->vector{sin t, t**2}</para
></listitem>
</itemizedlist>
<para
>Om du har skrivit in funktionen, klicka på knappen <guibutton
>Ok</guibutton
> för att visa grafen i huvudfönstret.</para>

</sect1>

<sect1 id="two-D-features">
<title
>Funktioner</title>
<para
>Flera grafer kan visas i samma diagram. Använd bara knappen <guilabel
>Lägg till</guilabel
> i listläge. Varje graf kan få en egen färg.</para>

<para
>Vyn kan zoomas och flyttas med musen. Genom att använda mushjulet kan man zooma in eller ut. Man kan också markera ett område med musens vänsterknapp, så zoomas området in. Flytta vyn med piltangenterna.</para>

<para
>Under fliken <guilabel
>Lista</guilabel
> kan du visa en sammanhangsberoende meny med ett högerklick på en funktion för att dölja eller ta bort den.</para>

<para
>I menyn <guimenu
>Tvådimensionellt diagram</guimenu
> hittar du följande alternativ:</para>
<itemizedlist>
<listitem
><para
>Visa eller dölj rutnät</para
></listitem>
<listitem
><para
>Behåll proportion vid zoomning</para
></listitem>
<listitem
><para
>Zooma in (<keycombo action="simul"
>&Ctrl; <keycap
>+</keycap
></keycombo
>) och zooma ut (<keycombo action="simul"
>&Ctrl; <keycap
>-</keycap
></keycombo
>)</para
></listitem>
<listitem
><para
>Spara (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>)  grafen som en bildfil</para
></listitem>
<listitem
><para
>Återställ vyn till ursprunglig zoomning</para
></listitem>
<listitem
><para
>Välj en upplösning för diagrammen</para
></listitem>
</itemizedlist>
</sect1>

</chapter>

<chapter id="three-D-graphs">
<title
>Tredimensionella diagram</title>

<para
>För att rita en tredimensionell graf i &kalgebra;, måste man gå till fliken <guilabel
>Tredimensionellt diagram</guilabel
>. Där finns ett inmatningsfält längst ner där man kan skriva in sin funktion. Z kan ännu inte definieras. För närvarande stöder &kalgebra; bara implicita tredimensionella diagram, som bara beror på x och y, såsom (x,y)->x*y, där z=x*y.</para>

<para
>Exempel:</para>
<itemizedlist>
<listitem
><para
>sin(x)*sin(y)</para
></listitem>
<listitem
><para
>x/y</para
></listitem>
</itemizedlist>

<para
>Vyn kan zoomas och flyttas med musen. Genom att använda mushjulet kan man zooma in eller ut. Håll nere vänster musknapp och flytta musen för att rotera diagrammet.</para>

<para
>Vänster och höger piltangenter roterar diagrammet omkring Z-axeln, medan uppåt- och neråttangenterna roterar omkring vyns horisontella axel.</para>

<para
>I menyn <guimenu
>Tredimensionellt diagram</guimenu
> hittar du följande alternativ:</para>
<itemizedlist>
<listitem
><para
>Aktivera och inaktivera genomskinlighet</para
></listitem>
<listitem
><para
>Spara (<keycombo action="simul"
>&Ctrl; <keycap
>S</keycap
></keycombo
>)  grafen som en bildfil</para
></listitem>
<listitem
><para
>Återställ vyn till ursprunglig zoomning</para
></listitem>
<listitem
><para
>Rita diagrammet med punkter, linjer eller ytor</para
></listitem>
</itemizedlist>


</chapter>

<chapter id="dictionary">
<title
>Lexikon</title>

<para
>Lexikonet är en samling av alla tillgängliga operationer i &kalgebra;. Det kan vara användbart för att kontrollera vad en operation används till, och för att veta hur många parametrar en funktion representerar.</para>

</chapter>


<chapter id="credits">
<title
>Tack till och licens</title>

<itemizedlist>
<listitem
><para
>Program copyright 2005-2009 &Aleix.Pol;</para>
</listitem>
</itemizedlist>

<para
>Dokumentation copyright 2007 &Aleix.Pol; &Aleix.Pol.mail; </para>

<para
>Översättning Stefan Asserhäll <email
>stefan.asserhall@comhem.se</email
></para
> 
&underFDL; &underGPL; </chapter>


<appendix id="installation">
<title
>Installation</title>

<sect1 id="getting-kapptemplate">
<title
>Hur man skaffar &kalgebra;</title>
&install.intro.documentation; </sect1>

<sect1 id="compilation">
<title
>Kompilering och installation</title>
&install.compile.documentation; </sect1>

</appendix>
&documentation.index; 
</book>

<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:
-->
