{"id":1495,"date":"2023-04-01T17:59:07","date_gmt":"2023-04-01T09:59:07","guid":{"rendered":"https:\/\/people.utm.my\/arazin\/?p=1495"},"modified":"2023-04-01T18:07:42","modified_gmt":"2023-04-01T10:07:42","slug":"1495","status":"publish","type":"post","link":"https:\/\/people.utm.my\/arazin\/2023\/04\/01\/1495\/","title":{"rendered":"Radial Basis Function (RBF)"},"content":{"rendered":"<p>[et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Courses Hero&#8221; _builder_version=&#8221;4.16&#8243; use_background_color_gradient=&#8221;on&#8221; background_color_gradient_stops=&#8221;#474ab6 0%|#9271f6 100%&#8221; background_color_gradient_start=&#8221;#474ab6&#8243; background_color_gradient_end=&#8221;#9271f6&#8243; background_image=&#8221;http:\/\/people.utm.my\/arazin\/wp-content\/uploads\/sites\/595\/2019\/01\/coding-background-texture.jpg&#8221; background_blend=&#8221;overlay&#8221; custom_padding=&#8221;100px|0px|180px|0px&#8221; animation_style=&#8221;slide&#8221; animation_direction=&#8221;top&#8221; animation_intensity_slide=&#8221;2%&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row _builder_version=&#8221;4.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_margin=&#8221;|||&#8221; custom_width_px=&#8221;1280px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;4_4&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_text _builder_version=&#8221;4.20.1&#8243; header_font=&#8221;|on|||&#8221; header_font_size=&#8221;42px&#8221; header_line_height=&#8221;1.3em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; background_layout=&#8221;dark&#8221; max_width=&#8221;530px&#8221; module_alignment=&#8221;center&#8221; custom_padding=&#8221;|||&#8221; header_font_size_tablet=&#8221;&#8221; header_font_size_phone=&#8221;&#8221; header_font_size_last_edited=&#8221;on|desktop&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<h1>Radial Basis Function (RBF)<\/h1>\n<p>[\/et_pb_text][et_pb_text _builder_version=&#8221;4.20.1&#8243; text_text_color=&#8221;#d4ccff&#8221; text_font_size=&#8221;13px&#8221; text_line_height=&#8221;1.3em&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; text_orientation=&#8221;center&#8221; max_width=&#8221;540px&#8221; module_alignment=&#8221;center&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>The radial basis function (RBF), also known as the Radial Point Interpolation Method (RPIM), is a meshfree method used to construct an interpolated function to fit a curve. It uses a set of radial basis functions to interpolate between nodal values, with at least four types of different RBFs used in the literature. The RPIM has no guarantee on the reproduction of polynomial functions since most RBFs use a &#8220;radial-basis-power-law&#8221; to fit the curve. However, the RBF&#8217;s shape parameters can be used to control the smoothness of the fitted curve.<\/p>\n<p>To establish the RPIM formulation, we begin with a representation of a curve function in a 1D system using RBF, with a numerical example of five nodal values given to be fitted. By solving for the unknowns, we can obtain a general fitted function that yields a continuous interpolated function along x based on given nodal values at specified locations. The RPIM has the ability to fit the curve exactly, passing through all the given nodes. The implementation codes for the RPIM are provided in the article, including MATLAB codes that allow us to try any number of given curve nodes, change the parameters&#8217; value, and observe the performance of the RPIM in fitting the curve.<\/p>\n<p>In summary, the RPIM is a useful method for fitting curves based on a set of nodal values using RBFs. Its flexibility and ability to fit the curve exactly make it a popular choice in many applications. However, it&#8217;s important to be aware of the limitations of RBFs and their use in the RPIM. The shape parameters used to control the smoothness of the fitted curve and the type of RBFs used can significantly affect the general performance of the RPIM in fitting the curve.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section][et_pb_section fb_built=&#8221;1&#8243; admin_label=&#8221;Courses&#8221; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;0px|0px|100px|0px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_row column_structure=&#8221;2_5,3_5&#8243; _builder_version=&#8221;4.16&#8243; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_margin=&#8221;|||&#8221; custom_padding=&#8221;0px|0px|27px|0px&#8221; global_colors_info=&#8221;{}&#8221;][et_pb_column type=&#8221;2_5&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_blurb title=&#8221;Open Access from Zenodo.org&#8221; url=&#8221;https:\/\/doi.org\/10.5281\/zenodo.7790999&#8243; url_new_window=&#8221;on&#8221; image=&#8221;http:\/\/people.utm.my\/arazin\/wp-content\/uploads\/sites\/595\/2019\/01\/coding-icon_7.jpg&#8221; icon_placement=&#8221;left&#8221; content_max_width=&#8221;1100px&#8221; _builder_version=&#8221;4.20.1&#8243; header_font=&#8221;|on|||&#8221; header_text_color=&#8221;#2e2545&#8243; header_line_height=&#8221;1.5em&#8221; body_text_color=&#8221;#8585bd&#8221; body_font_size=&#8221;16px&#8221; body_line_height=&#8221;1.9em&#8221; background_color=&#8221;#ffffff&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_margin=&#8221;-80px||10%|&#8221; custom_margin_tablet=&#8221;0px||10%|&#8221; custom_margin_phone=&#8221;&#8221; custom_margin_last_edited=&#8221;on|phone&#8221; custom_padding=&#8221;30px|40px|30px|40px&#8221; animation_style=&#8221;zoom&#8221; animation_direction=&#8221;bottom&#8221; animation_delay=&#8221;100ms&#8221; animation_intensity_zoom=&#8221;20%&#8221; animation_starting_opacity=&#8221;100%&#8221; box_shadow_style=&#8221;preset2&#8243; box_shadow_horizontal=&#8221;0px&#8221; box_shadow_vertical=&#8221;0px&#8221; box_shadow_blur=&#8221;60px&#8221; box_shadow_color=&#8221;rgba(71,74,182,0.12)&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/people.utm.my\/arazin\/wp-content\/uploads\/sites\/595\/2023\/04\/RBF_Zen1-300x223.png\" width=\"300\" height=\"223\" alt=\"\" class=\"wp-image-1498 alignnone size-medium\" \/><\/p>\n<p>[\/et_pb_blurb][\/et_pb_column][et_pb_column type=&#8221;3_5&#8243; _builder_version=&#8221;4.16&#8243; custom_padding=&#8221;|||&#8221; global_colors_info=&#8221;{}&#8221; custom_padding__hover=&#8221;|||&#8221;][et_pb_blurb title=&#8221;GENERALISED CODES&#8221; url=&#8221;#&#8221; image=&#8221;http:\/\/people.utm.my\/arazin\/wp-content\/uploads\/sites\/595\/2019\/01\/coding-icon_8.jpg&#8221; icon_placement=&#8221;left&#8221; content_max_width=&#8221;1100px&#8221; _builder_version=&#8221;4.20.1&#8243; header_font=&#8221;|on|||&#8221; header_text_color=&#8221;#2e2545&#8243; header_line_height=&#8221;1.5em&#8221; body_text_color=&#8221;#000000&#8243; body_font_size=&#8221;13px&#8221; body_line_height=&#8221;1.4em&#8221; background_color=&#8221;#ffffff&#8221; background_size=&#8221;initial&#8221; background_position=&#8221;top_left&#8221; background_repeat=&#8221;repeat&#8221; custom_margin=&#8221;-80px||10%|&#8221; custom_padding=&#8221;30px|40px|30px|40px&#8221; animation_style=&#8221;zoom&#8221; animation_direction=&#8221;bottom&#8221; animation_intensity_zoom=&#8221;20%&#8221; animation_starting_opacity=&#8221;100%&#8221; box_shadow_style=&#8221;preset2&#8243; box_shadow_horizontal=&#8221;0px&#8221; box_shadow_vertical=&#8221;0px&#8221; box_shadow_blur=&#8221;60px&#8221; box_shadow_color=&#8221;rgba(71,74,182,0.12)&#8221; locked=&#8221;off&#8221; global_colors_info=&#8221;{}&#8221;]<\/p>\n<p>Here, we provide a more generalised version of the RBF codes that allows for a flexible number of given curve nodes, adjustable parameter values, and easy evaluation of the PIM performance in curve fitting.<\/p>\n<p>&nbsp;<\/p>\n<table border=\"1\" style=\"border-collapse: collapse;width: 100%\">\n<tbody>\n<tr>\n<td style=\"width: 100%;font-family: courier new\">\n<p>clear, clc<\/p>\n<p>uc = [0 -0.8 4.8 2 -1 0 0 -4.7 2 1 0]&#8217; % nodal values of a curve<\/p>\n<p>n = length(uc) % number of given nodes<br \/>xc = [0:(n-1)]&#8217; % x coordinates (assumed uniform)<\/p>\n<p>% types of RBF (choose only on)<br \/>c = 0; q = 2.01; %shape parameters<br \/>f_RBF =@(ri) (ri.^2 + c^2).^q; % RBF-MQ<br \/>% f_RBF =@(ri) exp(-c*ri.^2); % RBF-EXP<br \/>% f_RBF =@(ri) ri.^q; % RBF-TPS<br \/>% f_RBF =@(ri) (ri.^q).*log10(ri+0.00001); % RBF-LOG<\/p>\n<p>Rc = [];<br \/>for i = 1:n<br \/>ri = abs(xc(i)-xc&#8217;); % in a vector 1&#215;5<br \/>Rci = f_RBF(ri); % RBF<br \/>Rc = cat(1,Rc,Rci); % generate the Pc matrix<br \/>end<br \/>Rc<\/p>\n<p>dxc = 0.1; % step (can be changed if necessary)<br \/>x = min(xc):dxc:max(xc) % interpolation locations<\/p>\n<p>R = [];<br \/>for i = 1:length(x)<br \/>ri = abs(x(i)-xc&#8217;); % in a vector 1&#215;5<br \/>Ri = f_RBF(ri); % RBF<br \/>R = cat(1,R,Ri); % generate the Pc matrix<br \/>end<br \/>phi = R\/Rc<\/p>\n<p>fx = phi*uc<\/p>\n<p>cla<br \/>plot(xc,uc,&#8217;rx&#8217;,&#8217;MarkerSize&#8217;,10,&#8217;LineWidth&#8217;,2)<br \/>hold on<br \/>plot(x,fx,&#8217;b&#8211;&#8216;)<br \/>hold off<br \/>box off<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>[\/et_pb_blurb][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Radial Basis Function (RBF)The radial basis function (RBF), also known as the Radial Point Interpolation Method (RPIM), is a meshfree method used to construct an interpolated function to fit a curve. It uses a set of radial basis functions to interpolate between nodal values, with at least four types of different RBFs used in the [&hellip;]<\/p>\n","protected":false},"author":6455,"featured_media":1498,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"1080","footnotes":""},"categories":[7],"tags":[13],"class_list":["post-1495","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-matlab","tag-matlab"],"_links":{"self":[{"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/posts\/1495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/users\/6455"}],"replies":[{"embeddable":true,"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/comments?post=1495"}],"version-history":[{"count":7,"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/posts\/1495\/revisions"}],"predecessor-version":[{"id":1506,"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/posts\/1495\/revisions\/1506"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/media\/1498"}],"wp:attachment":[{"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/media?parent=1495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/categories?post=1495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/people.utm.my\/arazin\/wp-json\/wp\/v2\/tags?post=1495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}