CyRhmU.jpeg
²é¿´: 2950  |  »Ø¸´: 23
µ±Ç°Ö»ÏÔʾÂú×ãÖ¸¶¨Ìõ¼þµÄ»ØÌû£¬µã»÷ÕâÀï²é¿´±¾»°ÌâµÄËùÓлØÌû

zyj8119

ľ³æ (ÖøÃûдÊÖ)


[½»Á÷] ¡¾ÇóÖú¡¿³ÌÐòÔËÐÐÒѾ­ÎÞ´íÎ󣬵«ÊÇÊäÈëÎļþÓÐÎÊÌ⣬Çó½Ì¡£

CODE:
#include
#include
#include
#include
using namespace std;
class splin1
{
private:
        int n,m;
        double *x,*y,*dy,*ddy,*t,*z,*dz,*ddz,integ;
        double *s;
public:
        splin1 (int nn,int mm)
        {
                n=nn;m=mm;
                x=new double[n];
                y=new double[n];
                dy=new double[n];
                ddy=new double[n];
                s=new double[n];
                t=new double[n];
                z=new double[m];
                dz=new double[m];
                ddz=new double[m];
        }
        void input();
        void interp();
        void output();
        ~splin1()
        {delete[] x,y,dy,ddy,t,z,dz,ddz,s;}
};

void splin1::input()

{
        int k;
        char str1[20];
        cout<<"\nÊäÈëÎļþÃû:";
        cin>>str1;
        ifstream fin(str1);
        if(!fin)
        {cout<<"\n²»ÄÜ´ò¿ªÕâ¸öÎļþ"<         for(k=0;k         {fin>>x[k];fin>>y[k];}
        fin>>dy[0]>>dy[n-1];
        for(k=0;k>t[k];
        fin.close();
}

void splin1::interp()
{
        int i,j;
        double h0,h1,alpha,beta;
        s[0]=dy[0];dy[0]=0.0;
        h0=x[1]-x[0];
        for(j=1;j<=n-2;j++)
        {
                h1=x[j+1]-x[j];
                alpha=h0/(h0+h1);
                beta=(1.0-alpha)*(y[j]-y[j-1])/h0;
                beta=3.0*(beta+alpha*(y[j+1]-y[j])/h1);
                dy[j]=-alpha/(2.0+(1.0-alpha)*dy[j-1]);
                s[j]=(beta-(1.0-alpha)*s[j-1]);
                s[j]=s[j]/(2.0+(1.0-alpha)*dy[j-1]);
                h0=h1;
        }
        for(j=n-2;j>=0;j--)
                dy[j]=dy[j]*dy[j+1]+s[j];
        for(j=0;j<=n-2;j++)s[j]=x[j+1]-x[j];
        for(j=0;j<=n-2;j++)
        {
                h1=s[j]*s[j];
                ddy[j]=6.0*(y[j+1]-y[j])/h1-2.0*(2.0*dy[j]+dy[j+1])/s[j];
        }
        h1=s[n-2]*s[n-2];
        ddy[n-1]=6.*(y[n-2]-y[n-1])/h1+2.*(2.*dy[n-1]+dy[n-1])/s[n-2];
        integ=0.0;
        for(i=0;i<=n-2;i++)
        {
                h1=0.5*s[i]*(y[i]+y[i+1]);
                h1=h1-s[i]*s[i]*s[i]*(ddy[i]+ddy[i+1])/24.0;
                integ=integ+h1;
        }
        for(j=0;j<=m-1;j++)
        {
                if(t[j]>=x[n-1])i=n-2;
                else
                {
                        i=0;
                        while(t[j]>x[j+1])i=i+1;
                }
                h1=(x[j+1]-t[j])/s[i];
                h0=h1*h1;
                z[j]=(3.0*h0-2.0*h0*h1)*y[i];
                z[j]=z[j]+s[i]*(h0-h0*h1)*dy[i];
                dz[j]=6.0*(h0-h1)*y[i]/s[i];
                dz[j]=dz[j]+(3.0*h0-2.0*h1)*dy[i];
                ddz[j]=(6.0-12.0*h1)*y[i]/(s[i]*s[i]);
                ddz[j]=ddz[j]+(2.0-6.0*h1)*dy[i]/s[i];
                h1=(t[j]-x[i])/s[i];
                h0=h1*h1;
                z[j]=z[j]+(3.0*h0-2.0*h0*h1)*y[i+1];
                z[j]=z[j]-s[i]*(h0-h0*h1)*dy[i+1];
                dz[j]=dz[j]-6.0*(h0-h1)*y[i+1]/s[i];
                dz[j]=dz[j]+(3.0*h0-2.0*h1)*dy[i+1];
                ddz[j]=ddz[j]+(6.0-12.0*h1)*y[i+1]/(s[i]*s[i]);
                ddz[j]=ddz[j]-(2.0-6.0*h1)*dy[i+1]/s[i];
        }
}

void splin1::output()
{
        int i;
        char str2[20];
        cout<<"\nÊä³öÎļþÃû:";
        cin>>str2;
        ofstream fout(str2);
        if(!fout)
        {cout<<"\n²»ÄÜ´ò¿ªÕâ¸öÎļþ"<         cout<             <         for(i=0;i         {
                fout<                     <                 cout<                         <         }
        fout<         cout<         <         for(i=0;i         {
                fout<                 <                 cout<                 <         }
        fout<         fout<         fout.close();
}

int main()
{
        splin1 solution(12,8);
        solution.input();
        solution.interp();
        solution.output();
}
               

       

ÊäÈëÎļþΪ£º
0.52  5.28794
8.0   13.8400
17.95 20.2000
28.65 24.9000
50.65 31.1000
104.6 36.5000
156.6 36.6000
260.7 31.0000
364.4 20.9000
468.0 7.80000
507.0 1.50000
520.0 0.200000

1.86548 -0.046115

4.0  14.0  30.0  60.0  130.0  230.0 450.0  515.0
½á¹û³öÏÖÕâ¸öÎÊÌ⣺[Session started at 2011-04-06 17:46:04 +0800.]
GNU gdb 6.3.50-20050815 (Apple version gdb-1469) (Wed May  5 04:36:56 UTC 2010)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin".tty /dev/ttys000
Loading program into debugger¡­
Program loaded.
run
[Switching to process 1601]
Running¡­

ÊäÈëÎļþÃû:splin1.txt

²»ÄÜ´ò¿ªÕâ¸öÎļþsplin1.txt

Debugger stopped.
Program exited with status value:1.(gdb)
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

» ÇÀ½ð±ÒÀ²£¡»ØÌû¾Í¿ÉÒԵõ½:

²é¿´È«²¿É¢½ðÌù

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)


¡ï
zyj8119(½ð±Ò+1):лл²ÎÓë
ÒýÓûØÌû:
Originally posted by zyj8119 at 2011-04-08 17:46:43:
ÓÃvc¿ÉÒÔÁË£¬µ«ÊÇÓÃxcode»¹ÊDz»Ðа¡¡£¡£¡£¡£

½ØÍ¼À´¿´¿´Ê²Ã´µØ·½²»ÐУ¿

PS£º
ÊÇÔÚMacOSÀïÃæÓõÄxcodeô£¿Unix-likeµÄϵͳÀïȨÏÞÕâÖÖ¶«Î÷·Ç³£Ãô¸Ð¡£»òÕßÊÇʲôÆäËûÔ­Òò£¬×ÜÖ®ÃèÊö²»´óÇå³þ°¡...
16Â¥2011-04-08 18:09:10
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)


¡ï ¡ï
΢³¾¡¢ÃÎÏë(½ð±Ò+2): лл»Ø¸´¡­¡­ 2011-04-24 17:42:43
ÒýÓûØÌû:
Originally posted by zyj8119 at 2011-04-08 22:40:46:
ÎÒÃ÷Ã÷°Ñ³ÌÐòÎļþÓëÊý¾ÝÎļþ·ÅÔÚÒ»ÆðÁË¡£¡£¡£µ«ÊÇÈ´ÏÔʾ´ò²»¿ª¡£¡£¡£

¿´À´Â¥Ö÷¶ÔÓÚpathÕâÖÖ¶«Î÷û¸ÅÄî...

VCÀïÃæÄ¬Èϵġ°µ±Ç°¹¤×÷·¾¶¡±Ê¹µÃÄãÔÚVCÀïÃæµã»÷ÄǸöСÈý½Ç·ûºÅÔËÐгÌÐòʱ£¬Ä¬ÈϵÄ·¾¶¾ÍÊdzÌÐòÎļþËùÔÚµÄÄǸö·¾¶£¬ËùÒÔÕâʱºòÄãÖ±½ÓÊäÈëa.txt£¬ËüÄÜÕÒµ½

¶øxcodeÉ趨µÄµ±Ç°¹¤×÷·¾¶ºÍVCµÄϰ¹ß¿ÉÄܲ»Ò»Ñù£¨´ÓÄãµÄÀý×ÓÀ´¿´ÊÇÓ¦¸Ã²»Ò»Ñù£©£¬×ÜÖ®Äã¿ÉÒÔÏÈÊäÈëa.txtµÄ¾ø¶Ô·¾¶³¢ÊÔÒ»ÏÂ

ÖÁÓÚÔõôÔÚxcodeÀïÃæÉ趨¹¤×÷·¾¶£¬Õâ¸öÂ¥Ö÷ÂýÂýÕÒ°É...
22Â¥2011-04-09 12:43:49
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sudo

ľ³æ (ÕýʽдÊÖ)


ÒýÓûØÌû:
Originally posted by dubo at 2011-04-09 12:28:14:
¿ÉÄÜÊDZàÒëÆ÷µÄÊÇ£¬½¨ÒéÓÃVS2010
http://blog.sina.com.cn/s/blog_6663b2990100qgkv.html

=,=»ØÌû²»¿´Ìû...
23Â¥2011-04-09 12:45:00
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ zyj8119 µÄÖ÷Ìâ¸üÐÂ
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û