声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2872|回复: 11

[求助]新手求助

[复制链接]
发表于 2005-10-23 09:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
<P>我不懂matlab可是要用它解题,而且还急用 ,各位大哥大姐帮帮忙吧,谢谢了!<br><br><br>    用三次样条插值的三湾矩法,编制第一种和第二种边界条件的程序,数据如下:<br>        x     0.2               0.4               0.6               0.8              1.0</P>
<P>     f(x)    0.9798652   0.9177710   0,8080348   0.6386093   0.3843735</P>
<P>     求f(x)的三次样条插值函数S(x),满足:<br>            (1)自然边界条件S''(0.2)=S(0.1)=0<br>              (2)第一种边界条件 要求输出用追赶法解出的弯矩向量(M0,M1,M2,M3,M4)     和S(0.2+0.1i)(i=0,.......8)的值 ,并画出y=S(x)的图形<br><br><br><br><br>如果你有时间我还有一道题要麻烦你,不过要是写起来太麻烦就算了,谢谢</P>
<P>给出积分 </P>
<P> (1)I=[从0到2积分] {x的平方乘以[e的(负x的平方)次方]}<br> (2)I=[积分从二分之派到四分之三排] [cot x]<br> (3)I=[积分从2到3] [(x的平方减1)分之1]<br>(1) 用隆贝格求积计算上述积分I的值,要求到T[上标(0),下标K-1]减去T[上标(0),下标k]的绝对值小于10的负六次方是结束,输出T表和I的近 似值<br>(2) 用5点高斯求积公式及复化3点高斯求积公式计算上述积分,并输出I的近似值<br>(3) 分析比较各种计算结果<br>        <br>不知道你能不能看懂,呵呵,数学表达式我不会写!<br><br></P>
[此贴子已经被作者于2005-10-23 11:39:40编辑过]

回复
分享到:

使用道具 举报

发表于 2005-10-23 10:14 | 显示全部楼层

回复:(happybaby)[求助]新手求助

<STRONG>matlab 中三次样条插值算法<BR><BR></STRONG>h0=figure('toolbar','none',...<BR>    'position',[200 50 350 450],...<BR>    'name','实例86');<BR>h1=axes('parent',h0,...<BR>    'position',[0.10 0.45 0.8 0.5],...<BR>    'visible','off');<BR>x=0:0.2:2*pi;<BR>y=sin(x);<BR>plot(x,y)<BR>b1=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','b1',...<BR>    'style','pushbutton',...<BR>    'string','三次样条插值',...<BR>    'backgroundcolor',[0.75 0.75 0.75],...<BR>    'position',[20 60 70 20],...<BR>    'callback',[...<BR>        'y=0,',...<BR>        'sy=0,',...<BR>        'strn1=get(e2,''string'');,',...<BR>        'n1=str2num(strn1);,',...<BR>        'strn2=get(e3,''string'');,',...<BR>        'n2=str2num(strn2);,',...<BR>        'x=n1:0.2:n2;,',...<BR>        'i=1;,',...<BR>        'for t=n1:0.2:n2,',...<BR>        'y(i)=sin(t);,',...<BR>        'sy(i)=san(t,n1,n2);,',...<BR>        'i=i+1;,',...<BR>        'end,',...<BR>        'plot(x,y,''b*'',x,sy,''r-''),',...<BR>        'axis([0 7 -1.5 1.5]),',...<BR>        'legend(''sin(x)'',''N-Hermite插值'')']);<BR>b2=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','b2',...<BR>    'style','pushbutton',...<BR>    'string','误差比较',...<BR>    'backgroundcolor',[0.75 0.75 0.75],...<BR>    'position',[170 60 70 20],...<BR>    'callback',[...<BR>        'strdn1=get(e2,''string'');,',...<BR>        'n1=str2num(strdn1);,',...<BR>        'strdn2=get(e3,''string'');,',...<BR>        'n2=str2num(strdn2);,',...<BR>        'strdn=get(e1,''string'');,',...<BR>        'dn=str2num(strdn);,',...<BR>        'dd=abs(sin(dn)-san(dn,n1,n2));,',...<BR>        'msgbox([''误差为:'',num2str(dd)],''计算结果'')']);<BR>e1=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','e1',...<BR>    'style','edit',...<BR>    'fontsize',12,...<BR>    'string','1.20',...<BR>    'horizontalalignment','right',...<BR>    'backgroundcolor',[1 1 1],...<BR>    'position',[200 100 40 20]);<BR>t1=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','t1',...<BR>    'style','text',...<BR>    'string','误差点:',...<BR>    'fontsize',12,...<BR>    'backgroundcolor',[0.75 0.75 0.75],...<BR>    'position',[160 100 40 20]);<BR>e2=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','e2',...<BR>    'style','edit',...<BR>    'fontsize',12,...<BR>    'string','1.00',...<BR>    'horizontalalignment','right',...<BR>    'backgroundcolor',[1 1 1],...<BR>    'position',[20 85 40 20]);<BR>t2=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','t2',...<BR>    'style','text',...<BR>    'string','第一节点:',...<BR>    'fontsize',12,...<BR>    'backgroundcolor',[0.75 0.75 0.75],...<BR>    'position',[15 105 50 20]);<BR>e3=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','e3',...<BR>    'style','edit',...<BR>    'fontsize',12,...<BR>    'string','3.00',...<BR>    'horizontalalignment','right',...<BR>    'backgroundcolor',[1 1 1],...<BR>    'position',[100 85 40 20]);<BR>t3=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','t3',...<BR>    'style','text',...<BR>    'string','第二节点:',...<BR>    'fontsize',12,...<BR>    'backgroundcolor',[0.75 0.75 0.75],...<BR>    'position',[95 105 50 20]);<BR>b3=uicontrol('parent',h0,...<BR>    'units','points',...<BR>    'tag','b3',...<BR>    'style','pushbutton',...<BR>    'string','关闭',...<BR>    'backgroundcolor',[0.75 0.75 0.75],...<BR>    'position',[100 20 60 20],...<BR>    'callback','close');
 楼主| 发表于 2005-10-23 11:21 | 显示全部楼层
真实太感谢了,<BR>老师让交程序,我直接把它交上去就可以了吧?<BR>
发表于 2005-10-23 11:32 | 显示全部楼层

回复:(happybaby)[求助]新手求助

呵呵,他给出的好象只是作图方法,里边没有插值在内,只是做了一条正弦曲线<BR><BR>插值方面还要自己写
 楼主| 发表于 2005-10-23 11:36 | 显示全部楼层
可我是一点也不懂啊,能不能帮帮忙,今天就要交了
 楼主| 发表于 2005-10-23 11:39 | 显示全部楼层
<P>如果你有时间我还有一道题要麻烦你,不过要是写起来太麻烦就算了,谢谢</P>
<P>给出积分 </P>
<P> (1)I=[从0到2积分] {x的平方乘以[e的(负x的平方)次方]}<BR> (2)I=[积分从二分之派到四分之三排] [cot x]<BR> (3)I=[积分从2到3] [(x的平方减1)分之1]<BR>(1) 用隆贝格求积计算上述积分I的值,要求到T[上标(0),下标K-1]减去T[上标(0),下标k]的绝对值小于10的负六次方是结束,输出T表和I的近 似值<BR>(2) 用5点高斯求积公式及复化3点高斯求积公式计算上述积分,并输出I的近似值<BR>(3) 分析比较各种计算结果<BR>        <BR>不知道你能不能看懂,呵呵,数学表达式我不会写!<BR></P>
发表于 2005-10-23 11:46 | 显示全部楼层

回复:(happybaby)[求助]新手求助

<P>我这里有一个现成的满足你要求的子程序,你可以看看<BR>你自己琢磨一下怎么调用吧,我现在没时间<BR><BR>function [S,YT]=yjc(X,Y,fb0,fe0,XX,a)<BR>%其中X,Y矩阵分别为点(x(i),y(i)]<BR>%fb0,feo表示当a=1是为第一边界条件否则为自然边界条件<BR>K=length(XX);%待求点的个数<BR>N=length(X);%输入点的个数<BR>H=diff(X); %建立H矩阵其元素H(i)=X(i+1)-X(i)<BR>F=diff(Y)./H;%建立F矩阵其元素为F(i)=f[x(i),x(i+1)]<BR>for i=2:N-1<BR>D(i)=6*(F(i)-F(i-1))/(H(i-1)+H(i));<BR>U(i-1)=H(i-1)/(H(i-1)+H(i));<BR>R(i)=H(i)/(H(i-1)+H(i));<BR>end</P>
<P>if (a==1)%判断是第一边界条件还是自然边界条件<BR>D(1)=6*(F(1)-fb0)/H(1);<BR>D(N)=6*(fe0-F(N-1))/H(N-1);<BR>U(N-1)=1;<BR>R(1)=1;%建立矩阵U,R,D,为用追赶法求解做准备<BR>else<BR>R(1)=0;<BR>U(N-1)=0;<BR>D(1)=2*fb0;<BR>D(N)=2*fe0;<BR>end<BR>%E=2*eye(N);<BR>%U=diag(U,-1);<BR>%R=diag(R,1);<BR>%EE=E+R+U;<BR>%下面为用追赶法求解M<BR>B(1)=R(1)/2;<BR>for i=2:N-1<BR>B(i)=R(i)/(2-U(i-1)*B(i-1));<BR>end<BR>YY(1)=D(1)/2;<BR>for i=2:N<BR>YY(i)=(D(i)-U(i-1)*YY(i-1))/(2-U(i-1)*B(i-1));<BR>end<BR>M(N)=YY(N);<BR>for i=N-1:-1:1<BR>M(i)=YY(i)-B(i)*M(i+1);<BR>end<BR>%求出系数矩阵S<BR>for k=1:N-1<BR>S(k,1)=(M(k+1)-M(k))/(6*H(k));<BR>S(k,2)=M(k)/2;<BR>S(k,3)=(Y(k+1)-Y(k))/H(k)-H(k)*(2*M(k)+M(k+1))/6;<BR>S(k,4)=Y(k);<BR>end<BR>for j=1:K<BR>for i=1:N-1<BR>if((XX(j)&gt;=X(i))&amp;(XX(j)&lt;=X(i+1)))<BR>YT(j)=polyval(S(i,:),XX(j)-X(i));<BR>end<BR>end<BR>end<BR>%处理字符串用作画图<BR>t4='';<BR>for i=1:N-1<BR>t1=['x',int2str(i),'=X(',int2str(i),'):H(',int2str(i),')/100:X(',int2str(i),'+1);y',int2str(i),'=polyval(S(',int2str(i),',:),','x',int2str(i),'-X(',int2str(i),'));'];<BR>执行(t1);<BR>if(i==N-1)<BR>t4=[t4,'x',int2str(i),',','y',int2str(i)];<BR>else<BR>t4=[t4,'x',int2str(i),',','y',int2str(i),','];<BR>end<BR>end<BR>t5=['plot','(',t4,')'];</P>
 楼主| 发表于 2005-10-23 11:51 | 显示全部楼层
谢谢了
 楼主| 发表于 2005-10-23 12:05 | 显示全部楼层
那位大哥帮我写一下第二题,在线等  ,谢谢了先
[此贴子已经被作者于2005-10-23 12:05:54编辑过]

发表于 2005-10-23 15:09 | 显示全部楼层

回复:(happybaby)[求助]新手求助

高斯积分,这是10点法的,该一下就可以变成5点法和3点法了<br><br>/******************************************************************** <br>* 用高斯10点法计算函数f(x)从a到b的积分值 <br>* 输入: f--函数f(x)的指针 <br>*       a--积分下限 <br>*       b--积分上限 <br>* 输出: 返回值为f(x)从a点到b点的积分值 <br>*******************************************************************/ <br>double gauss_legendre(double(*f)(double),double a,double b) <br>{ <br>const int n=10; <br>const double z[10]={-0.9739065285,-0.8650633677,-0.6794095683, <br>-0.4333953941,-0.1488743390,0.1488743390, <br>0.4333953941,0.6794095683,0.8650633677, <br>0.9739065285}; <br>const double w[10]={0.0666713443,0.1494513492,0.2190863625, <br>0.2692667193,0.2955242247,0.2955242247, <br>0.2692667193,0.2190863625,0.1494513492, <br>0.0666713443}; <br>double y,gg; <br>int i; <br>gg=0.0; <br>for(i=0;i&lt;n;i++) <br>{ <br>y=(z*(b-a)+a+b)/2.0; <br>gg+=w*(*f)((double)y); <br>} <br>return((double)((gg*(b-a)/2.0))); <br>} <br>
[此贴子已经被作者于2005-10-23 15:11:32编辑过]

发表于 2005-10-23 15:16 | 显示全部楼层

回复:(happybaby)如果你有时间我还有一道题要麻烦你...

<DIV class=quote><B>以下是引用<I>happybaby</I>在2005-10-23 11:39:00的发言:</B><BR>
<P>如果你有时间我还有一道题要麻烦你,不过要是写起来太麻烦就算了,谢谢</P>
<P>给出积分 </P>
<P>(1)I=[从0到2积分] {x的平方乘以[e的(负x的平方)次方]}<BR>(2)I=[积分从二分之派到四分之三排] [cot x]<BR>(3)I=[积分从2到3] [(x的平方减1)分之1]<BR>(1) 用隆贝格求积计算上述积分I的值,要求到T[上标(0),下标K-1]减去T[上标(0),下标k]的绝对值小于10的负六次方是结束,输出T表和I的近 似值<BR>(2) 用5点高斯求积公式及复化3点高斯求积公式计算上述积分,并输出I的近似值<BR>(3) 分析比较各种计算结果<BR>        <BR>不知道你能不能看懂,呵呵,数学表达式我不会写!<BR></P></DIV>
<br>longberg的自己写一下吧,挺简单的
发表于 2006-6-6 21:57 | 显示全部楼层

望各位大哥大姐回帖,小弟在此先谢了!

<P>e(自然对数)的的负y的平方的不定积分能不能求出来?如果能求出来有没有具体的表达式?</P>
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-12 20:48 , Processed in 0.061513 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表