当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

c语言编程常微分方程初值问题的taylor求解方法的完整编程急

更新:03-17 整理:39baobao.com
字体:

[c语言编程二分法解方程]这段代码是求解方程f(x)=0在区间[-10,10]上的根的数值解。 方法的思想就是:一直选取区间中间的数值,如果发现中间的函数值与一侧函数值,异号,那么说明解在这个更小的区间中,采用e...+阅读

#include//y'=x+ydoublef1(doublex,doubley){returnx+y;}//y'=3y/(1+x)doublef2(doublex,doubley){return3*y/(1+x);}//y'=y*y;doubleftest(doublex,doubley){returny*y;}voidsolve(double(*func)(doublex,doubley),doubleminX,doublemaxX,doubley0,doubleh,doubleresult[][7],int*resultNum){doubleK1,K2,K3,K4;doubleXn_1,Yn_1;intn=0;result[n][0]=n;result[n][1]=minX;result[n][2]=0;result[n][3]=0;result[n][4]=0;result[n][5]=0;result[n][6]=y0;for(n=1;n*h

我有个偏微分方程的求解问题。这题目应该是用二阶差分方式解得吧

function varargout=liu(varargin)

N=5;%改这个N=10 15

a=0;b=1;c=0;d=1;h=1/(N-1);

f=inline('-2*(x^2+y^2)','x','y');

g1x=inline('0');

g2x=inline('x^2');

g1y=inline('0');

g2y=inline('y^2');

chfenmethed(f,g1x,g2x,g1y,g2y,a,b,c,d,h);

function [X,Y,Z]=chfenmethed(f,g1x,g2x,g1y,g2y,a,b,c,d,h)

%求解下问题

%u_xx+u_yy=-f(x,y) x,y 在区域内 x in a

%u=g(x,y) x,y在边界上

%u=g(a,y)=g1y u=g(b,y)=g2y c=

%u=g(x,c)=g1x u=g(x,d)=g2x a

%h离散x方向的步长

%h离散y方向的步长

N=10000;

x=a:h:b;

y=c:h:d;

m=length(x);

n=length(y);

ee=0.00001;

[Y,X]=meshgrid(y,x);

Uliu=f0(X,Y);

Z=zeros(m,n);

U=zeros(m,n);

for i=2:m-1

U(i,1)=feval(g1x,x(i));

U(i,n)=feval(g2x,x(i));

end

for j=1:n

U(1,j)=feval(g1y,y(j));

U(m,j)=feval(g2y,y(j));

end

%while true

%下为高斯 赛德尔迭代法

%----------------------------------------------------------------------

for k=1:N

U0=U;

for i=2:m-1

for j=2:n-1

s1=U(i+1,j)+U(i,j+1)+U(i-1,j)+U(i,j-1);

s2=U(i+1,j+1)+U(i-1,j+1)+U(i+1,j-1)+U(i-1,j-1);

s3=feval(f,x(i+1),y(j))+feval(f,x(i-1),y(j))...

+feval(f,x(i),y(j+1))+feval(f,x(i),y(j-1));

U(i,j)=(4*s1+s2-h^2/2*s3-4*h^2*feval(f,x(i),y(j)))/20;

end

end

if max(max(abs(U0-U)))

break

end

end

%-----------------------------------------------------

mesh(X,Y,U)

hold on

plot3(X,Y,Uliu,'ro')

function z=f0(x,y)

%精确解函数

z=(x.*y).^2;

本文地址:https://www.39baobao.com/show/29_48713.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

以C语言为工具利用二分法求解方程程序急#include "stdio.h" #include "math.h" float function(float x) { float f; f= x*x-2*x-1; return f; } void main() { float x1,x2,x0,fx1,fx2,fx0; x1=0;x2=3; fx1=function(...

c语言二分法求解方程程序#include "stdio.h" #define MAX 100 typedef struct node { int key; }NODE; int binsearch(NODE r[MAX],int k,int n) { int t=1,h=n,m; while(t<=h) { m=(t+h)/2; if(k==r[...

c语言二维数组编程问题#include<stdio.h> void main() { int a[2][3]; int i,j; printf("输入一个2*3整型数组\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); printf("\n输出一个2*3整...

C语言编程问题计算薪水float work_hours=0.0f;float pay=0.0f;int day=0;const cents_per_dollar=100;int pay_in_cent=0;pay_in_cent=(int)(pay*cents_per_dollar);printf("input your pay of a w...

急!C语言冒泡排序编程#include <stdio.h> #define MAX_ROW 15 #define MAX_COLUMN 10 void sort(int array[], int count, int arrayIndex) { int compareCount = 0; int moveCount = 0; for(int...

C语言编程的while语句问题你怎么判断它只执行了一次呢??? 补充:首先不清楚你的芯片具体是什么型号的,从程序上看应该是PIC16或者pic18系列的。也不清楚晶振频率是多少。 我提出我的怀疑及其推论:首先我怀疑...

c语言编程求素数的问题if(a[i],当i=2时;N,而且他们同是代表数组a的下标 那么当i=2时,那么此时的i是2,j);i++) for(j=i+1,你把j=4的a[j]=0。 最后剩下的就都是素数了 楼主主要注意一下i和j的循环 j的循...

c语言多线程编程问题C语言中多线程的实现原理就是线程的原理,本人只了解Linux下面的C,linux下面的线程,不就是进程中的一个控制流么,相对来说代码很简单,但是原理却是很复杂,很难说清,还需要自己详细...

C语言网络编程问题//UDP服务代码 // Module Name: Receiver.c // // Description: // This sample receives UDP datagrams by binding to the specified // interface and port number and t...