Page 1 of 1
MATLAB - Skjæringspunkt mellom to eller tre funksjoner?
Posted: 06/10-2014 20:11
by Johan Nes
Heisann,
Jeg sitter fast på en obligatorisk MATLAB oppgave. Ligger syk, så terskelen for å spørre om hjelp er ganske lav. Har søkt en del rundt på nettet og det slår meg hvor vanskelig det synes å skulle finne skjæringspunktet mellom to funksjoner?
I deloppgave a) plottet jeg funksjonene f(X) og g(x) i samme plott.
Deloppgave b) ber om å finne x slik at f(x) = 25 og g(x) = 25.
Jeg fikk til å plotte en horisontal linje for y=25 (var ikke enkelt å få til det heller) og tenkte å løse ved å finne krysningspunktet, men her har det stoppet opp. Har funnet noen forslag på nettet, men det er jo lang og tungvint kode.
Finnes det ikke en enkel måte å løse dette på? Tror IKKE jeg trenger om å løse det grafisk.
Et alternativ er jo å bare sette opp to separate likninger f(x)=25 og g(x)=25. Men jeg tenkte kanskje å plotte en tredje graf y=25 og finne hvor den skjærer funksjonene.
Noen tips? På forhånd takk!

Re: MATLAB - Skjæringspunkt mellom to eller tre funksjoner?
Posted: 06/10-2014 20:34
by Nebuchadnezzar
f = @(x) x.^2;
fsolve(f-25) eller fzero(f-25)
Ellers er det jo langt mer fristende å bruke numeriske
tinærminger når det er snakk om matlab. Har ikke anledning til å fyre opp matlab, men
newton rhapson fungerer jo ypperlig.
Code: Select all
function [x1,Error,i] = Newton(f,x0,Max,err)
format long
G = inline(char(f));
Y = char(diff(f));
Gx = inline(Y);
for i = 1:Max
x1 = x0 - G(x0)/Gx(x0);
Error = abs(x0 - x1);
if Error < err
% fprintf('\nIterasjonen konvergerte til ønsket presisjon\n');
return
else
x0 = x1;
end
end
% fprintf('\nIterasjonen konvergerte ikke til ønsket presisjon\n');
Merk at du må først definere $x$ som en variabel. Eg skrive "sym x"
også blir input noe alla
Re: MATLAB - Skjæringspunkt mellom to eller tre funksjoner?
Posted: 06/10-2014 22:23
by Johan Nes
Hey. Takk for svar.
Det er sikkert fordi jeg ikke kan MATLAB eller programmering forøvrig, men jeg synes det virker litt komplisert?
Hva om jeg definerer funksjonen som en likning, [tex]f(x)=25[/tex] og løser den direkte?
Code: Select all
>> eqn = (12.*atan(20.*e))./(sqrt(e+0.001)) == 25; % Definerer likningen f(e)=25
>> solve(eqn,e) % Løser likningen f(e)=25 med hensyn på variabelen e
ans =
0.012203373719175651297552376465562
Vil ikke dette bli rett også?
Re: MATLAB - Skjæringspunkt mellom to eller tre funksjoner?
Posted: 07/10-2014 00:06
by Nebuchadnezzar
Joda, er bare ikke jeg som husker syntaksen rett i hodet. Ofte er det mer naturlig
å definere funksjonen først, og deretter bruke den til å lage graf og finne nullpunkt. Da slipper
en å definere funksjonen flere ganger =)
Re: MATLAB - Skjæringspunkt mellom to eller tre funksjoner?
Posted: 07/10-2014 12:28
by Johan Nes
Takker, N.
Vi er egentlig ferdig med pensum i MATLAB. Tipper jeg kan 70% av det som forventes å kunne og det er ikke sånn veldig mye egentlig.
Men, jeg vet ikke om jeg er helt fornøyd med leksjonene eller tilnærmingen mattelæreren har til å lære oss MATLAB. I tillegg har jeg lyst å bli langt bedre i MATLAB enn hva som forventes i dette faget og lyst å fortsette å utvikle meg videre her på egenhånd ved siden av.
Har du eller andre som leser noen tips til ressurser, (bøker, nett, e.l.,) som er gode for å lære seg MATLAB?
Jeg har en bok jeg har begynt på og som jeg trolig kommer til å fortsette med, men jeg har litt følelsen av at den heller ikke er helt optimal. Den er nesten litt for grundig, noe som fører til at man ikke helt greier å sette det i en sammenheng, men i stedet lærer en hel bråte med funksjoner og kommandoer (som man kanskje ikke har bruk for).
Re: MATLAB - Skjæringspunkt mellom to eller tre funksjoner?
Posted: 07/10-2014 12:45
by Nebuchadnezzar
Jeg satt igjenn med samme følelse som deg egentlig. Det som har hjulpet meg var egentlig bare å sette meg ned å lage
egne programmer og funksjoner. Løse faktiske problemer jeg støter på innen matematikk og fysikk ved hjelp av matlab.
Stod jeg fast visste jeg at jeg alltid kunne snu meg mot forumet her, eller stack.exchange / internett.
Ellers er matlab ypperlig pånumeriske beregninger og analyse av matriser, så anbefaler og å lære seg python/java eller
ett annet lavere nivå språk (om matlab kan kalles ett språk).
Ellers kan prosjekt euler fint nevner =)
Re: MATLAB - Skjæringspunkt mellom to eller tre funksjoner?
Posted: 10/10-2014 14:57
by Johan Nes
Takker, N. Får vel bare fortsette å jobbe med det.
Nå viser det seg at vi skal ha en bok som heter "Matematikk for Ingeniører - med numeriske beregninger" ettersom Kalkulus aldri ble ferdig fra forlaget i tide. Ser ut som denne har en god del programmering integrert, så jeg får sikkert litt øving der.
