Breuken - Wiskunde - vereenvoudigen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Front-end Developer Vue.js Meewerkend voorman

Functieomschrijving Ben jij een ervaren Front-end Developer, bedreven in Vue.js en lijkt het jou gaaf om als meewerkend voorman verantwoordelijk te zijn voor de ontwikkeling van drie junior ontwikkelaars? Werk jij graag aan diverse projecten t.b.v. het vergroten van klant- en medewerkerbeleving? Lee dan snel verder! Het onderhouden, ontwikkelen en testen van front-end software van diverse klant- en medewerkersapplicaties; Het ontwikkelen van maatwerk front-end oplossingen in Vue.js en participeren in een scrumteam; Verantwoordelijk voor het begeleiden en coachen van drie junior front-end developers; Verantwoordelijk voor code-reviews en het opstellen van de juiste documentatie zoals userstories en api ontwerp; Participeren in

Bekijk vacature »

Pagina: 1 2 volgende »

Jasper DS

Jasper DS

24/01/2011 17:11:34
Quote Anchor link
Ik heb mijn theorie van wisk. omgezet in een scriptje.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$a
= 3;
$b = -5;
$c = 1;

$D = pow($b, 2)-4*$a*$c;

echo '$D is '.$D;

switch ($D)
{
    case
0;
    $x = -$b/(2*$a);
    break;
    
    case (
$D < 0);
    $x = 'geen oplossing';
    break;
    
    case (
$D > 0 );
    $x  = (-$b+sqrt($D))/(2*$a);
    $x .=  ' of -'.$x;
    break;
}


echo '<br/>';
echo '<br/>';
echo '$x is '.$x;
?>


Wat is nu het probleem? De bewerking word volledig uitgewerkt. Is er een mogelijkheid om de breuken maximaal te vereenvoudigen (en niet volledig uit te werken) of kan dit gewoon niet.

(De antwoorden zijn altijd anders naar gelang welke getallen je invoert!)

uitkomst van het script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$D is 13

$x is 1.4342585459107 of -1.4342585459107


Wat zou het moeten zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$D is 13

$x is 5+13/6  of -5+13/6


Is dit mogelijk? Zo ja: Hoe? Zo nee: is dit mogelijk in een andere taal?
 
PHP hulp

PHP hulp

08/08/2020 04:43:26
 
- SanThe -

- SanThe -

24/01/2011 17:18:57
Quote Anchor link
Je moet het niet volledig uitrekenen.
 
Jasper DS

Jasper DS

24/01/2011 17:21:20
Quote Anchor link
Neen, dit zijn oefeningen zonder rekenmachine, gewoon de formule toepassen en zo ver mogelijk vereenvoudigen. 8/4 wordt dus 2 maar 3/2 blijft gewoon 3/2
 
Kris Peeters

Kris Peeters

24/01/2011 17:23:46
Quote Anchor link
(Edit, ik krijg die vierkantswortel symbolen niet in orde...)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$x is 5+?13/6  of -5+?13/6


Bedoel je
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$x is 5+?13/6  of 5-?13/6

?
Gewijzigd op 24/01/2011 17:25:54 door Kris Peeters
 
Jasper DS

Jasper DS

24/01/2011 17:24:30
Quote Anchor link
ik zou natuurlijk ook bij elke stap kunnen gaan kijken of het een geheel getal vormt maar dat is wat te veel werk niet?

@ Kris, bij dit voorbeeld zijn er net 2 oplossingen "5+?13/6" en het tegengestelde "-5+?13/6"

Dit dient voor 2de graads vergelijkingen op te lossen

Dus $D is de dividend (of zo iets) discriminant en dan moet je de regeltjes volgen (switch)
Gewijzigd op 24/01/2011 18:14:19 door Jasper DS
 
Kris Peeters

Kris Peeters

24/01/2011 17:30:18
Quote Anchor link
ax² + bx + c = 0

x1,2 = (b² + vierkantswortel(4ac)) / 2a of (b² - vierkantswortel(4ac)) / 2a
Gewijzigd op 24/01/2011 17:31:45 door Kris Peeters
 
Jasper DS

Jasper DS

24/01/2011 17:32:01
Quote Anchor link
ja, wat is 1,2 bij x?

edit: ik denk dat wat je schrijft niet helemaal correct is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
standaardvorm: ax+bx+c=0     (met a niet gelijk aan 0)

D = b-4ac

D<0    oplossing bestaat niet
D=0    1 oplossing
D>0    2 oplossingen
Gewijzigd op 24/01/2011 17:36:33 door Jasper DS
 
Kris Peeters

Kris Peeters

24/01/2011 17:33:45
Quote Anchor link
Een notatie voor oplossing 1 en oplossing 2.
Formules schrijven in tekst is uiteraard wat lastig. Op papier geeft dat beter.
 
Jasper DS

Jasper DS

24/01/2011 17:37:00
Quote Anchor link
check mijn edit.

(even eten)
 
Pim -

Pim -

24/01/2011 17:38:33
Quote Anchor link
PHP kent slechts cijfers, geen samenstellingen.

Als je daar omheen wil werken, ben je wel even bezig...

Je kan bijvoorbeeld een object maken, dat samengesteld cijfers kan dragen en zichzelf kan vereenvouigen. Dan moet je nog regels maken om die samenstellingen met elkaar te delen/vermenigvuldigen/af te trekken etc. lastig hoor.

Als je je beperkt tot gehele getallen als a, b en c, is het niet zo moeilijk.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php

function abc($a, $b, $c) {
    $d2 = pow($b, 2) - 4 * $a * $b;

    if($d2 < 0)
        return 'Kan niet';

    if($d2 == 0)
        return 'x = '.implode('/', vereenvoudigBreuk(-$b, 2*$a));

    if(is_int(sqrt($d2)) {
        $x1boven = -$b + sqrt($d2);
        $x1 = implode('/', vereenvoudigBreuk($x1boven, 2*$a));

        $x2boven = -$b - sqrt($d2);
        $x2 = implode('/', vereenvoudigBreuk($x2boven, 2*$a));
    }
else {
        $x1 = '('.-$b.'+'.vereenvoudigWortel($d2).')/'.2*$a;
        $x1 = '('.-$b.'-'.vereenvoudigWortel($d2).')/'.2*$a;
    }

    return 'x = '.$x1.' V x = '.$x2;
}

function
vereenvoudigBreuk($a, $b) {
    $positief = $a*$b >= 0;
    $a = abs($a);
    $b = abs($b);
    for($i = min(array($a, $b)); $i > 1; --$i)
        if(is_int($a/$i) && is_int($b/$i)) {
            $a /= $i;
            $b /= $i;
        }

    if(!$positief)
        $a *= -1;
    return array($a, $b);
}

function
vereenvoudigWortel($n) {
    $a = 1;
    for($i = floor(sqrt($n)); $i > 1; --$i)
        if(is_int($n / pow($i, 2)) {
            $a *= $i;
            $n /= pow($i, 2);
        }

    if($a != 1)
        return $a.'?'.$n;
    return '?'.$n;
}

?>

Volgens mij werkt t zo. Of die for-regels optimaal zijn, weet ik niet.
Gewijzigd op 24/01/2011 18:11:52 door Pim -
 
Ocirina Ocirina

Ocirina Ocirina

24/01/2011 17:45:59
Quote Anchor link
PHP Jasper op 24/01/2011 17:24:30:
ik zou natuurlijk ook bij elke stap kunnen gaan kijken of het een geheel getal vormt maar dat is wat te veel werk niet?

@ Kris, bij dit voorbeeld zijn er net 2 oplossingen "5+?13/6" en het tegengestelde "-5+?13/6"

Dit dient voor 2de graads vergelijkingen op te lossen

Dus $D is de dividend (of zo iets) en dan moet je de regeltjes volgen (switch)


Discriminant. Leuk script ik heb zo iets in me gr. Als het script klaar is kun je hem dan posten?
 
Jasper DS

Jasper DS

24/01/2011 18:14:56
Quote Anchor link
zal ik doen, eerst even naar het script van pim kijken
 
Yea Rupie

Yea Rupie

24/01/2011 18:52:30
Quote Anchor link
als x1=5 wil niet zeggen dat x2=-5

Ik heb eens een klein vb2008 scriptje gemaakt voor school die de abc formule gebruikt.
En deze geeft deze uitwerking:

y = x²+4x+3
a = 1 b = 4 c = 3
d = (4)² - 4 x 1 x 3 = 4
x = (-4 - ?4) / (2 x 1) V x = (-4 + ?4) / (2 x 1)
x = -3 V x = -1
Gewijzigd op 24/01/2011 18:57:07 door Yea Rupie
 
Jasper DS

Jasper DS

24/01/2011 19:19:42
Quote Anchor link
Heb je die code online?
 
Bas Cost Budde

Bas Cost Budde

24/01/2011 19:38:16
Quote Anchor link
De wortelformule is zo:
De oplossingen van een tweedegraadsvergelijking in x, gegeven door

ax^2 + bx + c = 0

zijn

x1 = (-b + sqrt(b^2 - 4*a*c)) / 2*a
x2 = (-b - sqrt(b^2 - 4*a*c)) / 2*a

Je zou objecten kunnen schrijven voor een breuk en een wortel, daarin de rekenregels implementeren, zodat je daarmee kunt vereenvoudigen. Leuk klusje, ook iets moois als practicumopdracht voor "beginners" in de OO, denk ik.
 
Jasper DS

Jasper DS

24/01/2011 19:40:04
Quote Anchor link
er zijn niet altijd 2 oplossingen soms is er geen oplossing, soms is er 1 oplossing en soms zijn er 2 oplossingen
 
Write Down

Write Down

24/01/2011 19:53:44
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function breuk($teller, $noemer) {
    while ($noemer != 0){
      $t = $teller % $noemer;
      $teller = $noemer;
      $noemer = $t;
    }

    return $teller;
}
?>


Ik vond dit hier nog ergens tussen mijn bestanden. Nja, is maar beperkt in mogelijkheden en vrij traag.
 
Karl Karl

Karl Karl

24/01/2011 20:04:37
Quote Anchor link
a: Wortels hoor je als wortels zo eenvoudig mogelijk op te schrijven.
b: Het is een opdracht die je zonder rekenmachine moet doen.

Conclusie: Doe het met de hand en verkloot je tijd niet aan deze onzin.


Edit: vind dit wel een koffiehoektopic.
Gewijzigd op 24/01/2011 20:05:06 door Karl Karl
 
Jasper DS

Jasper DS

24/01/2011 20:06:37
Quote Anchor link
Ik probeer wel meer school opdrachten om te zetten naar een scriptje, is altijd een mooie oefening voor mijn phpskils :p
 
Bas Cost Budde

Bas Cost Budde

24/01/2011 20:09:50
Quote Anchor link
PHP Jasper op 24/01/2011 19:40:04:
er zijn niet altijd 2 oplossingen soms is er geen oplossing, soms is er 1 oplossing en soms zijn er 2 oplossingen


Dat hangt dan weer van je kennis van de theorie af.

Een n-de graadsvergelijking heeft altijd n oplossingen. Soms vallen twee of meer van die oplossingen samen, soms zijn ze niet reeel.

In het geval van de tweedegraadsvergelijking kun je dat zien aan de discriminant. Is die positief, dan heb je twee reele oplossingen; is die nul, dan vallen de twee oplossingen samen; is hij negatief, dan zijn er twee complexe oplossingen.
 
Jasper DS

Jasper DS

24/01/2011 20:10:19
Quote Anchor link
ja dat klopt.
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.