社区
C语言
帖子详情
求三次样条插值的算法和三次样条曲线画法
hotscaner
2004-11-04 09:18:22
请高手们帮帮我吧,我调试三次样条插值算法头都大了,实在是一时写不出了,那位GG、MM有这方面的东西给我发一份吧!不胜感谢。我的Email: yuejianpo@163.com
也可以贴在这里,谢谢了!!!!!!!!
...全文
588
13
打赏
收藏
求三次样条插值的算法和三次样条曲线画法
请高手们帮帮我吧,我调试三次样条插值算法头都大了,实在是一时写不出了,那位GG、MM有这方面的东西给我发一份吧!不胜感谢。我的Email: yuejianpo@163.com 也可以贴在这里,谢谢了!!!!!!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hotscaner
2004-11-09
打赏
举报
回复
to 021850524(吸血鬼牌卫生巾) :你能不能给我加点注释,比如说你定义的变量以及一些循环体的含义,我一定给分!
cao12m
2004-11-07
打赏
举报
回复
算法 很简单 给三个点 +上边界条件 四个方程 四个系数 正好能截出一个三次函数
021850524
2004-11-06
打赏
举报
回复
给你抄的,不知道有没有用.
021850524
2004-11-06
打赏
举报
回复
//计算插值函数在插值点的函数值
void splint(double xa[], double ya[], double y2a[], int n, double& x, double& y)
{
int klo,khi,k;
double h,a,b,aaa,bbb;
klo = 1;
khi = n;
loop: if (khi - klo > 1 )
{
k = (khi + klo) / 2;
if (xa[k] > x)
khi = k;
else
{
klo = k;
}
goto loop;
}
h = xa[khi] - xa[klo];
if (h == 0 )
{
cout<<" pause 'bad xa input'"<<endl;
return;
}
a = (xa[khi] - x) / h;
b = (x - xa[klo]) / h;
aaa = a * ya[klo] + b * ya[khi];
bbb = (a*a*a - a) * y2a[klo] + (b*b*b - b) * y2a[khi];
y = aaa + bbb * h*h /6.0;
}
021850524
2004-11-06
打赏
举报
回复
//计算插值函数在节点处的导数值
void spline(double x[], double y[], int n, double yp1,double ypn, double y2[])
{
double u[100],aaa,sig,p,bbb,ccc,qn,un;
int i,k;
if( yp1 > 9.9e+29 )
{
y2[1] = 0;
u[1] = 0;
}
else
{
y2[1] = -0.5;
aaa = (y[2] - y[1]) / (x[2] - x[1]);
u[1] = (3.0 / (x[2] - x[1])) * (aaa - yp1);
}
for (i = 2; i<=n-1; i++)
{
sig = (x[i] - x[i - 1]) / (x[i + 1] - x[i - 1]);
p = sig * y2[i - 1] + 2.0;
y2[i] = (sig - 1.0) / p;
aaa = (y[i + 1] - y[i]) / (x[i + 1] - x[i]);
bbb = (y[i] - y[i - 1]) / (x[i] - x[i - 1]);
ccc = x[i + 1] - x[i - 1];
u[i] = (6.0 * (aaa - bbb) / ccc - sig * u[i - 1]) / p;
}
if (ypn > 9.9e+29 )
{
qn = 0.0;
un = 0.0;
}
else
{
qn = 0.5;
aaa = ypn - (y[n] - y[n - 1]) / (x[n] - x[n - 1]);
un = (3.0/ (x[n] - x[n - 1])) * aaa;
}
y2[n] = (un - qn * u[n - 1]) / (qn * y2[n - 1] + 1.0);
for (k = n - 1;k>=1;k--)
y2[k] = y2[k] * y2[k + 1] + u[k];
}
hotscaner
2004-11-06
打赏
举报
回复
只要参与的都有分的,帮帮忙,给我顶贴子也行啊!!!
hotscaner
2004-11-05
打赏
举报
回复
兄弟们,帮我顶呀!俺可是翘首以盼啊!
wxaxiao
2004-11-05
打赏
举报
回复
学习
shipfi
2004-11-05
打赏
举报
回复
二楼,看看这边,不知道对你有没有帮助:http://www.programsalon.com/download.asp?type_id=36
FoxMale007
2004-11-05
打赏
举报
回复
关注一下
hotscaner
2004-11-05
打赏
举报
回复
我给自己再顶上一次!
一叶还真不知秋
2004-11-05
打赏
举报
回复
好像很多书上都有,你还没找到,我帮你找一找。
shipfi
2004-11-05
打赏
举报
回复
再帮楼主顶一次。
三次
样条
插值
算法
的C++实现
用C++实现
三次
样条
插值
算法
, This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. A copy of the GNU General Public License is available at: * http://www.fsf.org/licensing/licenses
三次
样条
插值
算法
C++实现
具体介绍请参考http://www.cnblogs.com/yabin/p/6426849.html
三次
样条
插值
算法
C++源代码
三次
样条
插值
算法
C++源代码,经验证正确无误,运行速度快,解决了实用性简单化问题,欢迎下载使用和交流分享,共同促进学习进步。
三次
样条
插值
java
这是我自己写的
三次
样条
插值
java实现,里面还附有学习
三次
样条
插值
和追赶法的ppt,我是根据这两个ppt编的程序,程序很简单,互相学习啦!
三次
样条
插值
算法
三次
样条
算法
详解,鉴于高次插值不收敛,低次插值收敛但是光滑性差,应用
三次
样条
插值
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章