WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Bug in bspline?

 

GastGGG

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2010, 15:55     Titel: Bug in bspline?
  Antworten mit Zitat      
Hallo,

ich habe die optimization toolbox und würde gernen bsplines() benutzen.
doch ich bekomme für manche eingaben eine seltsame fehlermeldung.

z.b, geht das hier nicht:
Code:

 xxx = [7,6,5,4,3,2,1,0.5]
 yyy = [6,7,8,9,10,11,12,13]

 pp = bspline(xxx,yyy);
??? Attempted to access a(1,:); index out of bounds because size(a)=[0,7].

Error in ==> sprpp at 25
k = length(a(1,:)); km1 = k-1; b = a;

Error in ==> bspline at 32
   c=sprpp(tx,b);x=[tt(inter) tt(2*k)];

 

Wie kann ich denn bsplines benutzen und warum kommt diese Fehlermeldung? wo liegt das problem?


GastGGG

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2010, 16:51     Titel:
  Antworten mit Zitat      
May it be correct that the knot-sequence must be positive?
Im unsure how to extract the coefficients of the piecewise polynomials. Are they cubic?
via unmkpp() i get a coefficient matrix which is of order n by n and not like for the spline function of order n by 4.
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.12.2010, 23:18     Titel:
  Antworten mit Zitat      
Hallo GastGGG,
Zitat:
May it be correct that the knot-sequence must be positive?
Im unsure how to extract the coefficients of the piecewise polynomials. Are they cubic?

Hoppla. Normalerweise wird in diesem Forum auf Deutsch gepostet.

Was sagt dir denn die Dokumentation von BSPLINE?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
GastGGG

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2010, 14:08     Titel:
  Antworten mit Zitat      
ah sorry - in meiner verzweiflung und den ganzen englischen dokumentationen
bin ich ins englische abgedriftet. Smile

help bspline sagt mir:
Code:

 BSPLINE Plots a B-spline and its polynomial pieces.
 
    BSPLINE(T)  plots the B-spline with knot sequence T as well as the
    polynomial pieces of which it is composed.
 
    BSPLINE(T,WINDOW) does the plotting in the WINDOW specified.
 
    PP = BSPLINE(T) plots nothing, but returns the ppform of the specified
    B-spline, i.e., gives the same result as  pp = fn2fm(spmak(t,1),'pp').
 
    See also bspligui, spmak
 
 
GastGGG

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2010, 14:13     Titel:
  Antworten mit Zitat      
in der curve fitting toolbox-dokumentation steht dafür das hier:

Code:


In the Curve Fitting Toolbox, a piecewise polynomial, or pp, function in B-form is often called a spline.

The B-form of a (univariate) pp is specified by its (nondecreasing) knot sequence t and by its B-spline coefficient sequence a.

Given the knot sequence and coefficient sequence of a pp, the command spmak returns the corresponding B-form, for use in commands such as fnval (evaluate a function), fnplt (plot a function), fnder (differentiate a function), and other related commands.

The resulting spline is of order k := length(t) - size(a,2). This means that all its polynomial pieces have degree < k
 


heisst das jetzt dass über das kommando spline() ich einen spline bekomme der über b-splines aufgebaut ist?
 
Achi
Forum-Guru

Forum-Guru


Beiträge: 250
Anmeldedatum: 14.04.10
Wohnort: ---
Version: R2007a
     Beitrag Verfasst am: 06.12.2010, 15:24     Titel:
  Antworten mit Zitat      
Hi,

ich glaube nicht, dass das von Jan so gemeint war, er kann ja selbst in der Doku nachsehen. Sondern wie verstehst du das was dir die Doku sagt Wink
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
GastGGG

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.12.2010, 15:38     Titel:
  Antworten mit Zitat      
Ich verstehe im moment überhaupt nix mehr.
Ich kann mir einen b-spline über

Code:

    spl = fn2fm(spline(xset,yset),'B-');
 


erzeugen.
über transformation in pp-form kann ich auch auf die B-spline koeffizienten zugreifen +ber unmkpp().
Alerdings schaffe ich es nicht mir die einzelnen B -splines auszugeben - ich brauche ein möglihckeit mir alle meine einzelnen stückweisen B-splines, welche polynome vom grad 3 sind, auszugeben. also die koeffizienten.

nur finde ich absolut nicht heraus wie ich das hinebkommen soll. Bei einem gewöhnlichen spline() aufruf kann ich über unmkpp auf die stückweisen polynome zugreifen.
nur wie geht das bei den b-splines?
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.