Kurvanpassning.
Hej!
Håller på med en uppgift där jag ska anpassa en kurva.
punkten (4,3) används som skarv.
Vi har kurvan y = a1 + a2x + a3x^2+a4x^3 på intervallet [-1,4] och y=a5+a6x+a7x^2+a8x^3 på intervallet [4,8]
Det blir totalt åtta okända variabler.
kurvan y = a1 + a2x + a3x^2+a4x^3 ska gå genom punkterna (-1,3) (2,7) och (4,3)
Kurvan y=a5+a6x+a7x^2+a8x^3 ska gå genom (4,3) (5,5) och (8,-1)
Dessutom skapar vi två villkor så att kurvan blir så snäll som möjligt.
Derivatan av y = a1 + a2x + a3x^2+a4x^3 d.vs a2+2a3x+3a4x^2 och derivatan av a5+a6x+a7x^2+a8x^3 d.vs a6+2a7x+3a8x^2 ska vara lika då x=4
Andra derivatan av derivatan. 2a3+6a4x och 2a7+6a6x ska vara lika då x=4
Bestäm a1, a2…..a
Dock så får jag varken använda mig av polyfit, vander, interp1, interp2, polyfit, polyval eller splines.
Vet inte hur jag ska gå tillväga för att lösa uppgiften då jag inte får använda någon typ av inbyggda funktioner.
Tack!
Du har 8 okända och 8 ekvation (3 punkter + 3 punkter + derivatan i x=4 + andra derivantan i x=4)
Det blir ett stort ekvationsystem, men som går att lösa
Förstår dock inte hur jag ska ställa upp det eller skriva in i matlab. Det kanske jag som är helt ute och cyklar.
Blir det så här om jag ska ställa upp ekv. systemet?
Hej,
du är lite inne på rätt spår men du vill ju lösa ut 8 obekanta (a1 - a8) ur 8 ekvationer, förslagsvis genom matrisinvertering (eftersom det är MATLAB). Vi vill mao skapa en 8 x 8 matris.
Du skulle t.ex. kunna bilda första raden i matrisen för punkten (-1,3) på följande sätt:
och får då en första ekvation
Matsmats skrev:Hej,
du är lite inne på rätt spår men du vill ju lösa ut 8 obekanta (a1 - a8) ur 8 ekvationer, förslagsvis genom matrisinvertering (eftersom det är MATLAB). Vi vill mao skapa en 8 x 8 matris.
Du skulle t.ex. kunna bilda första raden i matrisen för punkten (-1,3) på följande sätt:
och får då en första ekvation
Jag redigerade mitt svar.
Är det så du menar? Och sedan bara köra linsolve(x,y) för att få fram "a" värdena?
Johnn1 skrev:Jag redigerade mitt svar.
I fortsättningen, om någon har svarat på ditt inlägg och du har ett nytt försök, gör ett nytt inlägg i tråden istället för att ändra i det gamla. Det är svårt att förstå vad som hänt i tråden om gamla försök försvinner. /moderator
Du har inte med a1 - a8 i uppställningen.
Min tanke var att du skulle skapa en matrisekvation .
Om du ställt upp matrisen i MATLAB så löser du den genom att invertera X.
Jag gav ett förslag på första raden i X.